songtianlun
ec2c92e6c9
- Change hardcoded Docker Hub username to use secrets - Update workflow to securely reference DockerHub credentials This update enhances the security of the GitHub Actions workflow by using secrets instead of exposing sensitive information in the codebase. This ensures that the Docker Hub username is kept private and reduces the risk of accidental exposure.
47 lines
1.5 KiB
YAML
47 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: Get version
|
|
id: get_version
|
|
run: |
|
|
GIT_VERSION=$(git describe --dirty --always --long --abbrev=7 --tags)
|
|
VERSION="v${GIT_VERSION}"
|
|
echo "VERSION=${VERSION}" >> $GITHUB_ENV
|
|
echo "GIT_VERSION=${GIT_VERSION}" >> $GITHUB_ENV
|
|
echo "LATEST_TAG=${{ env.REGISTRY }}/${{ secrets.DOCKERHUB_USER }}/${{ env.IMAGE_NAME }}:latest" >> $GITHUB_OUTPUT"
|
|
echo "VERSION_TAG=${{ env.REGISTRY }}/${{ secrets.DOCKERHUB_USER }}/${{ env.IMAGE_NAME }}:${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 }}
|