name: "Build: Docker" permissions: contents: read packages: write on: workflow_call: workflow_dispatch: env: PLATFORMS: ${{ vars.PLATFORMS }} DOCKER_IMAGE: ghcr.io/${{ github.repository }} jobs: docker-build: name: Build Swarm Load Balancer runs-on: ${{ vars.RUNS_ON }} steps: - uses: benzine-framework/action-setup-php@main - uses: benzine-framework/action-get-datetime@main - uses: benzine-framework/action-setup-docker@main with: ghcr_user: ${{ vars.SERVICE_ACCOUNT_USERNAME }} ghcr_token: ${{ secrets.SERVICE_ACCOUNT_TOKEN }} - name: "Build & Push Candidate Image as ${{ env.CANDIDATE_IMAGE }}" uses: docker/build-push-action@v5 with: context: . target: loadbalancer build-args: | MAINTAINER=${{ vars.PUBLIC_MAINTAINER || 'Matthew Baggett <matthew@baggett.me>' }} SOURCE_URL="https://github.com/${{ github.repository }}" GIT_SHA=${{ github.sha }} GIT_BUILD_ID=${{ github.ref_name }} GIT_COMMIT_MESSAGE=${{ github.event.head_commit.message }} BUILD_DATE=${{ env.ATOM }} platforms: ${{ github.actor != 'nektos/act' && vars.PLATFORMS || 'linux/amd64' }} pull: true push: ${{ github.ref == 'refs/heads/main' }} tags: | ${{ env.DOCKER_IMAGE }}:date-${{ env.DATE }} ${{ env.DOCKER_IMAGE }}:sha-${{ github.sha }} cache-from: ${{ env.DOCKER_CACHE_FROM }} cache-to: ${{ env.DOCKER_CACHE_TO }}