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