From eb88f4b231ad691e36d7470a63112aaef617e473 Mon Sep 17 00:00:00 2001 From: YGXB_net Date: Tue, 9 Sep 2025 23:37:36 +0800 Subject: [PATCH] =?UTF-8?q?ops(workflow):=20=E6=B7=BB=E5=8A=A0=E5=BC=80?= =?UTF-8?q?=E5=8F=91=E7=8E=AF=E5=A2=83=E9=83=A8=E7=BD=B2=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E7=94=9F=E4=BA=A7=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/build_tool.yaml | 4 +- .../{deploy.yaml => deploy-dev.yaml} | 19 +-------- .gitea/workflows/deploy-production.yaml | 40 +++++++++++++++++++ 3 files changed, 44 insertions(+), 19 deletions(-) rename .gitea/workflows/{deploy.yaml => deploy-dev.yaml} (62%) create mode 100644 .gitea/workflows/deploy-production.yaml diff --git a/.gitea/workflows/build_tool.yaml b/.gitea/workflows/build_tool.yaml index b0dda38..4246e44 100644 --- a/.gitea/workflows/build_tool.yaml +++ b/.gitea/workflows/build_tool.yaml @@ -3,6 +3,8 @@ on: [ push ] jobs: build: + env: + RUNNER_TOOL_CACHE: /toolcache runs-on: ubuntu-latest steps: - name: 检出代码 @@ -19,7 +21,7 @@ jobs: && go env -w GOARCH=amd64 \ && go env -w GOOS=windows \ && go mod tidy \ - && cd ./tool + && cd ./tool \ && go build -o 上传工具.exe - name: 上传构建文件 diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy-dev.yaml similarity index 62% rename from .gitea/workflows/deploy.yaml rename to .gitea/workflows/deploy-dev.yaml index 6b33013..c777bb9 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy-dev.yaml @@ -1,4 +1,4 @@ -name: 构建Docker镜像 +name: 部署开发环境 on: [ push ] jobs: @@ -37,20 +37,3 @@ jobs: && cd $DEPLOY_DIR \ && docker compose up -d \ && docker image prune -f" - - - name: 部署程序到生产服务器 - env: - SSH_HOST: ${{ secrets.SSH_HOST }} - SSH_USER: ${{ secrets.SSH_USER }} - SSH_PASSWORD: ${{ secrets.SSH_PASSWORD }} - DEPLOY_DIR: "/data/dypid" - run: | - set -ex - # 上传新镜像 - sshpass -p "$SSH_PASSWORD" scp -o StrictHostKeyChecking=no release/dypid.tar $SSH_USER@$SSH_HOST:/tmp/dypid.tar - # 重启程序 - sshpass -p "$SSH_PASSWORD" ssh -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST \ - "docker load -i /tmp/dypid.tar \ - && cd $DEPLOY_DIR \ - && docker compose up -d \ - && docker image prune -f" diff --git a/.gitea/workflows/deploy-production.yaml b/.gitea/workflows/deploy-production.yaml new file mode 100644 index 0000000..d90b0ce --- /dev/null +++ b/.gitea/workflows/deploy-production.yaml @@ -0,0 +1,40 @@ +name: 部署生产环境 +on: + workflow_dispatch: + +jobs: + build-and-deploy: + env: + RUNNER_TOOL_CACHE: /toolcache + runs-on: ubuntu-latest + steps: + - name: 检出代码 + uses: actions/checkout@v4 + + - name: 构建Docker镜像 + run: docker build -t dypid:latest . + + - name: 导出镜像 + run: mkdir release && docker save -o release/dypid.tar dypid:latest && docker rmi dypid:latest + + - name: 安装sshpass工具 + run: | + apt update + apt install -y sshpass + + - name: 部署程序到生产服务器 + env: + SSH_HOST: ${{ secrets.SSH_HOST }} + SSH_USER: ${{ secrets.SSH_USER }} + SSH_PASSWORD: ${{ secrets.SSH_PASSWORD }} + DEPLOY_DIR: "/data/dypid" + run: | + set -ex + # 上传新镜像 + sshpass -p "$SSH_PASSWORD" scp -o StrictHostKeyChecking=no release/dypid.tar $SSH_USER@$SSH_HOST:/tmp/dypid.tar + # 重启程序 + sshpass -p "$SSH_PASSWORD" ssh -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST \ + "docker load -i /tmp/dypid.tar \ + && cd $DEPLOY_DIR \ + && docker compose up -d \ + && docker image prune -f"