Skip to content

Weekly publish docker images to GHCR #233

Weekly publish docker images to GHCR

Weekly publish docker images to GHCR #233

Workflow file for this run

# This file is generated. Please edit publish-images.yml.erb instead!
name: Weekly publish docker images to GHCR
on:
workflow_dispatch:
schedule:
- cron: "0 3 * * 3" # At 03:00 on Wednesday # https://crontab.guru/#0_3_*_*_3
concurrency:
group: "${{github.workflow}}-${{github.ref}}"
cancel-in-progress: true
jobs:
aarch64-linux-musl:
name: "build aarch64-linux-musl ${{ matrix.os }}"
needs: common-7f790bc6d2444edacd5337c9048dae13842eb9ff
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-aarch64-linux-musl-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-aarch64-linux-musl
${{ runner.os }}-on-${{ runner.arch }}-common-7f790bc6d2444edacd5337c9048dae13842eb9ff
enableCrossOsArchive: true
- name: Build the image layers aarch64-linux-musl on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-723ac6e8df696b68867754088d542e27005deaaf RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
common-7f790bc6d2444edacd5337c9048dae13842eb9ff:
name: "build common-7f790bc6d2444edacd5337c9048dae13842eb9ff ${{ matrix.os }}"
needs: common-8c26987a5e78ace67587139520ec4d44e00a8f54
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-common-7f790bc6d2444edacd5337c9048dae13842eb9ff-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-common-7f790bc6d2444edacd5337c9048dae13842eb9ff
${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54
enableCrossOsArchive: true
- name: Build the image layers common-7f790bc6d2444edacd5337c9048dae13842eb9ff on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-7f790bc6d2444edacd5337c9048dae13842eb9ff RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
arm-linux-musl:
name: "build arm-linux-musl ${{ matrix.os }}"
needs: common-7f790bc6d2444edacd5337c9048dae13842eb9ff
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-arm-linux-musl-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-arm-linux-musl
${{ runner.os }}-on-${{ runner.arch }}-common-7f790bc6d2444edacd5337c9048dae13842eb9ff
enableCrossOsArchive: true
- name: Build the image layers arm-linux-musl on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-fbc527a24691e48b3ceae3946e031e5e7e88c321 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
x86-linux-musl:
name: "build x86-linux-musl ${{ matrix.os }}"
needs: common-7f790bc6d2444edacd5337c9048dae13842eb9ff
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-x86-linux-musl-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-x86-linux-musl
${{ runner.os }}-on-${{ runner.arch }}-common-7f790bc6d2444edacd5337c9048dae13842eb9ff
enableCrossOsArchive: true
- name: Build the image layers x86-linux-musl on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-63da25377d0818f37111c2410d4816b73d1a9060 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
x86_64-linux-musl:
name: "build x86_64-linux-musl ${{ matrix.os }}"
needs: common-7f790bc6d2444edacd5337c9048dae13842eb9ff
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-x86_64-linux-musl-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-x86_64-linux-musl
${{ runner.os }}-on-${{ runner.arch }}-common-7f790bc6d2444edacd5337c9048dae13842eb9ff
enableCrossOsArchive: true
- name: Build the image layers x86_64-linux-musl on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-dc7239babc93dee187ce0f0fa030de8c792e8611 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
arm64-darwin:
name: "build arm64-darwin ${{ matrix.os }}"
needs: common-d1f437046b79903f679102aadd5269e80f584d09
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-arm64-darwin-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-arm64-darwin
${{ runner.os }}-on-${{ runner.arch }}-common-d1f437046b79903f679102aadd5269e80f584d09
enableCrossOsArchive: true
- name: Build the image layers arm64-darwin on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-2829589da6681b1b5f379e6d68ff6be60cba5cf6 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
common-d1f437046b79903f679102aadd5269e80f584d09:
name: "build common-d1f437046b79903f679102aadd5269e80f584d09 ${{ matrix.os }}"
needs: common-8c26987a5e78ace67587139520ec4d44e00a8f54
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-common-d1f437046b79903f679102aadd5269e80f584d09-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-common-d1f437046b79903f679102aadd5269e80f584d09
${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54
enableCrossOsArchive: true
- name: Build the image layers common-d1f437046b79903f679102aadd5269e80f584d09 on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-d1f437046b79903f679102aadd5269e80f584d09 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
x86_64-darwin:
name: "build x86_64-darwin ${{ matrix.os }}"
needs: common-d1f437046b79903f679102aadd5269e80f584d09
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-x86_64-darwin-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-x86_64-darwin
${{ runner.os }}-on-${{ runner.arch }}-common-d1f437046b79903f679102aadd5269e80f584d09
enableCrossOsArchive: true
- name: Build the image layers x86_64-darwin on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-bc540754626a1ebf8164f8ae4378b9104b383663 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
aarch64-linux-gnu:
name: "build aarch64-linux-gnu ${{ matrix.os }}"
needs: common-8c26987a5e78ace67587139520ec4d44e00a8f54
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-aarch64-linux-gnu-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-aarch64-linux-gnu
${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54
enableCrossOsArchive: true
- name: Build the image layers aarch64-linux-gnu on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-b45d14aea28f4d30cfaa5bc6a34d751db67da79f RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
common-8c26987a5e78ace67587139520ec4d44e00a8f54:
name: "build common-8c26987a5e78ace67587139520ec4d44e00a8f54 ${{ matrix.os }}"
needs: common-8a6d86116e9a9ffad5888a4a8b7fbee50535dbe0
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54
${{ runner.os }}-on-${{ runner.arch }}-common-8a6d86116e9a9ffad5888a4a8b7fbee50535dbe0
enableCrossOsArchive: true
- name: Build the image layers common-8c26987a5e78ace67587139520ec4d44e00a8f54 on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-8c26987a5e78ace67587139520ec4d44e00a8f54 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
aarch64-mingw-ucrt:
name: "build aarch64-mingw-ucrt ${{ matrix.os }}"
needs: common-8c26987a5e78ace67587139520ec4d44e00a8f54
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-aarch64-mingw-ucrt-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-aarch64-mingw-ucrt
${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54
enableCrossOsArchive: true
- name: Build the image layers aarch64-mingw-ucrt on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-2378386d2f098439bb4555bfc930aa62eab2dd65 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
arm-linux-gnu:
name: "build arm-linux-gnu ${{ matrix.os }}"
needs: common-8c26987a5e78ace67587139520ec4d44e00a8f54
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-arm-linux-gnu-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-arm-linux-gnu
${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54
enableCrossOsArchive: true
- name: Build the image layers arm-linux-gnu on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-8fd4771bba44643d3934e41c218db66645f9e96f RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
x64-mingw-ucrt:
name: "build x64-mingw-ucrt ${{ matrix.os }}"
needs: common-8c26987a5e78ace67587139520ec4d44e00a8f54
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-x64-mingw-ucrt-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-x64-mingw-ucrt
${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54
enableCrossOsArchive: true
- name: Build the image layers x64-mingw-ucrt on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-fad6604335c2d8c64475e5d69c083d0cce4f63a7 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
x64-mingw32:
name: "build x64-mingw32 ${{ matrix.os }}"
needs: common-8c26987a5e78ace67587139520ec4d44e00a8f54
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-x64-mingw32-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-x64-mingw32
${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54
enableCrossOsArchive: true
- name: Build the image layers x64-mingw32 on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-c435c444a8baec018c75861cf5b32aeb9345683e RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
x86-linux-gnu:
name: "build x86-linux-gnu ${{ matrix.os }}"
needs: common-8c26987a5e78ace67587139520ec4d44e00a8f54
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-x86-linux-gnu-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-x86-linux-gnu
${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54
enableCrossOsArchive: true
- name: Build the image layers x86-linux-gnu on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-cda3746d187096bfcb5179842dc5b8f845ea3da6 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
x86-mingw32:
name: "build x86-mingw32 ${{ matrix.os }}"
needs: common-8c26987a5e78ace67587139520ec4d44e00a8f54
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-x86-mingw32-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-x86-mingw32
${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54
enableCrossOsArchive: true
- name: Build the image layers x86-mingw32 on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-697f3ca4a0ddea1b26a66aee35ab6fc30ae3010b RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
x86_64-linux-gnu:
name: "build x86_64-linux-gnu ${{ matrix.os }}"
needs: common-8c26987a5e78ace67587139520ec4d44e00a8f54
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-x86_64-linux-gnu-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-x86_64-linux-gnu
${{ runner.os }}-on-${{ runner.arch }}-common-8c26987a5e78ace67587139520ec4d44e00a8f54
enableCrossOsArchive: true
- name: Build the image layers x86_64-linux-gnu on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-7b065f9c97f9d9f355f67f09b97c844d21539e42 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
common-8a6d86116e9a9ffad5888a4a8b7fbee50535dbe0:
name: "build common-8a6d86116e9a9ffad5888a4a8b7fbee50535dbe0 ${{ matrix.os }}"
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-common-8a6d86116e9a9ffad5888a4a8b7fbee50535dbe0-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-common-8a6d86116e9a9ffad5888a4a8b7fbee50535dbe0
${{ runner.os }}-on-${{ runner.arch }}-
enableCrossOsArchive: true
- name: Build the image layers common-8a6d86116e9a9ffad5888a4a8b7fbee50535dbe0 on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-8a6d86116e9a9ffad5888a4a8b7fbee50535dbe0 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
jruby:
name: "build jruby ${{ matrix.os }}"
needs: common-8a6d86116e9a9ffad5888a4a8b7fbee50535dbe0
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- name: Fetch docker buildx layer cache
uses: actions/cache@v4
with:
path: tmp/build-cache-${{ runner.arch }}
key: ${{ runner.os }}-on-${{ runner.arch }}-jruby-${{ github.sha }}
restore-keys: |
${{ runner.os }}-on-${{ runner.arch }}-jruby
${{ runner.os }}-on-${{ runner.arch }}-common-8a6d86116e9a9ffad5888a4a8b7fbee50535dbe0
enableCrossOsArchive: true
- name: Build the image layers jruby on ${{ runner.arch }}
env:
RCD_TASK_DEPENDENCIES: "false"
run: |
# Change docker to a cache-able driver
docker buildx create --driver docker-container --use
bundle exec rake build:common-58bf949eac408202d0b3113ff93f6330354c92a1 RCD_DOCKER_BUILD="docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-${{ runner.arch }} --cache-to=type=local,compression=zstd,dest=tmp/build-cache-new"
- name: Update and prune docker buildx layer cache
run: |
rm -rf tmp/build-cache-${{ runner.arch }}
mv tmp/build-cache-new tmp/build-cache-${{ runner.arch }}
push:
name: push
needs: [aarch64-linux-gnu,aarch64-linux-musl,aarch64-mingw-ucrt,arm-linux-gnu,arm-linux-musl,arm64-darwin,x64-mingw-ucrt,x64-mingw32,x86-linux-gnu,x86-linux-musl,x86-mingw32,x86_64-darwin,x86_64-linux-gnu,x86_64-linux-musl,jruby]
strategy:
fail-fast: false
matrix:
platform:
- aarch64-linux-gnu
- aarch64-linux-musl
- aarch64-mingw-ucrt
- arm-linux-gnu
- arm-linux-musl
- arm64-darwin
- x64-mingw-ucrt
- x64-mingw32
- x86-linux-gnu
- x86-linux-musl
- x86-mingw32
- x86_64-darwin
- x86_64-linux-gnu
- x86_64-linux-musl
- jruby
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v4
- name: Use X64 cache from tree pipeline of ${{ matrix.platform }}
uses: actions/cache/restore@v4
with:
path: tmp/build-cache-X64
key: ${{ runner.os }}-on-X64-${{ matrix.platform }}-${{ github.sha }}
restore-keys: ${{ runner.os }}-on-X64-${{ matrix.platform }}
enableCrossOsArchive: true
- name: Use ARM64 cache from tree pipeline of ${{ matrix.platform }}
uses: actions/cache/restore@v4
with:
path: tmp/build-cache-ARM64
key: ${{ runner.os }}-on-ARM64-${{ matrix.platform }}-${{ github.sha }}
restore-keys: ${{ runner.os }}-on-ARM64-${{ matrix.platform }}
enableCrossOsArchive: true
fail-on-cache-miss: true
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.4"
bundler-cache: true
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{github.actor}}
password: ${{secrets.GITHUB_TOKEN}}
- name: Use cache and push docker image
env:
RCD_IMAGE_VERSION: snapshot
RCD_DOCKER_BUILD: docker buildx build --cache-from=type=local,compression=zstd,src=tmp/build-cache-X64 --cache-from=type=local,compression=zstd,src=tmp/build-cache-ARM64
RCD_TASK_DEPENDENCIES: "false"
run: |
docker buildx create --driver docker-container --use
bundle exec rake release:${{ matrix.platform }}