Skip to content

Build rig containers for new release #481

Build rig containers for new release

Build rig containers for new release #481

Workflow file for this run

name: Build rig containers for new release
on:
workflow_dispatch:
inputs:
amd64:
description: 'Build x86_64 containers'
required: true
type: choice
options:
- 'yes'
- 'no'
default: 'yes'
arm64:
description: 'Build aarch64 containers'
required: true
type: choice
options:
- 'yes'
- 'no'
default: 'yes'
manifest:
description: 'Build multi-arch manifest'
required: true
type: choice
options:
- 'yes'
- 'no'
default: 'yes'
inpconts:
description: |
Containers, comma separated list or 'all'.
required: false
default: 'devel'
type: string
schedule:
- cron: '55 7 * * *'
jobs:
# ------------------------------------------------------------------------
setup-matrix:
runs-on: ubuntu-latest
outputs:
containers: ${{ steps.setup-matrix.outputs.containers }}
steps:
- uses: actions/checkout@v4
- name: Set up matrix of containers
id: setup-matrix
run: |
cs=$(python containers/matrix.py ${{ github.event.inputs.inpconts || 'devel' }})
echo "containers=$cs" >> $GITHUB_OUTPUT
# ------------------------------------------------------------------------
amd64:
if: ${{ inputs.amd64 == '' || inputs.amd64 == 'yes' }}
needs: setup-matrix
strategy:
fail-fast: false
matrix:
config: ${{ fromJson(needs.setup-matrix.outputs.containers) }}
uses: ./.github/workflows/conts-workflow.yml
with:
config: "${{ toJSON(matrix.config) }}"
platform: amd64
runs-on: ubuntu-latest
secrets: inherit
arm64:
if: ${{ inputs.arm64 == '' || inputs.arm64 == 'yes' }}
needs: setup-matrix
strategy:
fail-fast: false
matrix:
config: ${{ fromJson(needs.setup-matrix.outputs.containers) }}
uses: ./.github/workflows/conts-workflow.yml
with:
config: "${{ toJSON(matrix.config) }}"
platform: arm64
runs-on: ubuntu-24.04-arm
secrets: inherit
manifest:
if: ${{ (inputs.manifest == '' || inputs.manifest == 'yes') && always() }}
needs: [ setup-matrix, amd64, arm64 ]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config: ${{ fromJson(needs.setup-matrix.outputs.containers) }}
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- run: |
for tag in ${{ join(matrix.config.tags, ' ') }}; do
docker buildx imagetools create -t ${tag} \
ghcr.io/r-lib/rig/${{ matrix.config.name }}-amd64:latest \
ghcr.io/r-lib/rig/${{ matrix.config.name }}-arm64:latest;
done
shell: bash