songtianlun
1ab860c739
- Corrected syntax errors in output redirection - Ensured that LATEST_TAG and VERSION_TAG are set correctly in the GitHub Actions output These changes fix an issue where the command was improperly formatted, which could lead to unexpected behavior during the workflow execution.
54 lines
1.6 KiB
YAML
54 lines
1.6 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 }}"
|
|
LATEST_TAG="${IMAGE_PREFIX}:latest"
|
|
VERSION_TAG="${IMAGE_PREFIX}:${VERSION}"
|
|
echo "VERSION=${VERSION}" >> $GITHUB_ENV
|
|
echo "GIT_VERSION=${GIT_VERSION}" >> $GITHUB_ENV
|
|
echo "LATEST_TAG=${LATEST_TAG}" >> $GITHUB_OUTPUT
|
|
echo "VERSION_TAG=${VERSION_TAG}" >> $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 }}
|