name: Release Swarm Loadbalancer permissions: contents: read packages: write on: workflow_call: workflow_dispatch: concurrency: group: ${{ github.head_ref || github.run_id }} cancel-in-progress: true env: CANDIDATE_IMAGE: ghcr.io/benzine-framework/bouncer:build-${{ github.sha }} RELEASE_IMAGE_GHCR: ghcr.io/benzine-framework/bouncer:latest RELEASE_IMAGE_DOCKER: benzine/bouncer:latest jobs: release: name: Release Swarm Loadbalancer runs-on: ubuntu-latest strategy: matrix: registry: - ghcr - docker fail-fast: false steps: - name: "Pull Candidate Image" run: docker pull ${{ env.CANDIDATE_IMAGE }} - name: "Login to Docker Hub" if: matrix.registry == 'docker' run: docker login -u matthewbaggett -p ${{ secrets.DOCKER_HUB_TOKEN }} - name: "Login to GHCR" if: matrix.registry == 'ghcr' run: docker login ghcr.io -u matthewbaggett -p ${{ secrets.GITHUB_TOKEN }} - name: "Tag Candidate Image" run: docker tag ${{ env.CANDIDATE_IMAGE }} ${{ matrix.registry == 'ghcr' && env.RELEASE_IMAGE_GHCR || env.RELEASE_IMAGE_DOCKER }} - name: "Push Release Image" run: docker push ${{ matrix.registry == 'ghcr' && env.RELEASE_IMAGE_GHCR || env.RELEASE_IMAGE_DOCKER }}