From 44d6ed6f3177d64aaeacf1da1d80f24e998aa6dd Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:32:10 +0100 Subject: [PATCH] mark buildx >= 0.20.0 as incompatible with docker/bake-action < v5 Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com> --- .github/workflows/ci.yml | 60 +++++++++++++++++++++++++++++++++++++++- src/main.ts | 4 +++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 83109df..0a56f78 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ on: - 'subaction/**' env: - BUILDX_VERSION: latest + BUILDX_VERSION: v0.18.0 BUILDKIT_IMAGE: moby/buildkit:buildx-stable-1 jobs: @@ -82,6 +82,12 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} + driver: docker - name: Build continue-on-error: true @@ -98,6 +104,12 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} + driver: docker - name: Stop docker run: | @@ -153,6 +165,12 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} + driver: docker - name: Build uses: ./ @@ -270,6 +288,12 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} + driver: docker - name: Build uses: ./ @@ -315,6 +339,12 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} + driver: docker - name: Set malformed docker config run: | @@ -522,3 +552,31 @@ jobs: name: Check docker run: | docker image inspect localhost:5000/name/app:latest + + error-buildx-latest: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + version: v0.20.0 + - + name: Build + id: bake + continue-on-error: true + uses: ./ + with: + files: | + ./test/config.hcl + - + name: Check + run: | + echo "${{ toJson(steps.bake) }}" + if [ "${{ steps.bake.outcome }}" != "failure" ] || [ "${{ steps.bake.conclusion }}" != "success" ]; then + echo "::error::Should have failed" + exit 1 + fi diff --git a/src/main.ts b/src/main.ts index 530bc11..056652f 100644 --- a/src/main.ts +++ b/src/main.ts @@ -20,6 +20,10 @@ actionsToolkit.run( async () => { const inputs: context.Inputs = await context.getInputs(); const toolkit = new Toolkit(); + if (await toolkit.buildx.versionSatisfies('>=0.20.0')) { + throw new Error('docker/bake-action < v5 is not compatible with buildx >= 0.20.0, please update your workflow to latest docker/bake-action or use an older buildx version.'); + } + const gitAuthToken = process.env.BUILDX_BAKE_GIT_AUTH_TOKEN ?? inputs['github-token']; await core.group(`GitHub Actions runtime token ACs`, async () => {