簡介
大家好,為了使開源專案的維護和管理更方便一些,出於個人需求寫了一款開源專案的模板,該模板基於 Github 平臺,並使用 .NET 來實現管道功能.
在接受過實戰檢驗後, 於今天開源, 專案地址:https://github.com/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 給的資訊是真全啊, 不展開看了.