Docker-Swarm-Loadbalancer/.github/workflows/docker.release.yml

45 lines
1.4 KiB
YAML

name: "Build: Release"
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 }}
- uses: benzine-framework/action-setup-docker@main
with:
ghcr_user: ${{ github.repository_owner }}
ghcr_token: ${{ secrets.GHCR_TOKEN }}
docker_hub_user: ${{ secrets.DOCKER_HUB_USER }}
docker_hub_token: ${{ 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 }}