From 44a3397b66758a2f2e787bc3f074afc59f53c433 Mon Sep 17 00:00:00 2001 From: Joris Roovers Date: Fri, 17 Feb 2023 09:40:14 +0000 Subject: [PATCH 01/10] GHA: publish-docker workflow improvements Various improvements to the publish-docker workflow. --- .github/workflows/publish-docker.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 2ed60901..bc5b99a2 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -9,7 +9,7 @@ on: required: true type: string push_to_dockerhub: - description: "Whether to push to dockerhub.com" + description: "Push to dockerhub.com" required: false type: boolean default: false @@ -18,9 +18,8 @@ on: gitlint_version: description: "Gitlint version to build docker image for" type: string - default: "main" push_to_dockerhub: - description: "Whether to push to dockerhub.com" + description: "Push to dockerhub.com" required: false type: boolean default: false @@ -33,6 +32,5 @@ jobs: uses: docker/build-push-action@v4 with: push: ${{ inputs.push_to_dockerhub }} - build-args: - - GITLINT_VERSION=${{ inputs.gitlint_version }} + build-args: GITLINT_VERSION=${{ inputs.gitlint_version }} tags: jorisroovers/gitlint:${{ inputs.gitlint_version }} \ No newline at end of file From 7a80c1499c118d752bd3197544f1826ba72caf42 Mon Sep 17 00:00:00 2001 From: Joris Roovers Date: Fri, 17 Feb 2023 09:52:57 +0000 Subject: [PATCH 02/10] Post build testing --- .github/workflows/publish-docker.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index bc5b99a2..74c9a421 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -33,4 +33,15 @@ jobs: with: push: ${{ inputs.push_to_dockerhub }} build-args: GITLINT_VERSION=${{ inputs.gitlint_version }} - tags: jorisroovers/gitlint:${{ inputs.gitlint_version }} \ No newline at end of file + tags: jorisroovers/gitlint:${{ inputs.gitlint_version }} + + - name: Test docker image + run: | + docker run --ulimit nofile=1024 -v $(pwd):/repo jorisroovers/gitlint:${{ inputs.gitlint_version }} --version + docker run --ulimit nofile=1024 -v $(pwd):/repo jorisroovers/gitlint:${{ inputs.gitlint_version }} --debug + + + # - name: gitlint --version + # run: | + # gitlint --version + # [ "$(gitlint --version)" == "gitlint, version ${{ inputs.gitlint_version }}" ] \ No newline at end of file From 4001b2a5d360722e9c5de5f92967b792eea1b481 Mon Sep 17 00:00:00 2001 From: Joris Roovers Date: Fri, 17 Feb 2023 10:11:47 +0000 Subject: [PATCH 03/10] Improved testing --- .github/workflows/publish-docker.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 74c9a421..dfecf789 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -37,11 +37,6 @@ jobs: - name: Test docker image run: | - docker run --ulimit nofile=1024 -v $(pwd):/repo jorisroovers/gitlint:${{ inputs.gitlint_version }} --version - docker run --ulimit nofile=1024 -v $(pwd):/repo jorisroovers/gitlint:${{ inputs.gitlint_version }} --debug - - - # - name: gitlint --version - # run: | - # gitlint --version - # [ "$(gitlint --version)" == "gitlint, version ${{ inputs.gitlint_version }}" ] \ No newline at end of file + gitlint_version=$(docker run --ulimit nofile=1024 -v $(pwd):/repo \ + jorisroovers/gitlint:${{ inputs.gitlint_version }} --version) + [ "$(gitlint_version)" == "gitlint, version ${{ inputs.gitlint_version }}" ] From 3d409a19e21623252e61a1a69b1287ad5c178dad Mon Sep 17 00:00:00 2001 From: Joris Roovers Date: Fri, 17 Feb 2023 10:15:12 +0000 Subject: [PATCH 04/10] Docker login --- .github/workflows/publish-docker.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index dfecf789..bd1a93bb 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -28,10 +28,15 @@ jobs: publish_docker: runs-on: "ubuntu-latest" steps: - - name: Build and push + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build docker image uses: docker/build-push-action@v4 with: - push: ${{ inputs.push_to_dockerhub }} build-args: GITLINT_VERSION=${{ inputs.gitlint_version }} tags: jorisroovers/gitlint:${{ inputs.gitlint_version }} @@ -40,3 +45,10 @@ jobs: gitlint_version=$(docker run --ulimit nofile=1024 -v $(pwd):/repo \ jorisroovers/gitlint:${{ inputs.gitlint_version }} --version) [ "$(gitlint_version)" == "gitlint, version ${{ inputs.gitlint_version }}" ] + + - name: Push docker image + uses: docker/build-push-action@v4 + with: + push: ${{ inputs.push_to_dockerhub }} + build-args: GITLINT_VERSION=${{ inputs.gitlint_version }} + tags: jorisroovers/gitlint:${{ inputs.gitlint_version }} \ No newline at end of file From 21d87be7d3ceead129d638c497c1f43c311adc94 Mon Sep 17 00:00:00 2001 From: Joris Roovers Date: Fri, 17 Feb 2023 10:21:08 +0000 Subject: [PATCH 05/10] Don't use DOCKERHUB_USERNAME --- .github/workflows/publish-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index bd1a93bb..16bd3efa 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -31,7 +31,7 @@ jobs: - name: Login to Docker Hub uses: docker/login-action@v2 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} + username: jorisroovers password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build docker image From 3738a7cd4638c990e2da22bb997d4d119fd02678 Mon Sep 17 00:00:00 2001 From: Joris Roovers Date: Fri, 17 Feb 2023 10:49:15 +0000 Subject: [PATCH 06/10] fixup! Don't use DOCKERHUB_USERNAME remove newline --- .github/workflows/publish-docker.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 16bd3efa..0353585b 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -42,8 +42,7 @@ jobs: - name: Test docker image run: | - gitlint_version=$(docker run --ulimit nofile=1024 -v $(pwd):/repo \ - jorisroovers/gitlint:${{ inputs.gitlint_version }} --version) + gitlint_version=$(docker run --ulimit nofile=1024 -v $(pwd):/repo jorisroovers/gitlint:${{ inputs.gitlint_version }} --version) [ "$(gitlint_version)" == "gitlint, version ${{ inputs.gitlint_version }}" ] - name: Push docker image From f3c6ee3cae1c98b2b5cb556bb6adbf0e6d0b9892 Mon Sep 17 00:00:00 2001 From: Joris Roovers Date: Tue, 21 Feb 2023 09:29:30 +0000 Subject: [PATCH 07/10] Use shell variables properly --- .github/workflows/publish-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 0353585b..8d9421d3 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -43,7 +43,7 @@ jobs: - name: Test docker image run: | gitlint_version=$(docker run --ulimit nofile=1024 -v $(pwd):/repo jorisroovers/gitlint:${{ inputs.gitlint_version }} --version) - [ "$(gitlint_version)" == "gitlint, version ${{ inputs.gitlint_version }}" ] + [ "$gitlint_version" == "gitlint, version ${{ inputs.gitlint_version }}" ] - name: Push docker image uses: docker/build-push-action@v4 From c51c12889ffb6fd63429d81b040069b40bd1c11d Mon Sep 17 00:00:00 2001 From: Joris Roovers Date: Tue, 21 Feb 2023 09:49:50 +0000 Subject: [PATCH 08/10] Auto-trigger publish docker image on main --- .github/workflows/publish-docker.yml | 6 +++++- .github/workflows/publish-release.yml | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 8d9421d3..184c994c 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -45,9 +45,13 @@ jobs: gitlint_version=$(docker run --ulimit nofile=1024 -v $(pwd):/repo jorisroovers/gitlint:${{ inputs.gitlint_version }} --version) [ "$gitlint_version" == "gitlint, version ${{ inputs.gitlint_version }}" ] + + # This won't actually rebuild the docker image, but just push the previously built and cached image - name: Push docker image uses: docker/build-push-action@v4 with: push: ${{ inputs.push_to_dockerhub }} build-args: GITLINT_VERSION=${{ inputs.gitlint_version }} - tags: jorisroovers/gitlint:${{ inputs.gitlint_version }} \ No newline at end of file + tags: jorisroovers/gitlint:${{ inputs.gitlint_version }} + if: inputs.push_to_dockerhub + \ No newline at end of file diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 18f2af80..94675f5b 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -157,3 +157,12 @@ jobs: gitlint_version: ${{ needs.publish.outputs.gitlint_version }} pypi_source: ${{ inputs.pypi_target }} repo_test_ref: ${{ inputs.repo_release_ref }} + + publish-docker: + needs: + - publish + - test-release + uses: ./.github/workflows/publish-docker.yml + with: + gitlint_version: ${{ needs.publish.outputs.gitlint_version }} + push_to_dockerhub: false From e56307f701b29cef0a9d81d082542976d70cc0cd Mon Sep 17 00:00:00 2001 From: Joris Roovers Date: Tue, 21 Feb 2023 10:30:01 +0000 Subject: [PATCH 09/10] Seperate gitlint_version from docker_image_tag --- .github/workflows/publish-docker.yml | 28 ++++++++++++++++++++++++--- .github/workflows/publish-release.yml | 3 ++- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 184c994c..33b03ef9 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -8,6 +8,10 @@ on: description: "Gitlint version to build docker image for" required: true type: string + docker_image_tag: + description: "Docker image tag" + required: true + type: string push_to_dockerhub: description: "Push to dockerhub.com" required: false @@ -18,6 +22,15 @@ on: gitlint_version: description: "Gitlint version to build docker image for" type: string + docker_image_tag: + description: "Docker image tag" + required: true + type: choice + options: + - "latest_dev" + - "latest" + - "Use $gitlint_version" + default: "Use $gitlint_version" push_to_dockerhub: description: "Push to dockerhub.com" required: false @@ -28,6 +41,15 @@ jobs: publish_docker: runs-on: "ubuntu-latest" steps: + - name: Determine docker tag + id: set_tag + run: | + if [[ ${{ inputs.docker_image_tag }} == "Use $gitlint_version" ]]; then + echo "docker_image_tag=${{ inputs.gitlint_version }}" >> $GITHUB_OUTPUT + else + echo "docker_image_tag=${{ inputs.docker_image_tag }}" >> $GITHUB_OUTPUT + fi + - name: Login to Docker Hub uses: docker/login-action@v2 with: @@ -38,11 +60,11 @@ jobs: uses: docker/build-push-action@v4 with: build-args: GITLINT_VERSION=${{ inputs.gitlint_version }} - tags: jorisroovers/gitlint:${{ inputs.gitlint_version }} + tags: jorisroovers/gitlint:${{ steps.set_tag.outputs.docker_image_tag }} - name: Test docker image run: | - gitlint_version=$(docker run --ulimit nofile=1024 -v $(pwd):/repo jorisroovers/gitlint:${{ inputs.gitlint_version }} --version) + gitlint_version=$(docker run --ulimit nofile=1024 -v $(pwd):/repo jorisroovers/gitlint:${{ steps.set_tag.outputs.docker_image_tag }} --version) [ "$gitlint_version" == "gitlint, version ${{ inputs.gitlint_version }}" ] @@ -52,6 +74,6 @@ jobs: with: push: ${{ inputs.push_to_dockerhub }} build-args: GITLINT_VERSION=${{ inputs.gitlint_version }} - tags: jorisroovers/gitlint:${{ inputs.gitlint_version }} + tags: jorisroovers/gitlint:${{ steps.set_tag.outputs.docker_image_tag }} if: inputs.push_to_dockerhub \ No newline at end of file diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 94675f5b..9c32f089 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -165,4 +165,5 @@ jobs: uses: ./.github/workflows/publish-docker.yml with: gitlint_version: ${{ needs.publish.outputs.gitlint_version }} - push_to_dockerhub: false + docker_image_tag: "latest_dev" + push_to_dockerhub: true From cdb1f8dea8b25c5858daa59395444fd275f5bf60 Mon Sep 17 00:00:00 2001 From: Joris Roovers Date: Tue, 21 Feb 2023 10:33:16 +0000 Subject: [PATCH 10/10] fixup! Seperate gitlint_version from docker_image_tag add missing quotes --- .github/workflows/publish-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 33b03ef9..092b6b3e 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -44,7 +44,7 @@ jobs: - name: Determine docker tag id: set_tag run: | - if [[ ${{ inputs.docker_image_tag }} == "Use $gitlint_version" ]]; then + if [[ "${{ inputs.docker_image_tag }}" == "Use $gitlint_version" ]]; then echo "docker_image_tag=${{ inputs.gitlint_version }}" >> $GITHUB_OUTPUT else echo "docker_image_tag=${{ inputs.docker_image_tag }}" >> $GITHUB_OUTPUT