Release / release (push) Failing after 8s
- 新增 .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)
67 lines
1.9 KiB
YAML
67 lines
1.9 KiB
YAML
# 发版工作流:推送 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
|