From aba34e25003bf9239726581670370c4fceff4120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <1@72wo.cn> Date: Tue, 6 Jan 2026 22:17:32 +0800 Subject: [PATCH 1/5] =?UTF-8?q?```=20chore(ci):=20=E6=9B=B4=E6=96=B0GitHub?= =?UTF-8?q?=20Actions=E5=B7=A5=E4=BD=9C=E6=B5=81=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加push触发器,仅在main分支上自动触发 - 为servicePort输入添加默认值8080 - 将Go版本从1.20升级到1.25 - 添加七牛云上传功能,将构建产物上传到CDN - 注释掉SSH部署到服务器的步骤,改为CDN分发 - 在发布说明中添加七牛云下载链接 chore(vscode): 更新Go构建配置 - 禁用zcli功能 - 启用stripSymbols以减小构建产物体积 - 启用trimPath以优化构建路径 ``` --- .github/workflows/logic_CI.yml | 68 +++++++++++++++++++++------------- .vscode/settings.json | 8 ++-- 2 files changed, 48 insertions(+), 28 deletions(-) diff --git a/.github/workflows/logic_CI.yml b/.github/workflows/logic_CI.yml index 8b3103fbf..ffbb1f163 100644 --- a/.github/workflows/logic_CI.yml +++ b/.github/workflows/logic_CI.yml @@ -1,11 +1,15 @@ name: Go Build & Release on: + push: + branches: + - main workflow_dispatch: inputs: servicePort: description: '服务启动端口' required: true + default: 8080 type: number jobs: @@ -41,12 +45,24 @@ jobs: - name: Set up Go uses: actions/setup-go@v4 with: - go-version: '1.20' + go-version: '1.25' - name: 编译logic服务 run: go build -o ./logic_${{ needs.prepare-version.outputs.build_version }} -v ./logic # 移除了public目录,直接在当前目录生成可执行文件 + - name: 上传到七牛云 + uses: luochongfei/up2qn@master + with: + bucket: ${{ secrets.QINIU_BUCKET_NAME }} + zone: "z2" + access_key: ${{ secrets.QINIU_AK }} + secret_key: ${{ secrets.QINIU_SK }} + local_dir: . + local_exclude: "**/*.go|**/go.mod|**/go.sum" + target_dir: releases/ + target_file: "logic_${{ needs.prepare-version.outputs.build_version }}" + - name: Upload Build Artifact uses: actions/upload-artifact@v4 with: @@ -54,30 +70,31 @@ jobs: path: ./logic_${{ needs.prepare-version.outputs.build_version }} # 直接上传可执行文件 - - name: 推送到服务器并通过screen启动服务 - uses: easingthemes/ssh-deploy@main - env: - SSH_PRIVATE_KEY: ${{ secrets.BLAZING }} - REMOTE_HOST: "125.208.20.223" - REMOTE_PORT: 22916 - REMOTE_USER: "root" - SOURCE: "logic_${{ needs.prepare-version.outputs.build_version }}" # 只指定可执行文件作为源 - TARGET: "/home/" - ARGS: "-avz --chown=git:git" # 保持权限参数 - SCRIPT_AFTER: | - SCREEN_NAME="logic-${{ needs.prepare-version.outputs.build_version }}" - screen -S $SCREEN_NAME -X quit 2>/dev/null || true - screen -dmS $SCREEN_NAME /home/logic_${{ needs.prepare-version.outputs.build_version }} -port=${{ github.event.inputs.servicePort }} - echo "======================================" - echo "服务启动成功!" - echo "Screen会话名:$SCREEN_NAME" - echo "服务端口:${{ github.event.inputs.servicePort }}" - echo "对应Commit:${{ github.sha }}" - echo "管理命令:" - echo " - 进入会话:screen -r $SCREEN_NAME" - echo " - 查看所有会话:screen -ls" - echo " - 停止服务:screen -S $SCREEN_NAME -X quit" - echo "======================================" + # - name: 推送到服务器并通过screen启动服务 + # uses: easingthemes/ssh-deploy@main + # env: + # SSH_PRIVATE_KEY: ${{ secrets.BLAZING }} + # REMOTE_HOST: "125.208.20.223" + # REMOTE_PORT: 22916 + # REMOTE_USER: "root" + # SOURCE: "logic_${{ needs.prepare-version.outputs.build_version }}" # 只指定可执行文件作为源 + # TARGET: "/home/" + # ARGS: "-avz --chown=git:git" # 保持权限参数 + # SCRIPT_AFTER: | + # SCREEN_NAME="logic-${{ needs.prepare-version.outputs.build_version }}" + # screen -S $SCREEN_NAME -X quit 2>/dev/null || true + # screen -dmS $SCREEN_NAME /home/logic_${{ needs.prepare-version.outputs.build_version }} -port=${{ github.event.inputs.servicePort }} + # echo "======================================" + # echo "服务启动成功!" + # echo "Screen会话名:$SCREEN_NAME" + # echo "服务端口:${{ github.event.inputs.servicePort }}" + # echo "对应Commit:${{ github.sha }}" + # echo "七牛云下载地址: https://${{ secrets.QINIU_CDN_DOMAIN }}/releases/logic_${{ needs.prepare-version.outputs.build_version }}" + # echo "管理命令:" + # echo " - 进入会话:screen -r $SCREEN_NAME" + # echo " - 查看所有会话:screen -ls" + # echo " - 停止服务:screen -S $SCREEN_NAME -X quit" + # echo "======================================" create-release: needs: [prepare-version, build] @@ -108,6 +125,7 @@ jobs: - 对应Commit: ${{ github.sha }} - 可执行文件: logic_${{ needs.prepare-version.outputs.build_version }} - 启动命令: ./logic_${{ needs.prepare-version.outputs.build_version }} -port=${{ github.event.inputs.servicePort }} + - 七牛云下载地址: https://${{ secrets.QINIU_CDN_DOMAIN }}/releases/logic_${{ needs.prepare-version.outputs.build_version }} files: logic_${{ needs.prepare-version.outputs.build_version }} # 只上传可执行文件 draft: false prerelease: false diff --git a/.vscode/settings.json b/.vscode/settings.json index 47bf3adb5..fcf20cd80 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,11 +2,12 @@ "goBuild.savedBuildConfig": { "outputName": "", "outputDir": "./public", + "zcliEnabled": false, "targetOS": "linux", "targetArch": "current", "enableRace": false, "enableOptimization": true, - "stripSymbols": false, + "stripSymbols": true, "cgoEnabled": false, "buildTags": "", "customLdflags": "", @@ -15,8 +16,9 @@ "keepWorkDir": false, "forceRebuild": false, "dryRun": false, - "trimPath": false, + "trimPath": true, "currentPreset": "dev" }, - "go.toolsEnvVars": {} + "go.toolsEnvVars": {}, + "goBuild.zcli.enabled": false } From 903c5811e39304119538aefd17e56b2c640ee5ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <1@72wo.cn> Date: Tue, 6 Jan 2026 22:24:03 +0800 Subject: [PATCH 2/5] =?UTF-8?q?```=20build(workflow):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?logic=E6=9C=8D=E5=8A=A1=E7=BC=96=E8=AF=91=E5=92=8C=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将编译输出目录从根目录改为build目录 - 创建build目录并修改go build命令的输出路径 - 更新七牛云上传配置,将上传目录从根目录改为build目录 - 移除本地文件 --- .github/workflows/logic_CI.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/logic_CI.yml b/.github/workflows/logic_CI.yml index ffbb1f163..c2c3a1918 100644 --- a/.github/workflows/logic_CI.yml +++ b/.github/workflows/logic_CI.yml @@ -48,8 +48,9 @@ jobs: go-version: '1.25' - name: 编译logic服务 - run: go build -o ./logic_${{ needs.prepare-version.outputs.build_version }} -v ./logic - # 移除了public目录,直接在当前目录生成可执行文件 + run: | + mkdir -p build + go build -o ./build/logic_${{ needs.prepare-version.outputs.build_version }} -v ./logic - name: 上传到七牛云 uses: luochongfei/up2qn@master @@ -58,10 +59,8 @@ jobs: zone: "z2" access_key: ${{ secrets.QINIU_AK }} secret_key: ${{ secrets.QINIU_SK }} - local_dir: . - local_exclude: "**/*.go|**/go.mod|**/go.sum" + local_dir: build target_dir: releases/ - target_file: "logic_${{ needs.prepare-version.outputs.build_version }}" - name: Upload Build Artifact uses: actions/upload-artifact@v4 From c2d35a95c944696d09820f4916766993f500ee2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <1@72wo.cn> Date: Tue, 6 Jan 2026 22:29:54 +0800 Subject: [PATCH 3/5] =?UTF-8?q?```=20feat(workflow):=20=E4=BC=98=E5=8C=96l?= =?UTF-8?q?ogic=E6=9C=8D=E5=8A=A1CI=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 简化编译步骤,移除不必要的mkdir操作 - 将上传七牛云的方式从第三方action改为使用qshell命令行工具 - 添加qshell下载、配置和文件上传的完整流程 - 保持构建产物上传到GitHub Actions artifacts ``` --- .github/workflows/logic_CI.yml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/logic_CI.yml b/.github/workflows/logic_CI.yml index c2c3a1918..98b2492b0 100644 --- a/.github/workflows/logic_CI.yml +++ b/.github/workflows/logic_CI.yml @@ -48,26 +48,27 @@ jobs: go-version: '1.25' - name: 编译logic服务 - run: | - mkdir -p build - go build -o ./build/logic_${{ needs.prepare-version.outputs.build_version }} -v ./logic + run: go build -o ./logic_${{ needs.prepare-version.outputs.build_version }} -v ./logic - name: 上传到七牛云 - uses: luochongfei/up2qn@master - with: - bucket: ${{ secrets.QINIU_BUCKET_NAME }} - zone: "z2" - access_key: ${{ secrets.QINIU_AK }} - secret_key: ${{ secrets.QINIU_SK }} - local_dir: build - target_dir: releases/ + run: | + # 下载 qshell + wget -q https://github.com/qiniu/qshell/releases/download/v2.9.0/qshell-v2.9.0-linux-amd64.tar.gz + tar -zxf qshell-v2.9.0-linux-amd64.tar.gz + chmod +x qshell-v2.9.0-linux-amd64 + + # 配置账号 + ./qshell-v2.9.0-linux-amd64 account ${{ secrets.QINIU_AK }} ${{ secrets.QINIU_SK }} + + # 上传文件 (z2 区域使用 up-z2.qiniup.com) + FILE_NAME="logic_${{ needs.prepare-version.outputs.build_version }}" + ./qshell-v2.9.0-linux-amd64 fput ${{ secrets.QINIU_BUCKET_NAME }} releases/${FILE_NAME} ./${FILE_NAME} true - name: Upload Build Artifact uses: actions/upload-artifact@v4 with: name: logic_${{ needs.prepare-version.outputs.build_version }} path: ./logic_${{ needs.prepare-version.outputs.build_version }} - # 直接上传可执行文件 # - name: 推送到服务器并通过screen启动服务 # uses: easingthemes/ssh-deploy@main From f73076b3d7fb35d024f59892a4b616e5d8b82106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <1@72wo.cn> Date: Tue, 6 Jan 2026 22:34:48 +0800 Subject: [PATCH 4/5] =?UTF-8?q?```=20refactor(workflow):=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8GitHub=20Action=E6=9B=BF=E6=8D=A2=E4=B8=83=E7=89=9B?= =?UTF-8?q?=E4=BA=91=E4=B8=8A=E4=BC=A0=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除手动下载和配置qshell的步骤 - 采用cumt-ro --- .github/workflows/logic_CI.yml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/logic_CI.yml b/.github/workflows/logic_CI.yml index 98b2492b0..4584c22cc 100644 --- a/.github/workflows/logic_CI.yml +++ b/.github/workflows/logic_CI.yml @@ -51,18 +51,15 @@ jobs: run: go build -o ./logic_${{ needs.prepare-version.outputs.build_version }} -v ./logic - name: 上传到七牛云 - run: | - # 下载 qshell - wget -q https://github.com/qiniu/qshell/releases/download/v2.9.0/qshell-v2.9.0-linux-amd64.tar.gz - tar -zxf qshell-v2.9.0-linux-amd64.tar.gz - chmod +x qshell-v2.9.0-linux-amd64 - - # 配置账号 - ./qshell-v2.9.0-linux-amd64 account ${{ secrets.QINIU_AK }} ${{ secrets.QINIU_SK }} - - # 上传文件 (z2 区域使用 up-z2.qiniup.com) - FILE_NAME="logic_${{ needs.prepare-version.outputs.build_version }}" - ./qshell-v2.9.0-linux-amd64 fput ${{ secrets.QINIU_BUCKET_NAME }} releases/${FILE_NAME} ./${FILE_NAME} true + uses: cumt-robin/upload-to-qiniu-action@v1 + with: + access_key: ${{ secrets.QINIU_AK }} + secret_key: ${{ secrets.QINIU_SK }} + bucket: ${{ secrets.QINIU_BUCKET_NAME }} + region: z2 + local_dir: . + upload_prefix: releases/ + exclude: "**/*.go" - name: Upload Build Artifact uses: actions/upload-artifact@v4 From 80e8d56d9e1552b3ed96ba0749c9d0ee3f9795bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <1@72wo.cn> Date: Tue, 6 Jan 2026 22:39:59 +0800 Subject: [PATCH 5/5] =?UTF-8?q?```=20build(workflow):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?logic=E6=9C=8D=E5=8A=A1=E7=BC=96=E8=AF=91=E5=92=8C=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将编译输出目录从根目录改为build目录 - 创建build目录并修改编译命令路径 - 更新七牛云上传配置,使用build目录作为上传源 - 移除不必要的exclude配置 - 更新artifact上传路径以匹配新的编译输出位置 ``` --- .github/workflows/logic_CI.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/logic_CI.yml b/.github/workflows/logic_CI.yml index 4584c22cc..467361642 100644 --- a/.github/workflows/logic_CI.yml +++ b/.github/workflows/logic_CI.yml @@ -48,7 +48,9 @@ jobs: go-version: '1.25' - name: 编译logic服务 - run: go build -o ./logic_${{ needs.prepare-version.outputs.build_version }} -v ./logic + run: | + mkdir -p build + go build -o ./build/logic_${{ needs.prepare-version.outputs.build_version }} -v ./logic - name: 上传到七牛云 uses: cumt-robin/upload-to-qiniu-action@v1 @@ -57,15 +59,14 @@ jobs: secret_key: ${{ secrets.QINIU_SK }} bucket: ${{ secrets.QINIU_BUCKET_NAME }} region: z2 - local_dir: . + local_dir: build upload_prefix: releases/ - exclude: "**/*.go" - name: Upload Build Artifact uses: actions/upload-artifact@v4 with: name: logic_${{ needs.prepare-version.outputs.build_version }} - path: ./logic_${{ needs.prepare-version.outputs.build_version }} + path: ./build/logic_${{ needs.prepare-version.outputs.build_version }} # - name: 推送到服务器并通过screen启动服务 # uses: easingthemes/ssh-deploy@main