From 46f471a9007a18d965191c6ab07711ec360107b5 Mon Sep 17 00:00:00 2001 From: Daan Selen Date: Fri, 22 Aug 2025 23:49:20 +0000 Subject: [PATCH] refac(workflow): use matrix to compile different docker images (#740) I have made this to speed up and make it more robust. The matrix executes the jobs in parallel, doing some things perhaps double. But making overall management easier due to the simple defined variables at the top of the matrix declaration. Co-authored-by: Daan Selen Reviewed-on: https://gitea.com/gitea/act_runner/pulls/740 Reviewed-by: techknowlogick Co-authored-by: Daan Selen Co-committed-by: Daan Selen --- .gitea/workflows/release-nightly.yml | 70 +++++++++++----------------- 1 file changed, 27 insertions(+), 43 deletions(-) diff --git a/.gitea/workflows/release-nightly.yml b/.gitea/workflows/release-nightly.yml index af73307..71420ed 100644 --- a/.gitea/workflows/release-nightly.yml +++ b/.gitea/workflows/release-nightly.yml @@ -1,10 +1,17 @@ +--- name: release-nightly on: + workflow_dispatch: push: - branches: [main] + branches: + - 'main' tags: - - "*" + - '*' + +env: + DOCKER_ORG: gitea + DOCKER_LATEST: nightly jobs: goreleaser: @@ -12,7 +19,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - fetch-depth: 0 # all history for all branches and tags + fetch-depth: 0 - uses: actions/setup-go@v5 with: go-version-file: "go.mod" @@ -30,16 +37,22 @@ jobs: S3_BUCKET: ${{ secrets.AWS_BUCKET }} GORELEASER_FORCE_TOKEN: "gitea" GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }} + release-image: runs-on: ubuntu-latest - container: - image: catthehacker/ubuntu:act-latest - env: - DOCKER_ORG: gitea - DOCKER_LATEST: nightly + strategy: + matrix: + variant: + - target: basic + tag_suffix: "" + - target: dind + tag_suffix: "-dind" + - target: dind-rootless + tag_suffix: "-dind-rootless" + steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 # all history for all branches and tags @@ -55,47 +68,18 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Get Meta - id: meta - run: | - echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT - echo REPO_VERSION=${GITHUB_REF_NAME#v} >> $GITHUB_OUTPUT + - name: Echo the tag + run: echo "${{ env.DOCKER_ORG }}/act_runner:nightly${{ matrix.variant.tag_suffix }}" - name: Build and push - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . file: ./Dockerfile - target: basic + target: ${{ matrix.variant.target }} platforms: | linux/amd64 linux/arm64 push: true tags: | - ${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ env.DOCKER_LATEST }} - - - name: Build and push dind - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - target: dind - platforms: | - linux/amd64 - linux/arm64 - push: true - tags: | - ${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ env.DOCKER_LATEST }}-dind - - - name: Build and push dind-rootless - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - target: dind-rootless - platforms: | - linux/amd64 - linux/arm64 - push: true - tags: | - ${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ env.DOCKER_LATEST }}-dind-rootless + ${{ env.DOCKER_ORG }}/act_runner:nightly${{ matrix.variant.tag_suffix }}