From 31a2aa0e84a75f6dcfcb6b466945ba0c973823ab Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Tue, 5 Aug 2025 09:24:13 -0700 Subject: [PATCH] =?UTF-8?q?ci(workflow):=20=E4=BC=98=E5=8C=96Docker?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E9=85=8D=E7=BD=AE=E5=B9=B6=E7=AE=80?= =?UTF-8?q?=E5=8C=96=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加DOMAIN环境变量以替代硬编码的域名 - 简化git克隆流程,使用凭证存储提高安全性 - 移除不必要的SSH文件复制步骤 - 添加构建和发布Docker镜像的详细日志输出 --- .gitea/workflows/docker.yml | 52 +++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index f71b642..a5ddf6d 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -14,6 +14,7 @@ env: # Gitea GIT_USERNAME: ${{ vars.GIT_USERNAME }} GIT_PASSWORD: ${{ vars.GIT_PASSWORD }} + DOMAIN: ${{ vars.DOMAIN_OF_GITEA }} # Host SSH SSH_HOST: ${{ vars.SSH_HOST }} SSH_PORT: ${{ vars.SSH_PORT }} @@ -32,52 +33,47 @@ jobs: go: ["1.24.3"] steps: - - name: Install git and dependencies + - name: Install dependencies run: | - apk add --no-cache git make docker-cli + apk add --no-cache git make docker-cli curl bash - name: Checkout code run: | - git clone --depth 1 https://${{ env.GIT_USERNAME }}:${{ env.GIT_PASSWORD }}@${{ vars.DOMAIN_OF_GITEA}}/${{ github.repository }}.git . - git fetch --tags + echo "Setting up git credentials..." + git config --global credential.helper store + echo "https://${GIT_USERNAME}:${GIT_PASSWORD}@${DOMAIN}" > ~/.git-credentials + + echo "Cloning repository..." + git clone --depth 1 https://${DOMAIN}/${{ github.repository }}.git . + + echo "Fetching tags..." + git fetch --tags || true + + echo "Repository cloned successfully" - name: Setup Go environment run: | go env -w GOPROXY=https://goproxy.cn,direct - go env -w GOPRIVATE="${{ vars.DOMAIN_OF_GITEA}}" + go env -w GOPRIVATE="${DOMAIN}" go env -w GOSUMDB=off - git config --global url."https://${{ env.GIT_USERNAME }}:${{ env.GIT_PASSWORD }}@${{ vars.DOMAIN_OF_GITEA}}/".insteadOf "https://${{ vars.DOMAIN_OF_GITEA}}/" - - - name: Copy env file to runner container - if: false # Skip this step as we're using container - uses: appleboy/ssh-action@v1.0.0 - with: - host: ${{ env.SSH_HOST }} - username: ${{ env.SSH_USER }} - password: ${{ env.SSH_PASSWORD }} - port: ${{ env.SSH_PORT }} - debug: true - script: | - mkdir -p ~/cicd_env_files - cd ~/cicd_env_files - rm -f ./.env - docker cp ${{ vars.JOB_CONTAINER_NAME }}:${{ github.workspace }}/deploy/.env ./.env - source ./.env - if [ -n "${{ vars.RUNNER_CONTAINER_NAME }}" ]; then - docker cp .env ${{ vars.RUNNER_CONTAINER_NAME }}:/.env - docker exec ${{ vars.RUNNER_CONTAINER_NAME }} /bin/bash -c "source /.env" - else - echo "RUNNER_CONTAINER_NAME is not set, skipping container operations" - fi + git config --global url."https://${GIT_USERNAME}:${GIT_PASSWORD}@${DOMAIN}/".insteadOf "https://${DOMAIN}/" - name: Build and push docker image run: | if [ -f "${{ github.workspace }}/deploy/.env" ]; then source ${{ github.workspace }}/deploy/.env fi + + echo "Building application..." go mod tidy make build-linux + + echo "Building Docker image..." make docker + + echo "Publishing Docker image..." make publish-docker + + echo "Starting Docker container..." make docker-run \ No newline at end of file