console/.github/workflows/dockerize-cli.yaml

74 lines
2.2 KiB
YAML

on:
workflow_call:
inputs:
registry:
default: ghcr.io
type: string
imageName:
default: ${{ github.repository_owner }}
type: string
cliVersion:
required: true
type: string
jobs:
build-cli-docker-image:
name: Build CLI Docker Image
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
pull-requests: write
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: configure eqemu
uses: docker/setup-qemu-action@v3
with:
platforms: 'linux/arm64,linux/amd64'
- name: configure docker buildx
uses: docker/setup-buildx-action@v3
- name: login to docker registry
uses: docker/login-action@v3
with:
registry: ${{ inputs.registry }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare Bake inputs
id: docker-bake-inputs
run: |
targets=$(docker buildx bake -f docker/docker.hcl --print build | jq -r '.group.build.targets[]')
input_set=""
first=0
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "set<<$EOF" >> "$GITHUB_ENV"
for target in $targets
do
echo "$target.cache-from=type=gha,ignore-error=true,scope=$GITHUB_REF-$target" >> "$GITHUB_ENV"
echo "$target.cache-to=type=gha,ignore-error=true,mode=max,scope=$GITHUB_REF-$target" >> "$GITHUB_ENV"
done
echo "$EOF" >> "$GITHUB_ENV"
- name: build docker images
timeout-minutes: 360
id: docker-bake
uses: docker/bake-action@v5
env:
DOCKER_REGISTRY: ${{ inputs.registry }}/${{ inputs.imageName }}/
COMMIT_SHA: ${{ inputs.cliVersion }}
RELEASE: ${{ inputs.cliVersion }}
BUILD_TYPE: 'publish'
PWD: ${{ github.workspace }}
with:
# See https://github.com/docker/buildx/issues/1533
provenance: false
push: true
files: docker/docker.hcl
targets: cli
set: |
${{ steps.docker-bake-inputs.outputs.set }}