2025-04-05 10:34:53 +08:00

82 lines
2.5 KiB
YAML

name: Build and Push Docker Image
on:
push:
branches:
- "**" # 匹配所有分支
paths-ignore: # 忽略一些不必要的文件
- ".gitignore"
- "README.md"
- ".vscode/**"
pull_request:
branches: ["main"]
env:
REGISTRY: 113.44.68.213:3000
IMAGE_NAME: ${{ gitea.repository }}
jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: 获取 Gitea 配置
run: |
echo ${{ env.REGISTRY }}
echo ${{ secrets.DOCKER_TOKEN }}
echo ${{ env.IMGAE_NAME }}
- name: 检出代码
uses: actions/checkout@v4
- name: 获取分支名称
id: branch_name
run: |
# 从 GITHUB_REF 提取分支名
branch=${GITHUB_REF#refs/heads/}
echo "branch=$branch" >> $GITHUB_OUTPUT
# 如果是 main 分支,使用 prod 标签,否则使用 dev-分支名
if [ "$branch" = "main" ]; then
echo "env_suffix=prod" >> $GITHUB_OUTPUT
else
echo "env_suffix=dev-${branch}" >> $GITHUB_OUTPUT
fi
# - name: 登录到 Gitea Container Registry
# uses: docker/login-action@v3
# with:
# registry: ${{ env.REGISTRY }}
# username: ${{ gitea.actor }}
# password: ${{ secrets.DOCKER_TOKEN}}
# - name: 提取 Docker 元数据
# id: meta
# uses: docker/metadata-action@v5
# with:
# images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# tags: |
# # main 分支使用标准标签
# type=raw,value=latest,enable=${{ steps.branch_name.outputs.branch == 'main' }}
# type=raw,value=${{ steps.branch_name.outputs.env_suffix }}
# type=sha,format=short,prefix=${{ steps.branch_name.outputs.env_suffix }}-
# type=ref,event=tag,prefix=${{ steps.branch_name.outputs.env_suffix }}-
# - name: 构建并推送 Docker 镜像
# uses: docker/build-push-action@v5
# with:
# context: .
# push: true
# tags: ${{ steps.meta.outputs.tags }}
# labels: ${{ steps.meta.outputs.labels }}
# build-args: |
# BUILDKIT_INLINE_CACHE=0
# # 添加清理缓存的命令
# outputs: type=docker,cleancache=true
# - name: Trigger Portainer Webhook
# run: |
# curl -k -X POST ${{ secrets.BACKEND_WEBHOOK_URL }}