mirror of
https://github.com/graphql-hive/console
synced 2026-04-21 22:47:17 +00:00
74 lines
2.2 KiB
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 }}
|