-
Notifications
You must be signed in to change notification settings - Fork 6
88 lines (82 loc) · 3.97 KB
/
publish.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
name: Publish
on:
release:
types: [published]
pull_request:
push:
branches:
- master
schedule:
# Everyday Wednesday on 01:32 UTC. This timing is handy because while
# European countries are in midnight, American countries are still in
# their evening and Asian countries are in the next morning.
- cron: '32 1 * * 3'
jobs:
push:
strategy:
fail-fast: false
matrix:
# Ruby 3.4 requires BASERUBY 3.0
entry:
- { os: 'lunar', system_ruby: '3.1', tag: 'gcc-13', extras: 'g++-13' }
- { os: 'jammy', system_ruby: '3.0', tag: 'gcc-12', extras: 'g++-12' }
- { os: 'focal', build_ruby: '3.0', tag: 'gcc-11', extras: 'g++-11' }
- { os: 'focal', build_ruby: '3.0', tag: 'gcc-10', extras: 'g++-10' }
- { os: 'focal', build_ruby: '3.0', tag: 'gcc-9', extras: 'g++-9' }
- { os: 'focal', build_ruby: '3.0', tag: 'gcc-8', extras: 'g++-8' }
- { os: 'focal', build_ruby: '3.0', tag: 'gcc-7', extras: 'g++-7' }
- { os: 'jammy', system_ruby: '3.0', tag: 'clang-18', extras: 'llvm-18' }
- { os: 'jammy', system_ruby: '3.0', tag: 'clang-17', extras: 'llvm-17' }
- { os: 'jammy', system_ruby: '3.0', tag: 'clang-16', extras: 'llvm-16' }
- { os: 'focal', build_ruby: '3.0', tag: 'clang-15', extras: 'llvm-15' }
- { os: 'focal', build_ruby: '3.0', tag: 'clang-14', extras: 'llvm-14' }
- { os: 'focal', build_ruby: '3.0', tag: 'clang-13', extras: 'llvm-13' }
- { os: 'focal', build_ruby: '3.0', tag: 'clang-12', extras: 'llvm-12' }
- { os: 'focal', build_ruby: '3.0', tag: 'clang-11', extras: 'llvm-11' }
- { os: 'focal', build_ruby: '3.0', tag: 'clang-10', extras: 'llvm-10' }
- { os: 'focal', build_ruby: '3.0', tag: 'clang-9', extras: 'llvm-9' }
- { os: 'focal', build_ruby: '3.0', tag: 'clang-8', extras: 'llvm-8' }
- { os: 'focal', build_ruby: '3.0', tag: 'clang-7', extras: 'llvm-7' }
- { os: 'focal', build_ruby: '3.0', tag: 'clang-6.0', extras: 'llvm-6.0' }
- { os: 'focal', build_ruby: '3.0', tag: 'mingw-w64' }
- { os: 'focal', build_ruby: '3.0', tag: 'crossbuild-essential-arm64' }
- { os: 'focal', build_ruby: '3.0', tag: 'crossbuild-essential-ppc64el' }
- { os: 'focal', build_ruby: '3.0', tag: 'crossbuild-essential-s390x' }
platforms:
- 'linux/amd64'
- 'linux/arm64'
name: Publish ${{ matrix.entry.tag }} ${{ matrix.platforms }}
runs-on: ubuntu-latest
steps:
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- uses: docker/login-action@v2
with:
username: ${{ github.actor }}
password: ${{ secrets.ACCESS_TOKEN }}
registry: ghcr.io
- name: Resolve build_ruby version
uses: ruby/setup-ruby@22fdc77bf4148f810455b226c90fb81b5cbc00a7 # v1.171.0
with:
ruby-version: '${{ matrix.entry.build_ruby }}'
bundler: none
if: ${{ matrix.entry.build_ruby != '' }}
- name: Set build_ruby version
id: build_ruby
run: ruby -e 'puts "::set-output name=version::#{RUBY_VERSION}"'
if: ${{ matrix.entry.build_ruby != '' }}
- uses: docker/build-push-action@v4
with:
build-args: |
version=${{ matrix.entry.os }}
build_ruby=${{ steps.build_ruby.outputs.version }}
system_ruby=${{ matrix.entry.system_ruby }}
packages=${{ matrix.entry.tag }} ${{ matrix.entry.extras }}
cache-from: type=gha
cache-to: type=gha
platforms: ${{ matrix.platforms }}
push: ${{ github.event_name != 'pull_request' }}
tags: |
ghcr.io/${{ github.repository }}:${{ matrix.entry.tag }}
# clang-18 is gone for some reason, but we hope it'll come back at some point.
continue-on-error: ${{ matrix.entry.tag == 'clang-18' }}