From 124b953d38b47f243524f8adf9f713143de1ba18 Mon Sep 17 00:00:00 2001 From: csh Date: Fri, 22 May 2026 10:02:02 +0800 Subject: [PATCH] =?UTF-8?q?:memo:=20=E4=BF=AE=E6=AD=A3=20workflow=20?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=96=87=E4=BB=B6=E5=90=8D=E4=B8=8E=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/changelog_and_release.yml | 2 +- .gitea/workflows/update_stats_badge.yaml | 2 +- WORKFLOW.md | 18 +++++++++--------- tests/template_defaults_test.sh | 20 ++++++++++++++++++++ 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/changelog_and_release.yml b/.gitea/workflows/changelog_and_release.yml index dafe06c..491d70f 100644 --- a/.gitea/workflows/changelog_and_release.yml +++ b/.gitea/workflows/changelog_and_release.yml @@ -1116,7 +1116,7 @@ jobs: - 📝 [查看 CHANGELOG](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/src/branch/${{ env.MAIN_BRANCH }}/CHANGELOG.md) - 🚀 [查看 Releases](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/releases) - - 🔧 [查看 Workflow 配置](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/blob/${{ env.MAIN_BRANCH }}/.github/workflows/changelog_and_release.yml) + - 🔧 [查看 Workflow 配置](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/src/branch/${{ env.MAIN_BRANCH }}/.gitea/workflows/changelog_and_release.yml) --- diff --git a/.gitea/workflows/update_stats_badge.yaml b/.gitea/workflows/update_stats_badge.yaml index 3ec91c6..d835476 100644 --- a/.gitea/workflows/update_stats_badge.yaml +++ b/.gitea/workflows/update_stats_badge.yaml @@ -844,7 +844,7 @@ jobs: - 📊 [查看详细统计报告](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/src/branch/${{ env.BADGE_BRANCH }}/${{ env.BADGE_DIR }}/README.md) - 🎨 [浏览徽章文件](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/src/branch/${{ env.BADGE_BRANCH }}/${{ env.BADGE_DIR }}) - - 🔧 [查看 Workflow 配置](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/blob/${{ github.ref_name }}/.github/workflows/update_stats_badge.yaml) + - 🔧 [查看 Workflow 配置](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/src/branch/${{ github.ref_name }}/.gitea/workflows/update_stats_badge.yaml) ## 📝 语言分布 diff --git a/WORKFLOW.md b/WORKFLOW.md index 31c8147..1688621 100644 --- a/WORKFLOW.md +++ b/WORKFLOW.md @@ -8,8 +8,8 @@ ```txt .gitea/workflows/ -├── changelog-and-release.yml # CHANGELOG 生成 + Release 创建 -├── update_stats_badge.yml # 代码行数的统计 +├── changelog_and_release.yml # CHANGELOG 生成 + Release 创建 +├── update_stats_badge.yaml # 代码行数的统计 └── ... # 更多 workflow 待添加 ``` @@ -19,7 +19,7 @@ ### ✅ 已实现 -#### 1. 📦 自动发布工作流 (`changelog-and-release.yml`) +#### 1. 📦 自动发布工作流 (`changelog_and_release.yml`) **功能**:在推送 tag 时自动生成 CHANGELOG 并创建 Release @@ -40,13 +40,13 @@ git tag 1.0.0 git push origin 1.0.0 ``` -**文件**:[changelog-and-release.yml](.gitea/workflows/changelog_and_release.yml) +**文件**:[changelog_and_release.yml](.gitea/workflows/changelog_and_release.yml) -💡 **详细配置**:查看 `changelog-and-release.yml` 文件顶部的 `env` 区域,所有配置项都有详细注释说明 +💡 **详细配置**:查看 `changelog_and_release.yml` 文件顶部的 `env` 区域,所有配置项都有详细注释说明 --- -#### 2. 📊 代码统计徽章工作流 (`update-stats-badge.yml`) +#### 2. 📊 代码统计徽章工作流 (`update_stats_badge.yaml`) **功能**:自动统计代码行数并生成徽章数据 @@ -68,11 +68,11 @@ git push origin main # 仓库 → Actions → Update Code Statistics Badge → Run workflow ``` -**配置文件**:[update-stats-badge.yml](.gitea/workflows/update_stats_badge.yaml) +**配置文件**:[update_stats_badge.yaml](.gitea/workflows/update_stats_badge.yaml) **markdown引用格式**: `![C++](https://img.shields.io/endpoint?url=https://你的gitea/用户名/仓库/raw/branch/分支/badges/cpp-lines.json)` -💡 **详细配置**:查看 `update-stats-badge.yml` 文件顶部的 `env` 区域,包含语言分组、颜色、排除目录等配置 +💡 **详细配置**:查看 `update_stats_badge.yaml` 文件顶部的 `env` 区域,包含语言分组、颜色、排除目录等配置 --- @@ -109,7 +109,7 @@ git push origin main **检查清单**: - [ ] Workflow 文件在 `.gitea/workflows/` 目录 -- [ ] 文件名正确(如 `changelog-and-release.yml`) +- [ ] 文件名正确(如 `changelog_and_release.yml`) - [ ] Token 已正确配置(Secret 名称为 `WORKFLOW`) - [ ] Tag 格式正确(数字开头,如 `1.0.0`) - [ ] Gitea Actions 已启用 diff --git a/tests/template_defaults_test.sh b/tests/template_defaults_test.sh index 0fd9430..25b1fd1 100644 --- a/tests/template_defaults_test.sh +++ b/tests/template_defaults_test.sh @@ -36,6 +36,25 @@ test_stats_workflow_uses_workflow_secret_consistently() { ! rg -q 'GITHUB_TOKEN' "${file}" || fail "stats workflow should not mention GITHUB_TOKEN in token guidance" } +test_workflow_docs_and_links_use_actual_paths() { + local workflow_doc stats_workflow release_workflow + + workflow_doc="${REPO_ROOT}/WORKFLOW.md" + stats_workflow="${REPO_ROOT}/.gitea/workflows/update_stats_badge.yaml" + release_workflow="${REPO_ROOT}/.gitea/workflows/changelog_and_release.yml" + + grep -q 'changelog_and_release.yml' "${workflow_doc}" || fail "WORKFLOW.md should mention changelog_and_release.yml" + grep -q 'update_stats_badge.yaml' "${workflow_doc}" || fail "WORKFLOW.md should mention update_stats_badge.yaml" + ! rg -q 'changelog-and-release\.yml' "${workflow_doc}" || fail "WORKFLOW.md should not mention stale changelog-and-release.yml filename" + ! rg -q 'update-stats-badge\.yml' "${workflow_doc}" || fail "WORKFLOW.md should not mention stale update-stats-badge.yml filename" + ! rg -q 'update_stats_badge\.yml' "${workflow_doc}" || fail "WORKFLOW.md should not mention stale update_stats_badge.yml filename" + + grep -q '/src/branch/${{ github.ref_name }}/.gitea/workflows/update_stats_badge.yaml' "${stats_workflow}" || fail "stats workflow summary should link to .gitea workflow path" + grep -q '/src/branch/${{ env.MAIN_BRANCH }}/.gitea/workflows/changelog_and_release.yml' "${release_workflow}" || fail "release workflow summary should link to .gitea workflow path" + ! rg -q '/\\.github/workflows/' "${stats_workflow}" || fail "stats workflow should not link to .github/workflows" + ! rg -q '/\\.github/workflows/' "${release_workflow}" || fail "release workflow should not link to .github/workflows" +} + test_preset_env_examples_exist() { local file @@ -52,6 +71,7 @@ test_preset_env_examples_exist() { test_preset_compose_uses_env_for_instance test_workflows_do_not_hardcode_company_server test_stats_workflow_uses_workflow_secret_consistently +test_workflow_docs_and_links_use_actual_paths test_preset_env_examples_exist echo "template_defaults_test.sh: PASS"