- 新增 .gitea/workflows/release.yml:推送 v* 标签触发,构建前端嵌入后 交叉编译 linux/darwin(amd64+arm64),生成变更日志并创建 Gitea Release - 新增 scripts/build-release.sh:make dist 与 CI 共用的产物构建脚本, tar.gz 打包 + SHA256SUMS;不含 windows(internal/store 依赖 Unix Umask) - Makefile 增加 dist 目标;版本注入沿用 git describe + ldflags(pn version)
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# 发版工作流:推送 v* 标签 → 构建前端并嵌入 → 交叉编译多平台二进制
|
||||
# → 生成发布说明 → 创建 Gitea Release 并上传全部产物。
|
||||
#
|
||||
# 发版操作:
|
||||
# git tag -a v0.0.1 -m "v0.0.1"
|
||||
# git push origin v0.0.1
|
||||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# 完整历史:供 git log 生成上一个 tag 以来的变更日志
|
||||
- name: 检出代码
|
||||
uses: https://gitea.com/actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: 安装 Go(版本取自 go.mod)
|
||||
uses: https://gitea.com/actions/setup-go@v5
|
||||
with:
|
||||
go-version-file: go.mod
|
||||
|
||||
- name: 安装 Node
|
||||
uses: https://gitea.com/actions/setup-node@v4
|
||||
with:
|
||||
node-version: 24
|
||||
|
||||
- name: 构建前端并嵌入(web/dist → internal/webui/dist)
|
||||
run: make web sync-assets
|
||||
|
||||
- name: 交叉编译发布产物
|
||||
run: scripts/build-release.sh "${GITEA_REF_NAME}"
|
||||
|
||||
# 首个 tag 无上一版本,变更日志段自动省略
|
||||
- name: 生成发布说明
|
||||
run: |
|
||||
prev=$(git describe --tags --abbrev=0 "${GITEA_SHA}^" 2>/dev/null || true)
|
||||
{
|
||||
echo "## pn ${GITEA_REF_NAME}"
|
||||
echo
|
||||
echo "- commit: \`${GITEA_SHA}\`"
|
||||
echo "- 构建时间: $(date -u '+%Y-%m-%dT%H:%M:%SZ')"
|
||||
if [ -n "$prev" ]; then
|
||||
echo
|
||||
echo "### 自 ${prev} 以来的变更"
|
||||
echo
|
||||
git log --oneline --no-decorate "${prev}..${GITEA_SHA}" | sed 's/^/- /'
|
||||
fi
|
||||
} > release-notes.md
|
||||
cat release-notes.md
|
||||
|
||||
- name: 创建 Release 并上传产物
|
||||
uses: https://gitea.com/actions/release-action@main
|
||||
with:
|
||||
files: |-
|
||||
dist/*
|
||||
body_path: release-notes.md
|
||||
Reference in New Issue
Block a user