Skip to content
RimWorld-RimMind-ModPublic

About

Shared reusable GitHub Actions workflows for RimMind mod compilation, test matrix & AI releases

Topics

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

RimMind Shared Workflows

RimMind 项目共用的 GitHub Actions 可复用工作流仓库。

可用工作流

1. Release 工作流 (release.yml)

自动生成 AI 驱动的 Release Notes 并打包 Mod 发布到 GitHub Releases。

功能:

  • 根据 tag 自动计算 git 对比区间
  • 收集区间内的 Commits 和 PR 数据
  • 调用 DeepSeek AI 生成中英双语 Release Notes
  • 按 About/About.xml 中的 Mod 名称打包 zip
  • 自动判断是否为预发布版本(alpha/beta/rc/preview)
  • 发布到 GitHub Releases 并附带 zip 产物

输入参数:

参数 类型 必填 默认值 说明
tag-name string 是 - 触发发布的 tag 名称(如 v1.2.3)
deepseek-base-url string 否 https://api.deepseek.com DeepSeek API 基础 URL
deepseek-model string 否 deepseek-chat DeepSeek 模型名称
exclude-patterns string 否 '' 额外的 rsync 排除模式(空格分隔)

密钥:

密钥 必填 说明
DEEPSEEK_API_KEY 是 DeepSeek API 密钥
DEEPSEEK_BASE_URL 否 DeepSeek API 基础 URL(优先于 input)
GITHUB_TOKEN 是 GitHub Token(用于创建 Release)

调用示例:

name: Release

on:
  push:
    tags:
      - 'v[0-9]+.[0-9]+.[0-9]+*'
      - 'V[0-9]+.[0-9]+.[0-9]+*'

permissions:
  contents: write
  pull-requests: read

jobs:
  release:
    uses: RimWorld-RimMind-Mod/Workflows/.github/workflows/release.yml@v1
    with:
      tag-name: ${{ github.ref_name }}
    secrets: inherit

带额外排除模式的调用示例:

jobs:
  release:
    uses: RimWorld-RimMind-Mod/Workflows/.github/workflows/release.yml@v1
    with:
      tag-name: ${{ github.ref_name }}
      exclude-patterns: 'autotest/ .vscode/'
    secrets: inherit

2. Test 工作流 (test.yml)

运行 .NET 单元测试和分阶段架构测试。

功能:

  • 自动检测 Tests/ 和 ArchTests/ 目录
  • 使用 matrix 策略并行运行各阶段架构测试
  • 支持自定义 .NET 版本、测试目录和阶段列表

输入参数:

参数 类型 必填 默认值 说明
dotnet-version string 否 10.0.x .NET SDK 版本
test-dir string 否 Tests 单元测试项目目录
arch-test-dir string 否 ArchTests 架构测试项目目录
arch-phases string 否 A,B,C,D,E,Full 要运行的阶段列表(逗号分隔)

架构测试阶段说明:

阶段 --filter 参数 说明
A Phase=A|Phase=General 基础架构验证
B Phase=A|Phase=B|Phase=General 包含 A 阶段
C Phase=A|Phase=B|Phase=C|Phase=General 包含 A+B 阶段
D Phase=A|Phase=B|Phase=C|Phase=D|Phase=General 包含 A+B+C 阶段
E Phase=A|Phase=B|Phase=C|Phase=D|Phase=E|Phase=General 包含 A+B+C+D 阶段
Full 无 filter 运行全部架构测试

调用示例:

name: Unit Tests

on:
  push:
    branches: [main, master]
    paths:
      - 'Source/**'
      - 'Tests/**'
      - 'ArchTests/**'
  pull_request:
    branches: [main, master]
    paths:
      - 'Source/**'
      - 'Tests/**'
      - 'ArchTests/**'

jobs:
  test:
    uses: RimWorld-RimMind-Mod/Workflows/.github/workflows/test.yml@v1
    secrets: inherit

仅运行部分阶段的调用示例:

jobs:
  test:
    uses: RimWorld-RimMind-Mod/Workflows/.github/workflows/test.yml@v1
    with:
      arch-phases: 'A,B,Full'
    secrets: inherit

目录结构

Workflows/
├── .github/
│   └── workflows/
│       ├── release.yml      # 可复用 Release 工作流
│       └── test.yml         # 可复用 Test 工作流
├── scripts/
│   └── analyze_release.py   # AI Release Notes 生成脚本
├── .gitignore
└── README.md

注意事项

  • 可复用工作流通过 on: workflow_call 定义,只能被其他仓库的 workflow 调用
  • Release 工作流会自动 checkout 调用方仓库和本仓库(用于获取 analyze_release.py 脚本)
  • 打包时会排除 .shared-workflows/ 目录,不会将其包含在发布 zip 中
  • DEEPSEEK_API_KEY 必须在调用方仓库的 Secrets 中配置
  • 使用 secrets: inherit 可以简化密钥传递,调用方仓库的所有 secrets 会自动传递给可复用工作流
  • 建议使用 @v1 引用而非 @main,以避免工作流更新导致的意外行为

About

Shared reusable GitHub Actions workflows for RimMind mod compilation, test matrix & AI releases

Topics

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages