Update Docker workflow to include image prefix in version and latest tag Change the Docker image prefix in the GitHub workflow to include the registry, username and image name. Update the environment variables to use the new format for the image prefix.
52 lines
1.5 KiB
YAML
52 lines
1.5 KiB
YAML
name: Build and Publish Docker Image
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
env:
|
|
# Use docker.io for Docker Hub if empty
|
|
REGISTRY: docker.io
|
|
IMAGE_NAME: ${{ github.event.repository.name }}
|
|
|
|
jobs:
|
|
docker:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Get version
|
|
id: get_version
|
|
run: |
|
|
GIT_VERSION=$(git describe --dirty --always --long --abbrev=7 --tags)
|
|
VERSION="v${GIT_VERSION}"
|
|
IMAGE_PREFIX="${{ env.REGISTRY }}/${{ secrets.DOCKERHUB_USER }}/${{ env.IMAGE_NAME }}"
|
|
echo "VERSION=${VERSION}" >> $GITHUB_ENV
|
|
echo "GIT_VERSION=${GIT_VERSION}" >> $GITHUB_ENV
|
|
echo "LATEST_TAG=${$IMAGE_PREFIX}:latest" >> $GITHUB_OUTPUT"
|
|
echo "VERSION_TAG=${IMAGE_PREFIX}:${VERSION}" >> $GITHUB_OUTPUT"
|
|
-
|
|
name: Login to ${{ env.REGISTRY }}
|
|
if: github.event_name != 'pull_request'
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ${{ env.REGISTRY }}
|
|
username: ${{ secrets.DOCKERHUB_USER }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
-
|
|
name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v3
|
|
-
|
|
name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
-
|
|
name: Build and push
|
|
uses: docker/build-push-action@v6
|
|
with:
|
|
context: .
|
|
push: ${{ github.event_name != 'pull_request' }}
|
|
tags: ${{ env.LATEST_TAG }},${{ env.VERSION_TAG }}
|