Cache & Artifacts
Cache
利用 cache 可以將特定的檔案(例如:nodejs modules)存入 cache,在下一次 workflow 執行時就可以不用重複下載之前已經下載過的套件
必須搭配
actions/cache使用可以參考 actions/cache repository 中的範例,裡面有各種程式語言的範例可以參考使用
artifact
通常用來存放程式建置打包(build)後出來的檔案,需要透過
actions/upload-artifact進行上傳上傳後就可以在每個 action 中看到 artifact 可以被下載
Semantic Versioning & Conventional Commits
Semantic Versioning 是很多專案用來作為版本號管理時的規範之用
詳細的用法可以參考 Semantic Versioning 2.0.0 | Semantic Versioning 網站的說明
Conventional Commits
Conventional Commits 則是可以透過固定格式的 commit message,來自動產生版本號、release node … 等這一類的資訊,甚至是關閉指定的 issue
詳細的用法可以參考 Conventional Commits 網站的說明
自動化產生版本號 & Release Note
透過 semantic-release 工具,搭配上面提到的 Conventional Commits,可以全自動進行版本號的管理 & 套件的發佈
若要自動檢查 commit 是否有符合預先制定好的規則,可以使用 commitlnt 這個工具來完成
Commitizen 則是一款協助用的工具,可以透過互動的方式,在 commit 過程中透過問答的方式填寫完所有需要的資訊
其他注意事項
trigger workflow in another workflow
無法在一個 workflow 中透過
${{ secret.GITHUB_TOKEN }}去觸發另外一個 workflow(例如:CI workflow 中有發布 release,而有另外一個 release workflow 則用來送通知)若需要達成上面觸發另外一個 workflow 的效果,需要新增到
Developer settings新增一個Personal access token來作為發布 release 用的 token,如此一來另外一個 workflow 才會被觸發
workflow status badge
若想要在 README 頁面增加一個 workflow 是否有完成的 badge 圖案,可以放一段 markdown 的圖片語法來達成,語法如下:
透過上面 badge 的連結可以發現,可以指定在特定的 branch & event 所對應到的結果來產生 badge