From b56015922fa4d43aeed051241926235a2f1ff05e Mon Sep 17 00:00:00 2001 From: Pietro Terrizzi Date: Mon, 9 Aug 2021 11:40:44 +0200 Subject: [PATCH] chore(gh): using build-args --- .github/workflows/docker-ci.yml | 50 ++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/.github/workflows/docker-ci.yml b/.github/workflows/docker-ci.yml index 410d4dd7..d62af3dc 100644 --- a/.github/workflows/docker-ci.yml +++ b/.github/workflows/docker-ci.yml @@ -10,12 +10,27 @@ jobs: runs-on: ubuntu-20.04 steps: - - - name: Checkout + - name: Checkout uses: actions/checkout@v2 - - - name: Docker meta + - name: Generate build-args + id: build-args + run: | + # Declare vars for internal use + VERSION=$(git describe --abbrev=0 --tags) + GIT_HEAD_COMMIT=$(git rev-parse --short HEAD) + GIT_TAG_COMMIT=$(git rev-parse --short $VERSION) + GIT_MODIFIED_1=$(git diff $GIT_HEAD_COMMIT $GIT_TAG_COMMIT --quiet && echo "" || echo ".dev") + GIT_MODIFIED_2=$(git diff --quiet && echo "" || echo ".dirty") + # Export to GH_ENV + echo "GIT_LAST_TAG=$VERSION" >> $GITHUB_ENV + echo "GIT_HEAD_COMMIT=$GIT_HEAD_COMMIT" >> $GITHUB_ENV + echo "GIT_TAG_COMMIT=$GIT_TAG_COMMIT" >> $GITHUB_ENV + echo "GIT_MODIFIED=$(echo "$GIT_MODIFIED_1""$GIT_MODIFIED_2")" >> $GITHUB_ENV + echo "GIT_REPO=$(git config --get remote.origin.url)" >> $GITHUB_ENV + echo "BUILD_DATE=$(git log -1 --format="%at" | xargs -I{} date -d @{} +%Y-%m-%dT%H:%M:%S)" >> $GITHUB_ENV + + - name: Docker meta id: meta uses: docker/metadata-action@v3 with: @@ -26,22 +41,19 @@ jobs: flavor: | latest=false - - - name: Set up QEMU + - name: Set up QEMU id: qemu uses: docker/setup-qemu-action@v1 with: platforms: arm64,arm - - - name: Set up Docker Buildx + - name: Set up Docker Buildx id: buildx + uses: docker/setup-buildx-action@v1 with: install: true - uses: docker/setup-buildx-action@v1 - - - name: Inspect builder + - name: Inspect builder run: | echo "Name: ${{ steps.buildx.outputs.name }}" echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}" @@ -49,16 +61,14 @@ jobs: echo "Flags: ${{ steps.buildx.outputs.flags }}" echo "Platforms: ${{ steps.buildx.outputs.platforms }}" - - - name: Login to quay.io Container Registry + - name: Login to quay.io Container Registry uses: docker/login-action@v1 with: registry: quay.io username: ${{ github.repository_owner }}+github password: ${{ secrets.BOT_QUAY_IO }} - - - name: Build and push + - name: Build and push id: build-release uses: docker/build-push-action@v2 with: @@ -67,7 +77,13 @@ jobs: platforms: linux/amd64,linux/arm64,linux/arm push: true tags: ${{ steps.meta.outputs.tags }} + build-args: | + GIT_HEAD_COMMIT=${{ env.GIT_HEAD_COMMIT }} + GIT_TAG_COMMIT=${{ env.GIT_TAG_COMMIT }} + GIT_REPO=${{ env.GIT_REPO }} + GIT_LAST_TAG=${{ env.GIT_LAST_TAG }} + GIT_MODIFIED=${{ env.GIT_MODIFIED }} + BUILD_DATE=${{ env.BUILD_DATE }} - - - name: Image digest + - name: Image digest run: echo ${{ steps.build-release.outputs.digest }}