v-2024-08-20.0 #13
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow pushes a production image to Docker Hub | |
# whenever a Github release is published | |
name: Build and publish production image to Docker Hub | |
on: | |
release: | |
types: [published] | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
# Github stores the current tag in an enviroment variable (GITHUB_REF) in the format /refs/tags/TAG_NAME. | |
# Using shell parameter expansion, we extract the TAG_NAME. Also, it seems we cannot use shell tricks | |
# directly in the with block, so doing it in a separate step and then fetching its output when needed. | |
- name: Get the tag name | |
id: get_tag | |
run: echo ::set-output name=TAG::${GITHUB_REF/refs\/tags\//} | |
- name: Docker Setup Buildx | |
uses: docker/[email protected] | |
- name: Docker Login | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_PASSWORD }} | |
- uses: satackey/[email protected] | |
continue-on-error: true | |
- name: Build and push Docker images | |
uses: docker/[email protected] | |
with: | |
build-args: | | |
GIT_COMMIT_SHA=${{ steps.get_tag.outputs.TAG }} | |
DEPLOY_ENV=prod | |
cache-from: metabrainz/bookbrainz:cache | |
cache-to: metabrainz/bookbrainz:cache | |
push: true | |
tags: metabrainz/bookbrainz:${{ steps.get_tag.outputs.TAG }} | |
target: bookbrainz-prod |