Havoc420Mac ea770f4ae8 ci(gitea): update Docker build workflow
- Update registry to use GHCR (GitHub Container Registry)
- Simplify environment variables and remove unused ones
- Refactor branch handling and tag generation
- Remove Docker metadata action and simplify build process
- Add debug information output
- Update comments and structure for better readability
2025-04-05 12:56:54 +08:00

80 lines
2.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Build and Push Docker Image
on:
push:
branches:
- "**" # 匹配所有分支
paths-ignore: # 忽略一些不必要的文件
- ".gitignore"
- "README.md"
- ".vscode/**"
pull_request:
branches: ["main"]
env:
REGISTRY: ghcr.io # 直接使用GHCR
IMAGE_NAME: test # 对应您要推送的镜像名称
GHCR_USER: havoc412 # 您的GitHub用户名
jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: 打印调试信息
run: |
echo "Registry: ${{ env.REGISTRY }}"
echo "Image: ${{ env.GHCR_USER }}/${{ env.IMAGE_NAME }}"
echo "GitHub Actor: ${{ gitea.actor }}"
- name: 检出代码
uses: actions/checkout@v4
- name: 获取分支名称
id: branch_name
run: |
branch=${GITHUB_REF#refs/heads/}
echo "branch=${branch}" >> $GITHUB_OUTPUT
# 主分支用latest其他分支用dev-分支名
if [ "${branch}" = "main" ]; then
echo "tag=latest" >> $GITHUB_OUTPUT
else
# 替换非法字符为-
safe_branch=$(echo "${branch}" | sed 's/[^a-zA-Z0-9]/-/g')
echo "tag=dev-${safe_branch}" >> $GITHUB_OUTPUT
fi
- name: 登录到 GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ env.GHCR_USER }}
password: ${{ secrets.GHCR_TOKEN }} # 在Gitea仓库设置中添加此secret
# - name: 构建并推送 Docker 镜像
# uses: docker/build-push-action@v5
# with:
# context: .
# push: true
# tags: |
# ${{ env.REGISTRY }}/${{ env.GHCR_USER }}/${{ env.IMAGE_NAME }}:${{ steps.branch_name.outputs.tag }}
# labels: |
# org.opencontainers.image.source=${{ gitea.server_url }}/${{ gitea.repository }}
# build-args: |
# BUILDKIT_INLINE_CACHE=1
# - name: 通过SSH部署到服务器
# if: ${{ steps.branch_name.outputs.branch == 'main' }} # 仅main分支触发部署
# run: |
# ssh -o StrictHostKeyChecking=no \
# -i "${{ secrets.SSH_PRIVATE_KEY }}" \
# ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'EOF'
# # 拉取最新镜像
# docker pull ${{ env.REGISTRY }}/${{ env.GHCR_USER }}/${{ env.IMAGE_NAME }}:${{ steps.branch_name.outputs.tag }}
# # 重启服务(根据实际情况修改)
# docker-compose down || true
# docker-compose up -d
# EOF