From 0e8bcefec1c6c4ca9d779f8c715353e840f91877 Mon Sep 17 00:00:00 2001 From: feige996 <1020102647@qq.com> Date: Sun, 22 Jun 2025 11:26:47 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20=E5=88=A0=E9=99=A4=E8=BF=87=E6=97=B6?= =?UTF-8?q?=E7=9A=84GitHub=E5=B7=A5=E4=BD=9C=E6=B5=81=E5=92=8C=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/release.yml | 31 -------- .github/workflows/auto-merge.yml | 44 ----------- .github/workflows/release-log.yml | 119 ------------------------------ 3 files changed, 194 deletions(-) delete mode 100644 .github/release.yml delete mode 100644 .github/workflows/auto-merge.yml delete mode 100644 .github/workflows/release-log.yml diff --git a/.github/release.yml b/.github/release.yml deleted file mode 100644 index 6ae23b0..0000000 --- a/.github/release.yml +++ /dev/null @@ -1,31 +0,0 @@ -categories: - - title: 🚀 新功能 - labels: [feat, feature] - - title: 🛠️ 修复 - labels: [fix, bugfix] - - title: 💅 样式 - labels: [style] - - title: 📄 文档 - labels: [docs] - - title: ⚡️ 性能 - labels: [perf] - - title: 🧪 测试 - labels: [test] - - title: ♻️ 重构 - labels: [refactor] - - title: 📦 构建 - labels: [build] - - title: 🚨 补丁 - labels: [patch, hotfix] - - title: 🌐 发布 - labels: [release, publish] - - title: 🔧 流程 - labels: [ci, cd, workflow] - - title: ⚙️ 配置 - labels: [config, chore] - - title: 📁 文件 - labels: [file] - - title: 🎨 格式化 - labels: [format] - - title: 🔀 其他 - labels: [other, misc] diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml deleted file mode 100644 index c1a9d78..0000000 --- a/.github/workflows/auto-merge.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Auto Merge Main to Other Branches - -on: - push: - branches: - - main - workflow_dispatch: # 手动触发 - -jobs: - merge-to-i18n: - name: Merge main into i18n - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 - token: ${{ secrets.GH_TOKEN_AUTO_MERGE }} - - - name: Merge main into i18n - run: | - git config user.name "GitHub Actions" - git config user.email "actions@github.com" - git checkout i18n - git merge main --no-ff -m "Auto merge main into i18n" - git push origin i18n - - merge-to-base-sard-ui: - name: Merge main into base-sard-ui - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 - token: ${{ secrets.GH_TOKEN_AUTO_MERGE }} - - - name: Merge main into base-sard-ui - run: | - git config user.name "GitHub Actions" - git config user.email "actions@github.com" - git checkout base-sard-ui - git merge main --no-ff -m "Auto merge main into base-sard-ui" - git push origin base-sard-ui diff --git a/.github/workflows/release-log.yml b/.github/workflows/release-log.yml deleted file mode 100644 index c2887ab..0000000 --- a/.github/workflows/release-log.yml +++ /dev/null @@ -1,119 +0,0 @@ -name: Auto Release - -on: - push: - tags: - - 'v*' - -permissions: - contents: write - pull-requests: read - issues: read - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Install yq - run: sudo snap install yq - - - name: Generate changelog - id: changelog - env: - CONFIG_FILE: .github/release.yml - run: | - # 解析配置文件 - declare -A category_map - while IFS=";" read -r title labels; do - for label in $labels; do - category_map[$label]="$title" - done - done < <(yq -o=tsv '.categories[] | [.title, (.labels | join(" "))] | join(";")' $CONFIG_FILE) - # 获取版本范围 - mapfile -t tags < <(git tag -l --sort=-version:refname) - current_tag=${tags[0]} - previous_tag=${tags[1]:-} - if [[ -z "$previous_tag" ]]; then - commit_range="$current_tag" - echo "首次发布版本: $current_tag" - else - commit_range="$previous_tag..$current_tag" - echo "版本范围: $commit_range" - fi - # 获取所有符合规范的提交 - commits=$(git log --pretty=format:"%s|%h" "$commit_range") - # 生成分类日志 - declare -A log_entries - while IFS="|" read -r subject hash; do - # type=$(echo "$subject" | cut -d':' -f1 | tr -d ' ') - type=$(echo "$subject" | sed -E 's/^([[:alnum:]]+)(\(.*\))?:.*/\1/' | tr -d ' ') - found=0 - for label in "${!category_map[@]}"; do - if [[ "$type" == "$label" ]]; then - entry="- ${subject} (${hash:0:7})" - log_entries[${category_map[$label]}]+="$entry"$'\n' - found=1 - break - fi - done - if [[ $found -eq 0 ]]; then - entry="- ${subject} (${hash:0:7})" - log_entries["其他"]+="$entry"$'\n' - fi - done <<< "$commits" - - # 统计提交数量 - commit_count=$(git log --oneline "$commit_range" | wc -l) - # 统计受影响的文件数量 - file_count=$(git diff --name-only "$commit_range" | wc -l) - # 统计贡献者信息 - contributor_stats=$(git shortlog -sn "$commit_range") - contributor_notes="" - while IFS= read -r line; do - commits=$(echo "$line" | awk '{print $1}') - name=$(echo "$line" | awk '{$1=""; print $0}' | sed 's/^ //') - contributor_notes+="- @${name} (${commits} commits)\n" - done <<< "$contributor_stats" - # 构建输出内容 - release_notes="## 版本更新日志 ($current_tag)\n\n" - while IFS= read -r category; do - if [[ -n "${log_entries[$category]}" ]]; then - release_notes+="### $category\n${log_entries[$category]}\n" - fi - done < <(yq '.categories[].title' $CONFIG_FILE) - # 构建输出内容 - release_notes="## 版本更新日志 ($current_tag)\n\n" - current_date=$(date +"%Y-%m-%d") - # 添加发布日期和下载统计信息 - release_notes+=" ### 📅 发布日期: ${current_date}\n" - while IFS= read -r category; do - if [[ -n "${log_entries[$category]}" ]]; then - release_notes+="### $category\n${log_entries[$category]}\n" - fi - done < <(yq '.categories[].title' $CONFIG_FILE) - - # 添加统计信息 - release_notes+="### 📊 统计信息\n" - release_notes+="- 本次发布包含 ${commit_count} 个提交\n" - release_notes+="- 影响 ${file_count} 个文件\n\n" - # 添加贡献者信息 - release_notes+="### 👥 贡献者\n" - release_notes+="感谢这些优秀的贡献者(按提交次数排序):\n" - release_notes+="${contributor_notes}\n" - release_notes+="---\n" - # 写入文件 - echo -e "$release_notes" > changelog.md - echo "生成日志内容:" - cat changelog.md - - name: Create Release - uses: ncipollo/release-action@v1 - with: - generateReleaseNotes: false - bodyFile: changelog.md - tag: ${{ github.ref_name }}