Update logic_CI.yml

This commit is contained in:
2026-01-22 10:06:06 +08:00
committed by GitHub
parent 6108cfaf63
commit 7e7cbd2aa9

View File

@@ -10,7 +10,7 @@ on:
default: 8080
type: number
# 统一最小化权限仅保留必要的actions/read删除contents/write
# 最小化权限配置
permissions:
actions: read
@@ -19,18 +19,20 @@ env:
CGO_ENABLED: 0
GO111MODULE: on
GOSUMDB: off
# 七牛云远程目录统一管理可按需修改
# 七牛云远程存储目录
QINIU_REMOTE_DIR: releases/
jobs:
build-and-upload-qiniu:
runs-on: ubuntu-latest
steps:
# 仅签出当前仓库核心修改极简配置+本仓库内置token鉴权
- uses: actions/checkout@v4
with:
fetch-depth: 1 # 仅拉取最新提交加速克隆
fetch-depth: 1
token: ${{ github.token }}
# 生成版本号短Commit Hash合并原prepare-version任务
# 生成基于Commit的短版本号
- name: 生成构建版本号
id: set-version
run: |
@@ -39,7 +41,7 @@ jobs:
echo "构建版本号:${VERSION}" >> $GITHUB_STEP_SUMMARY
shell: bash
# 缓存Go依赖v4+双缓存编译缓存+mod缓存极致加速
# 缓存Go依赖编译缓存+mod缓存加速二次构建
- name: 缓存Go依赖
uses: actions/cache@v4
with:
@@ -51,24 +53,24 @@ jobs:
${{ runner.os }}-go-
fail-on-cache-miss: false
# 配置Go环境v5+自动缓存双重保障
# 配置Go 1.25环境自动缓存依赖双重保障
- name: 配置Go 1.25环境
uses: actions/setup-go@v5
with:
go-version: '1.25'
cache: true
# 预下载依赖避免编译时边下载边构建
# 预下载所有Go依赖避免编译时边下载边构建
- name: 预下载Go依赖
run: go mod download -x
shell: bash
# 编译Go服务极致优化参数保留所有原优化
# 编译Logic服务极致优化参数+产物存在性校验
- name: 编译Logic服务
run: |
mkdir -p build
BIN_NAME="logic_${{ steps.set-version.outputs.build_version }}"
# 编译参数并行+瘦身+静态编译
# Go编译极致优化参数静态编译+瘦身+并行构建
go build -v \
-p=4 \
-trimpath \
@@ -76,9 +78,9 @@ jobs:
-ldflags "-s -w -buildid= -extldflags '-static'" \
-o ./build/${BIN_NAME} \
./logic
# 校验编译产物是否存在
# 校验编译产物是否存在不存在则直接失败
if [ ! -f ./build/${BIN_NAME} ]; then
echo "编译失败:产物${BIN_NAME}不存在"
echo "编译失败:产物${BIN_NAME}不存在"
exit 1
fi
# 打印产物信息
@@ -86,9 +88,8 @@ jobs:
echo "产物名称:${BIN_NAME}" >> $GITHUB_STEP_SUMMARY
shell: bash
# 上传到七牛云核心步骤增加校验+日志+CDN地址打印
# 上传产物到七牛云覆盖同名文件+统一远程目录
- name: 上传产物到七牛云
id: qiniu-upload
uses: cumt-robin/upload-to-qiniu-action@v1
with:
access_key: ${{ secrets.QINIU_AK }}
@@ -97,25 +98,24 @@ jobs:
region: z2
local_dir: build
remote_dir: ${{ env.QINIU_REMOTE_DIR }}
overwrite: true # 覆盖同名文件避免版本冲突
overwrite: true
# 上传成功后打印CDN访问地址+构建信息写入步骤摘要
- name: 打印构建&分发信息
# 打印构建&分发核心信息控制台+步骤摘要双展示
- name: 打印构建完成信息
run: |
BIN_NAME="logic_${{ steps.set-version.outputs.build_version }}"
CDN_URL="https://${{ secrets.QINIU_CDN_DOMAIN }}/${{ env.QINIU_REMOTE_DIR }}${BIN_NAME}"
# 打印到控制台
# 控制台打印
echo "======================================"
echo "✅ 构建&七牛云上传完成!"
echo "版本号:${{ steps.set-version.outputs.build_version }}"
echo "触发方式:${{ github.event_name == 'workflow_dispatch' && '手动触发' || '代码推送' }}"
echo "服务端口:${{ github.event.inputs.servicePort || 8080 }}"
echo "产物名称:${BIN_NAME}"
echo "七牛云CDN地址${CDN_URL}"
echo "启动命令:./${BIN_NAME} -port=${{ github.event.inputs.servicePort || 8080 }}"
echo "对应Commit${{ github.sha }}"
echo "======================================"
# 写入GitHub步骤摘要页面顶部可见更直观
# GitHub步骤摘要页面顶部可见
echo "## ✅ 构建&分发完成" >> $GITHUB_STEP_SUMMARY
echo "- 版本号:${{ steps.set-version.outputs.build_version }}" >> $GITHUB_STEP_SUMMARY
echo "- 触发方式:${{ github.event_name == 'workflow_dispatch' && '手动触发' || '代码推送' }}" >> $GITHUB_STEP_SUMMARY
@@ -124,12 +124,3 @@ jobs:
echo "- 启动命令:`./${BIN_NAME} -port=${{ github.event.inputs.servicePort || 8080 }}`" >> $GITHUB_STEP_SUMMARY
echo "- 对应Commit[${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }})" >> $GITHUB_STEP_SUMMARY
shell: bash
# 可选保留构建产物为Artifact按需开启保留1天方便临时下载
# - name: 上传产物为Artifact
# uses: actions/upload-artifact@v4
# with:
# name: logic_${{ steps.set-version.outputs.build_version }}
# path: ./build/
# if-no-files-found: error
# retention-days: 1