Skip to content

chore(deps): update dependency @google/gemini-cli to v0.44.1 (#471) #43

chore(deps): update dependency @google/gemini-cli to v0.44.1 (#471)

chore(deps): update dependency @google/gemini-cli to v0.44.1 (#471) #43

Workflow file for this run

name: Base Image
on:
push:
branches: [main]
paths:
- images/Dockerfile.base-image*
- scripts/base-image-tag.sh
- .github/workflows/base-image.yml
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
build:
name: build (${{ matrix.image.name }}, ${{ matrix.platform.platform }})
runs-on: ${{ matrix.platform.runner }}
strategy:
fail-fast: false
matrix:
image:
- name: debian
dockerfile: images/Dockerfile.base-image-debian
repository: ghcr.io/buildkite/cleanroom-base/debian
- name: debian-ruby
dockerfile: images/Dockerfile.base-image-debian-ruby
repository: ghcr.io/buildkite/cleanroom-base/debian-ruby
- name: debian-docker
dockerfile: images/Dockerfile.base-image-debian-docker
repository: ghcr.io/buildkite/cleanroom-base/debian-docker
- name: debian-agents
dockerfile: images/Dockerfile.base-image-debian-agents
repository: ghcr.io/buildkite/cleanroom-base/debian-agents
- name: alpine
dockerfile: images/Dockerfile.base-image
repository: ghcr.io/buildkite/cleanroom-base/alpine
- name: alpine-docker
dockerfile: images/Dockerfile.base-image-docker
repository: ghcr.io/buildkite/cleanroom-base/alpine-docker
- name: alpine-agents
dockerfile: images/Dockerfile.base-image-agents
repository: ghcr.io/buildkite/cleanroom-base/alpine-agents
platform:
- platform: linux/amd64
platform_key: linux-amd64
runner: ubuntu-24.04
- platform: linux/arm64
platform_key: linux-arm64
runner: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v6
- uses: docker/setup-buildx-action@v4
- uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/build-push-action@v7
id: build
with:
context: .
file: ${{ matrix.image.dockerfile }}
platforms: ${{ matrix.platform.platform }}
outputs: type=image,name=${{ matrix.image.repository }},push-by-digest=true,name-canonical=true,push=true
- name: Export image digest
run: |
set -euo pipefail
mkdir -p "$RUNNER_TEMP/digests"
digest="${{ steps.build.outputs.digest }}"
if [[ -z "$digest" ]]; then
echo "build digest missing" >&2
exit 1
fi
touch "$RUNNER_TEMP/digests/${digest#sha256:}"
- uses: actions/upload-artifact@v7
with:
name: digests__${{ matrix.image.name }}__${{ matrix.platform.platform_key }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1
merge:
name: merge (${{ matrix.image.name }})
runs-on: ubuntu-24.04
needs: build
if: ${{ always() }}
strategy:
fail-fast: false
matrix:
image:
- name: debian
dockerfile: images/Dockerfile.base-image-debian
repository: ghcr.io/buildkite/cleanroom-base/debian
- name: debian-ruby
dockerfile: images/Dockerfile.base-image-debian-ruby
repository: ghcr.io/buildkite/cleanroom-base/debian-ruby
- name: debian-docker
dockerfile: images/Dockerfile.base-image-debian-docker
repository: ghcr.io/buildkite/cleanroom-base/debian-docker
- name: debian-agents
dockerfile: images/Dockerfile.base-image-debian-agents
repository: ghcr.io/buildkite/cleanroom-base/debian-agents
- name: alpine
dockerfile: images/Dockerfile.base-image
repository: ghcr.io/buildkite/cleanroom-base/alpine
- name: alpine-docker
dockerfile: images/Dockerfile.base-image-docker
repository: ghcr.io/buildkite/cleanroom-base/alpine-docker
- name: alpine-agents
dockerfile: images/Dockerfile.base-image-agents
repository: ghcr.io/buildkite/cleanroom-base/alpine-agents
steps:
- uses: actions/checkout@v6
- name: Compute base image tag
id: meta
run: |
echo "base_tag=$(scripts/base-image-tag.sh '${{ matrix.image.name }}' '${{ matrix.image.dockerfile }}')" >> "$GITHUB_OUTPUT"
- uses: actions/download-artifact@v8
with:
pattern: digests__${{ matrix.image.name }}__*
path: ${{ runner.temp }}/digests
merge-multiple: true
if-no-files-found: ignore
- uses: docker/setup-buildx-action@v4
- uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create manifest list
working-directory: ${{ runner.temp }}/digests
env:
BASE_TAG: ${{ steps.meta.outputs.base_tag }}
EXPECTED_DIGEST_COUNT: "2"
REPOSITORY: ${{ matrix.image.repository }}
run: |
set -euo pipefail
shopt -s nullglob
digests=(*)
if [[ ${#digests[@]} -ne ${EXPECTED_DIGEST_COUNT} ]]; then
echo "expected ${EXPECTED_DIGEST_COUNT} platform digests for ${REPOSITORY}, found ${#digests[@]}" >&2
exit 1
fi
refs=()
for digest in "${digests[@]}"; do
refs+=("${REPOSITORY}@sha256:${digest}")
done
docker buildx imagetools create \
-t "${REPOSITORY}:latest" \
-t "${REPOSITORY}:${BASE_TAG}" \
-t "${REPOSITORY}:${GITHUB_SHA}" \
"${refs[@]}"
- name: Inspect manifest list
run: docker buildx imagetools inspect "${{ matrix.image.repository }}:latest"