diff --git a/.gitea/workflows/docker_build.yml b/.gitea/workflows/docker_build.yml index 61c23d1..cf55382 100644 --- a/.gitea/workflows/docker_build.yml +++ b/.gitea/workflows/docker_build.yml @@ -12,8 +12,9 @@ on: branches: ["main"] env: - REGISTRY: 113.44.68.213:3000 - IMAGE_NAME: ${{ gitea.repository }} + REGISTRY: ghcr.io # 直接使用GHCR + IMAGE_NAME: test # 对应您要推送的镜像名称 + GHCR_USER: havoc412 # 您的GitHub用户名 jobs: build-and-push: @@ -23,13 +24,11 @@ jobs: packages: write steps: - - name: 获取 Gitea 配置 + - name: 打印调试信息 run: | - echo ${{ env.REGISTRY }} - echo ${{ gitea.actor }} - echo ${{ secrets.GHCR_USER }} - echo ${{ secrets.GHCR_TOKEN }} - echo ${{ env.IMGAE_NAME }} + echo "Registry: ${{ env.REGISTRY }}" + echo "Image: ${{ env.GHCR_USER }}/${{ env.IMAGE_NAME }}" + echo "GitHub Actor: ${{ gitea.actor }}" - name: 检出代码 uses: actions/checkout@v4 @@ -37,47 +36,45 @@ jobs: - 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 + echo "branch=${branch}" >> $GITHUB_OUTPUT + # 主分支用latest,其他分支用dev-分支名 + if [ "${branch}" = "main" ]; then + echo "tag=latest" >> $GITHUB_OUTPUT else - echo "env_suffix=dev-${branch}" >> $GITHUB_OUTPUT - fi + # 替换非法字符为- + safe_branch=$(echo "${branch}" | sed 's/[^a-zA-Z0-9]/-/g') + echo "tag=dev-${safe_branch}" >> $GITHUB_OUTPUT + fi - - name: 登录到 Github Container Registry + - name: 登录到 GitHub Container Registry uses: docker/login-action@v3 with: - registry: ghcr.io - username: ${{ secrets.GHCR_USER }} - password: ${{ secrets.GHCR_TOKEN }} + registry: ${{ env.REGISTRY }} + username: ${{ env.GHCR_USER }} + password: ${{ secrets.GHCR_TOKEN }} # 在Gitea仓库设置中添加此secret - - 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: | + # ${{ 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: 构建并推送 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 }} + # - 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 \ No newline at end of file