From 1dbe2f1457f500a382e0326837a5f004c5825052 Mon Sep 17 00:00:00 2001 From: 4n4n4s Date: Fri, 27 Oct 2023 11:37:32 +0000 Subject: [PATCH] Allow forks to create builds and fix failing build --- .dockerignore | 2 ++ .github/workflows/docker.yml | 32 +++++++++++++++++++------------- CONTRIBUTING.md | 6 ++++++ 3 files changed, 27 insertions(+), 13 deletions(-) create mode 100644 CONTRIBUTING.md diff --git a/.dockerignore b/.dockerignore index ffd3c43a..49718353 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,3 +4,5 @@ data .gitignore **Dockerfile** .dockerignore + +.github diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 25470d5b..5c2dade8 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -3,15 +3,15 @@ name: Build and push Docker image (amd64, arm64 to hub.docker.com and ghcr.io) on: workflow_dispatch: # allow manual trigger # https://github.com/orgs/community/discussions/26276 - push: # on every branch, but not for PRs from forks? - paths: - - '**' - - '!README.md' - - '!.github/**' - - '.github/workflows/docker.yml' - pull_request: # includes PRs from forks but only triggers on creation, not pushes? + push: branches: - - "main" # only PRs against main + - "main" + - "v*" + tags: + - "v*" + pull_request: + branches: + - "main" jobs: docker: @@ -25,6 +25,11 @@ jobs: run: | echo "BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV echo "NOW=$(date -R)" >> $GITHUB_ENV # date -Iseconds; date +'%Y-%m-%dT%H:%M:%S' + if [[ "${{ env.BRANCH }}" == "main" ]]; then + echo "IMAGE_TAG=latest" >> $GITHUB_ENV + else + echo "IMAGE_TAG=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV + fi - name: Set up QEMU uses: docker/setup-qemu-action@v3 @@ -34,7 +39,7 @@ jobs: - name: Login to Docker Hub uses: docker/login-action@v3 - # if: ${{ secrets.DOCKERHUB_USERNAME && secrets.DOCKERHUB_TOKEN }} + if: github.event_name != 'pull_request' with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -43,21 +48,22 @@ jobs: uses: docker/login-action@v3 with: registry: ghcr.io - username: ${{ github.repository_owner }} + username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v5 + if: github.event_name != 'pull_request' with: context: . - push: true + push: ${{ github.event_name != 'pull_request' }} build-args: | COMMIT=${{ github.sha }} BRANCH=${{ env.BRANCH }} NOW=${{ env.NOW }} platforms: linux/amd64,linux/arm64 # ,linux/arm/v7 tags: | - voglerr/free-games-claimer:latest - ghcr.io/vogler/free-games-claimer:latest + ${{ secrets.DOCKERHUB_USERNAME }}/free-games-claimer:${{env.IMAGE_TAG}} + ghcr.io/${{ github.actor }}/free-games-claimer:${{env.IMAGE_TAG}} cache-from: type=gha cache-to: type=gha,mode=max diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..aaf8218c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,6 @@ +# Contribute + +## Building and publishing docker images +Setup the secrets for DOCKERHUB_USERNAME and [DOCKERHUB_TOKEN](https://hub.docker.com/settings/security) in https://github.com/YOUR_USERNAME/free-games-claimer/settings/secrets/actions to be able to run the docker.yml workflows. + +Check if under Workflow Permissions in https://github.com/YOUR_USERNAME/free-games-claimer/settings/actions the radio button is set to "Read and write permissions". In case that's not set the push to ghcr.io will fail. \ No newline at end of file