Create Your Own Github Action
前言 會想自己弄一個 Github Action 除了自己有需求目前找不到既有的服務可以滿足之外,就是很想自己也動手玩玩看這個便利的工具。這個需求的產生主要是因為近年在跟團隊合作時,有發現要讓團隊成員養成保持專案的分支整潔的這件事情上面實在有點困難,主因是開發常常多頭進行之外,就是沒有一個時間是可以讓大家喘口氣好好整理目前的 Codebase,既然連 Code 都沒時間整理了,專案的分支就更不用講了。只是這樣長久下來實在有太多無意義的分支殘留,在搜尋時與管理時會有些麻煩,因此若有一個小幫手能夠自動自發的幫忙清理分支那就好很多了。 起步走 想直接看最終成品的可以到這邊看最後完成的樣子跟使用方式。但要先提醒急著用的人,這個 action 會把符合條件的 branch 砍掉,基本上屬於不可逆操作,所以使用說明需要先看仔細。 目前 Github action 主流是用 nodejs 開發,因為相關的 ecosystem 還滿完整豐富的開發起來還滿快的,所以這個指南就用 nodejs 來做簡易教學。會順手使用 volta 和本機端測試 Github action 的好用工具 act。 volta 的使用可以參考這篇文章。 初始設定 1 mkdir {your-project-path} && cd {your-project-path} 設定專案初始值 專案使用 typescript 但因為只有開發階段需要所以只須裝在開發階段,另外再安裝一些開發階段才會需要的套件。 1 2 npm init npm install --save-dev typescript @types/node @vercel/ncc @types/jest jest ts-jest gts 安裝後可以用以下指令測試 typescript 是否安裝成功 npx tsc -v 安裝完上述開發環境的套件後有一些套件需要初始化設定,像是 typescript、gts 跟 jest。 初始化 typescript。裡面有很多可以設定的參數,可以參考這裡。而初始化 jest 可以參考這裡,另外 gts 的相關資訊能在這邊看看。 在 jest 的設定方面有一個小撇步,那就是不要使用 typescript,讓它用一般的 javascript 檔案格式就好,不然編譯的時候預設會往 tsconfig.json 裡的 rootDir 位置去找 jest.config.ts ,該位置找不到檔案的話就會編譯失敗。 ...