简介
大家好,为了使开源项目的维护和管理更方便一些,出于个人需求写了一款开源项目的模板,该模板基于 Github 平台,并使用 .NET 来实现管道功能.
在接受过实战检验后, 于今天开源, 项目地址:GitHub - night-moon-studio/Template
定位
以下5种境地的同学可以继续往下读一读:
- 你[是]或[想成为]一名.NET开源项目作者.
- 你有一个.NET的开源项目,并在维护或迭代中.
- 你被ISSUE/PR/CI/发布等问题所困扰.
- 你喜欢研究 Github Action.
- 单纯对标题感兴趣.
下面将从需求->开发->测试->发布->归档这个流程来讲, 功能的配置及原理将在后面几篇中讲解,本篇仅展现功能:
需求相关功能
说到开源项目的需求,不得不提 ISSUE, 所以以用户反馈一个 BUG/建议/问答/期待 为起点来谈以下这款模板带来的便捷功能;
1. 现成的 issue 表单模板:
表单提交后会自动打上你希望归类的 Label. 比如提BUG会打上一个红色的 bug label.
2. issue 推荐功能
issue 被提交后, 管道将运行推荐功能, 从过往的 issue 中挑选出一定相似度的 issue 并推荐给提问者.
3. 垃圾 issue 屏蔽用户
如果有捣乱的人开 issue 问候您的家人, 给它来个 aaa-block-user 标签, 管道运行后会拉黑他, 并自动删除当前 issue.
编码相关功能
1. 提交 pr 自动归类, 太直观了直接看图.
2. 提交 pr 自动运行跨平台的 UT 测试, 当然了具体测什么您自己写.
3. 推荐一定相似度的 ISSUE 给 PR, 相似度区间和推荐数量您是可以自己配置的,以后讲.
4. pr 成功合并后, 将被自动归档到 {ProjectName}_VNext 计划中, 图隐藏了一些, 仅展示有用部分.
5. Src 工程自动生成全局 Using 引用.
测试相关功能
和我们正规项目不一样, 实际上测试包含了两个部分:
-
1. 开发时测试就是上面的 PR 自动触发的测试;
-
2. 发布时测试, 测试并上传覆盖率文件;
发布相关功能
发布前需要编辑 CHANGELOG.md (后面有篇专门介绍发布的文章会讲)
1. NUGET 自动发版:
管道功能会根据你 CHANGELOG 的最新节点信息匹配工程节点, 然后进行自动发版并推送到 NUGET , 很具体的发版错误提示.
归档相关功能
1. 自动帮您的仓库发布 release 信息.
2. 自动归档当前计划,当前的 {ProjectName}_VNext 变为您发布的主版本;随后会新建一个 {ProjectName}_VNext 计划
其他功能
自动的依赖检测机器人.
这 PR 给的信息是真全啊, 不展开看了.