Skip to content

Bump docker/bake-action from 4.1.0 to 5.9.0 #446

Bump docker/bake-action from 4.1.0 to 5.9.0

Bump docker/bake-action from 4.1.0 to 5.9.0 #446

Workflow file for this run

name: Build Images
on:
push:
branches-ignore:
- "dependabot/**"
paths-ignore:
- ".github/CODEOWNERS"
pull_request_target:
types: [labeled]
workflow_dispatch: {}
env:
ECR_AWS_DEFAULT_REGION: us-east-2
ECR_REGISTRY: 127178877223.dkr.ecr.us-east-2.amazonaws.com
jobs:
set-matrix:
runs-on: ubuntu-latest
if: >
contains(github.event.pull_request.labels.*.name, 'dependencies')
|| github.event_name == 'push'
|| github.event_name == 'workflow_dispatch'
outputs:
core_matrix: ${{ steps.set-matrix.outputs.core_matrix }}
non_core_matrix: ${{ steps.set-matrix.outputs.non_core_matrix }}
clojure_matrix: ${{ steps.set-matrix.outputs.clojure_matrix }}
timeout-minutes: 5
steps:
- uses: actions/checkout@v4.1.2
with:
persist-credentials: false
- uses: ruby/setup-ruby@v1.173.0
with:
ruby-version: .ruby-version
bundler-cache: true
- name: Set matrix output
id: set-matrix
run: |
echo "core_matrix=$(bundle exec rake ci:set-matrix:core)" >> $GITHUB_OUTPUT
echo "non_core_matrix=$(bundle exec rake ci:set-matrix:non-core)" >> $GITHUB_OUTPUT
echo "clojure_matrix=$(bundle exec rake ci:set-matrix:clojure)" >> $GITHUB_OUTPUT
build-core-images:
runs-on: ubuntu-latest
if: >
contains(github.event.pull_request.labels.*.name, 'dependencies')
|| github.event_name == 'push'
|| github.event_name == 'workflow_dispatch'
needs:
- set-matrix
permissions:
packages: write
contents: read
strategy:
fail-fast: false
# Build the core images first using the matrix strategy, from there, we
# will get a list of other docker images to build concurrently.
matrix: ${{ fromJSON(needs.set-matrix.outputs.core_matrix) }}
timeout-minutes: 20
steps:
# If you want to set an environment variable equal to the result of a script
# you must do so via a run step, vs the `env: ` workflow syntax. Additinally see
# https://docs.github.com/en/actions/learn-github-actions/environment-variables#passing-values-between-steps-and-jobs-in-a-workflow
- name: set PWD environment variable
run: echo "PWD=$(pwd)" >> $GITHUB_ENV
- uses: actions/checkout@v4.1.2
with:
persist-credentials: false
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.0.0
- name: Setup Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.2.0
with:
install: true
- name: Log in to ECR
uses: docker/login-action@v3.0.0
with:
registry: ${{ env.ECR_REGISTRY }}
username: ${{ secrets.TRUSS_AWS_ACCESS_KEY_ID }}
password: ${{ secrets.TRUSS_AWS_SECRET_ACCESS_KEY }}
env:
AWS_REGION: ${{ env.ECR_AWS_DEFAULT_REGION }}
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3.0.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/bake-action@v5.9.0
with:
pull: true
push: ${{ github.ref == 'refs/heads/main' }}
files: ${{ matrix.bake }}
set: |
${{ matrix.cache-from }}
${{ matrix.cache-to }}
build-all-images:
runs-on: ubuntu-latest
needs:
- build-core-images
- set-matrix
if: >
contains(github.event.pull_request.labels.*.name, 'dependencies')
|| github.event_name == 'push'
|| github.event_name == 'workflow_dispatch'
permissions:
packages: write
contents: read
strategy:
max-parallel: 8
fail-fast: false
matrix: ${{ fromJSON(needs.set-matrix.outputs.non_core_matrix) }}
timeout-minutes: 120
steps:
- name: set PWD environment variable
run: echo "PWD=$(pwd)" >> $GITHUB_ENV
- uses: actions/checkout@v4.1.2
with:
persist-credentials: false
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.0.0
- name: Setup Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.2.0
with:
install: true
- name: Login to ECR
uses: docker/login-action@v3.0.0
with:
registry: ${{ env.ECR_REGISTRY }}
username: ${{ secrets.TRUSS_AWS_ACCESS_KEY_ID }}
password: ${{ secrets.TRUSS_AWS_SECRET_ACCESS_KEY }}
env:
AWS_REGION: ${{ env.ECR_AWS_DEFAULT_REGION }}
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3.0.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/bake-action@v5.9.0
with:
pull: true
push: ${{ github.ref == 'refs/heads/main' }}
files: ${{ matrix.bake }}
set: |
${{ matrix.cache-from }}
${{ matrix.cache-to }}
build-clojure-images:
runs-on: ubuntu-latest
needs:
- set-matrix
- build-all-images
if: >
contains(github.event.pull_request.labels.*.name, 'dependencies')
|| github.event_name == 'push'
|| github.event_name == 'workflow_dispatch'
permissions:
packages: write
contents: read
strategy:
max-parallel: 4
fail-fast: false
matrix: ${{ fromJSON(needs.set-matrix.outputs.clojure_matrix) }}
timeout-minutes: 120
steps:
- name: set PWD environment variable
run: echo "PWD=$(pwd)" >> $GITHUB_ENV
- uses: actions/checkout@v4.1.2
with:
persist-credentials: false
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.0.0
- name: Setup Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.2.0
with:
install: true
- name: Login to ECR
uses: docker/login-action@v3.0.0
with:
registry: ${{ env.ECR_REGISTRY }}
username: ${{ secrets.TRUSS_AWS_ACCESS_KEY_ID }}
password: ${{ secrets.TRUSS_AWS_SECRET_ACCESS_KEY }}
env:
AWS_REGION: ${{ env.ECR_AWS_DEFAULT_REGION }}
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3.0.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/bake-action@v5.9.0
with:
pull: true
push: ${{ github.ref == 'refs/heads/main' }}
files: ${{ matrix.bake }}
set: |
${{ matrix.cache-from }}
${{ matrix.cache-to }}