Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 15m14s
85 lines
2.5 KiB
YAML
85 lines
2.5 KiB
YAML
name: Build and Push Docker Image
|
||
|
||
on:
|
||
push:
|
||
branches:
|
||
- main
|
||
- master
|
||
- develop
|
||
pull_request:
|
||
branches:
|
||
- main
|
||
- master
|
||
workflow_dispatch:
|
||
|
||
env:
|
||
REGISTRY: code.littlelan.cn
|
||
IMAGE_NAME: carrotskin/carrotskin
|
||
|
||
jobs:
|
||
build-and-push:
|
||
runs-on: ubuntu-latest
|
||
|
||
permissions:
|
||
contents: read
|
||
packages: write
|
||
|
||
steps:
|
||
- name: Checkout code
|
||
uses: actions/checkout@v4
|
||
|
||
- name: Log in to Gitea Container Registry
|
||
uses: docker/login-action@v3
|
||
with:
|
||
registry: ${{ env.REGISTRY }}
|
||
username: ${{ secrets.REGISTRY_USERNAME }}
|
||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||
|
||
- name: Extract metadata for Docker
|
||
id: meta
|
||
uses: docker/metadata-action@v5
|
||
with:
|
||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||
tags: |
|
||
# main/master 分支标记为 latest
|
||
type=raw,value=latest,enable={{is_default_branch}}
|
||
# 所有分支的标签
|
||
type=ref,event=branch
|
||
# Git tag 时创建版本标签(如 1.0.0, 1.0)
|
||
type=semver,pattern={{version}}
|
||
type=semver,pattern={{major}}.{{minor}}
|
||
# 每次构建的 SHA 标签
|
||
type=sha
|
||
|
||
- name: Set up Docker Buildx
|
||
uses: docker/setup-buildx-action@v3
|
||
|
||
- name: Build and push Docker image
|
||
uses: docker/build-push-action@v5
|
||
with:
|
||
context: .
|
||
push: true
|
||
tags: ${{ steps.meta.outputs.tags }}
|
||
labels: ${{ steps.meta.outputs.labels }}
|
||
platforms: linux/amd64
|
||
provenance: false
|
||
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache
|
||
cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache,mode=max
|
||
|
||
- name: Show image tags
|
||
run: |
|
||
echo "Built and pushed image with tags:"
|
||
echo "${{ steps.meta.outputs.tags }}"
|
||
echo ""
|
||
echo "Image digest: ${{ steps.meta.outputs.digest }}"
|
||
|
||
- name: Summary
|
||
if: always()
|
||
run: |
|
||
echo "## Docker Image Build Summary" >> $GITHUB_STEP_SUMMARY
|
||
echo "" >> $GITHUB_STEP_SUMMARY
|
||
echo "**Image:** ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}" >> $GITHUB_STEP_SUMMARY
|
||
echo "**Tags:**" >> $GITHUB_STEP_SUMMARY
|
||
echo "${{ steps.meta.outputs.tags }}" >> $GITHUB_STEP_SUMMARY
|
||
echo "**Digest:** ${{ steps.meta.outputs.digest }}" >> $GITHUB_STEP_SUMMARY
|