Refactor GitHub Actions workflow to use Docker CLI for login, build, and push steps

This commit is contained in:
2025-10-01 14:23:59 +08:00
parent 3bbf8d3a94
commit c2b2bf645a

View File

@@ -22,29 +22,31 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Log in to Container Registry - name: Log in to Container Registry
uses: docker/login-action@v3 run: |
with: echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ env.REGISTRY }} -u ${{ secrets.REGISTRY_USERNAME }} --password-stdin
registry: ${{ env.REGISTRY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Extract metadata - name: Build Docker image
id: meta run: |
uses: docker/metadata-action@v5 IMAGE_TAG="${{ inputs.tag }}"
with: BRANCH_SHA_TAG="${{ github.ref_name }}-${{ github.sha }}"
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=${{ inputs.tag }}
type=sha,prefix={{branch}}-
- name: Build and push Docker image # Build the image
uses: docker/build-push-action@v5 docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${IMAGE_TAG} .
with: docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${BRANCH_SHA_TAG} .
context: .
push: true - name: Push Docker image
tags: ${{ steps.meta.outputs.tags }} run: |
labels: ${{ steps.meta.outputs.labels }} IMAGE_TAG="${{ inputs.tag }}"
BRANCH_SHA_TAG="${{ github.ref_name }}-${{ github.sha }}"
# Push both tags
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${IMAGE_TAG}
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${BRANCH_SHA_TAG}
- name: Output image tags - name: Output image tags
run: | run: |
echo "Built and pushed image tags: ${{ steps.meta.outputs.tags }}" IMAGE_TAG="${{ inputs.tag }}"
BRANCH_SHA_TAG="${{ github.ref_name }}-${{ github.sha }}"
echo "Built and pushed image tags:"
echo "- ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${IMAGE_TAG}"
echo "- ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${BRANCH_SHA_TAG}"