4個提高效率的GitHub Actions技巧
本文介紹了4個能幫你節省時間的 GitHub Actions,它們可以改善你的工作流。
如果你將代碼托管在 GitHub 上,那么你可以充分利用 GitHub Actions。借助 GitHub Actions,你可以完成代碼測試和檢查,無需手動運行這些任務。
https://github.com/features/actions
如果你不很清楚 GitHub Actions 是什么以及如何使用它們,我建議你先看看 阮一峰的 GitHub Actions 入門教程。
http://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html
1. 利用 GitHub Actions 審計網頁
這一操作集成了谷歌提供的實用網頁審計工具 Lighthouse,可以檢測性能、可訪問性、最佳實踐、搜索引擎優化和漸進式 Web 應用程序。
https://developers.google.com/web/tools/lighthouse/
Github Lighthouse Action
目前,該操作會打印出 5 個分數(滿分 100),并上傳 HTML 和 JSON 版本的報告。
在下一個版本中,該操作將允許你指定每項測試的閾值,如果不滿足條件,可以有選擇性地停止這個步驟。
Lighthouse 審計報告示例
用法
下面的工作流在 jarv.is 上運行一個 Lighthouse 審計,該步驟會在輸出中顯示 5 個分數,并上傳結果 .html 和 .json的版本,以供下載(如上所示)。
https://jarv.is/
workflow.yml文件:
- name: Audit live site
- on: pushjobs:
- audit:
- runs-on: ubuntu-latest
- steps:
- - name: Audit live URL
- uses: jakejarvis/lighthouse-action@master
- with:
- url: 'https://jarv.is/'
- - name: Upload results as an artifact
- uses: actions/upload-artifact@master
- with:
- name: report
- path: './report'
2. 利用 GitHub Actions 運行 SSH 命令
該操作將通過 SSH 在你的 $HOST 上將提供的參數作為命令運行。如果你想在每次提交或推送之后在自己的私有服務器上運行命令,那么它會非常有用。
SSH GitHub Action
用法
要使用這個操作,只需要在.github/main.workflow文件中添加以下幾行:
- action "Run deploy script" {
- uses = "maddox/actions/ssh@master"
- args = "/opt/deploy/run"
- secrets = [
- "PRIVATE_KEY",
- "HOST",
- "USER"
- ]
- }
所需的參數
你所使用的參數就是你要通過 SSH 在你的服務器上運行的命令。
示例
- args = "/opt/deploy/run"
- args = "touch ~/.reload"
所需的私密信息
要使用這項操作,你需要提供以下私密信息:
- PRIVATE_KEY:SSH 私鑰;
- HOST:該操作將通過 SSH 連接并運行命令的主機,如your.site.com;
- USER: SSH 命令將其和私鑰一起用于身份驗證的用戶。
要了解更多細節,請查看 GitHub 庫。
https://github.com/maddox/actions/tree/master/ssh
3. 利用 GitHub Actions 檢測密鑰泄漏
將 gitleaks 作為一個 GitHub Action,用于審計 Git 提交中的秘密。如果你使用.env文件,該操作會在你無意中發布了私密信息時通知你。
https://github.com/zricethezav/gitleaks
Gitleaks-action
用法
- workflow "gitleaks my commits" {
- on = "push"
- resolves = ["gitleaks"]
- }action "gitleaks" {
- uses = "eshork/gitleaks-action@master"
- }
要了解更多信息,請移步 zricethezav/gitleaks。
https://github.com/zricethezav/gitleaks
4. 利用 GitHub Action 運行 ESLint
Eslint Action
該操作在指定的 JavaScript 文件上執行 ESLint 代碼檢查工具,而不需要任何前期的操作 / 構建步驟或 Docker。
https://eslint.org/
要執行操作,本地必須運行 ESLint。它將使用與本地相同的規則。要了解更多信息,請查看 ESLint 入門指南。
https://eslint.org/docs/user-guide/getting-started#installation-and-usage
用法
將下面的任何一個例子添加到文件.github/main.workflow。
下面是一個使用該操作的示例:
- workflow "New workflow" {
- on = "push"
- resolves = ["ESLint"]
- }action "ESLint" {
- uses = "stefanoeb/eslint-action@master"
- }
在默認情況下,它會對項目中的所有文件運行 ESLint。但是,你可以使用args 指定要檢查的文件,如下所示:
- workflow "New workflow" {
- on = "push"
- resolves = ["ESLint"]
- }action "ESLint" {
- uses = "stefanoeb/eslint-action@master"
- args = "index.js src/**.js"
- }
如果你之前沒有安裝必要的模塊,那么該操作會自動運行yarn install 或 npm install 。
5. 小結
感謝閱讀,希望本文對你有所幫助。如果你知道任何其他有用的 GitHub Actions,請告訴我們。保持好奇,快樂編碼!