Files
在7楼 9e79ca09a1 维护[#1153]: 发布策略重构——CI 托管版本号与单主干 alpha/stable 通道 (#1160)
* chore: 补齐 agent 配置文档,版本升至 4.0.8 (#1152)

* docs(agents): 术语表迁到根目录 CONTEXT.md,补齐 agent 配置文档

新增 AGENTS.md 指向 issue tracker / triage 标签 / 领域文档三份说明,
docs/glossary.md 的内容改为 CONTEXT.md 的术语条目后删除。

* chore: VersionPrefix 升到 4.0.8

* docs(changelog): 开 4.0.8 段落

与 common.props 的 VersionPrefix 同号,否则 CI 的版本一致性校验会失败。

* docs: 版本与分支策略重构的 ADR-0002 与术语表(#1153)

* feat: CI 托管版本号的算号与 notes 生成脚本(#1154 #1155)

- version-next.sh:alpha/stable/latest 算号,权威源为 git tag 历史
- release-notes.sh:PR 标题分类生成 release notes 与 CHANGELOG 段落,不合规标题兜底
- 两个 fixture 测试套件(临时 git 仓库 / 模拟标题列表),并作为 ScriptTests job 纳入 PR CI

* refactor: code-review 修复——断言框架提取 test-lib、section 对齐 CHANGELOG 无空行风格、latest 复用 version-next.sh、补跨 major fixture 与错误信息断言

* feat: alpha 通道——main 合并自动推 alpha 镜像(#1156)

- 新增 alpha.yml:version-next.sh 算号,推 :x.y.z-alpha.N + :alpha 到 DockerHub/GHCR,串行防撞号
- Dockerfile:ARG VERSION 完整版本显式注入(构建时烘焙),补 OCI version LABEL;VERSION_SUFFIX 暂时兼容
- ci.yml ScriptTests:真实 tag 历史上的 alpha dry-run 冒烟

* feat: 稳定版通道——手动触发,全套制品 + CHANGELOG 回写(#1157)

- workflow_dispatch 下拉 patch/minor/major,version-next.sh 算号
- release-notes.sh 生成 notes(无合并 PR 时发版失败,不发空版本)
- softprops/action-gh-release 建 tag 与 Release(重跑幂等)
- 镜像 :x.y.z + :latest,显式 VERSION 注入
- CHANGELOG 段落 bot 回写 main([skip ci] 防触发 alpha)

* refactor: 拆除旧发布体系,版本权威源切换为 git tag 历史(#1158)

- common.props:VersionPrefix 0.0.0 + VersionSuffix dev,仅本地兜底(已验证宿主产物为 0.0.0-dev)
- ci.yml:删版本一致性校验与播报步骤,PR 目标收窄为 main
- 删除 preview-image/release/verify-pr-target 三个旧 workflow 与 version.sh/report-version.sh
- publish.sh:版本与 notes 改用新脚本
- codeql/dependabot/README 的 develop 引用改为 main

* fix: code-review 修复——Console zip 显式注入程序集版本、changelog 逻辑入脚本、platforms 断链修復

- publish.sh:dotnet publish 补 -p:Version,否则 zip 内程序集恒为 0.0.0-dev(Spec 轴关键发现);本地兜底统一为 0.0.0-dev
- Dockerfile:删除已无调用方的 VERSION_SUFFIX 遗留分支
- 提取 update-changelog.sh(重跑安全:同版本段落替换而非重复插入)+ 5 个 fixture,纳入 ScriptTests
- 术语对齐 CONTEXT.md:避免词「预览镜像」改为「alpha 版本镜像」
- platforms:青龙 QL_BRANCH 默认改 main,baihu/daidai/qinglong 脚本内 blob/develop 链接改 main,两份 README 的先行版说明对齐单主干
2026-09-28 01:24:53 +08:00

48 lines
941 B
Bash

#!/usr/bin/env bash
# fixture 测试的共用断言框架,被 test-*.sh source,不单独执行。
# 约定:测试脚本末尾调用 finish 汇总并以失败数决定退出码。
pass=0
fail=0
ok() {
pass=$((pass + 1))
echo "ok $pass - $1"
}
not_ok() {
fail=$((fail + 1))
echo "FAIL - $1" >&2
echo "--- 期望 ---" >&2
echo "$2" >&2
echo "--- 实际 ---" >&2
echo "$3" >&2
}
assert_eq() { # <msg> <expected> <actual>
if [ "$2" = "$3" ]; then ok "$1"; else not_ok "$1" "$2" "$3"; fi
}
assert_contains() { # <msg> <期望子串> <actual>
case "$3" in
*"$2"*) ok "$1" ;;
*) not_ok "$1" "包含: $2" "$3" ;;
esac
}
assert_exit_nonzero() { # <msg> <cmd...>
local msg=$1
shift
if "$@" >/dev/null 2>&1; then
not_ok "$msg" "非 0 退出码" "0"
else
ok "$msg"
fi
}
finish() {
echo
echo "通过 $pass,失败 $fail"
[ "$fail" -eq 0 ]
}