本文介紹了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/
目前,該操作會打印出 5 個分數(滿分 100),並上傳 HTML 和 JSON 版本的報告。
在下一個版本中,該操作將允許你指定每項測試的閾值,如果不滿足條件,可以有選擇性地停止這個步驟。
用法
下面的工作流在 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'
Lighthouse 在你構建漸進式 Web 應用時特別有用。該項目的靈感來自 GoogleChromeLabs/lighthousebot。
https://medium.com/better-programming/everything-you-need-to-know-about-pwas-8e41a7e745aa
https://github.com/GoogleChromeLabs/lighthousebot
2利用 GitHub Actions 運行 SSH 命令
該操作將通過 SSH 在你的 $HOST 上將提供的參數作為命令運行。如果你想在每次提交或推送之後在自己的私有服務器上運行命令,那麼它會非常有用。
用法
要使用這個操作,只需要在.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
用法
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
該操作在指定的 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小結
https://medium.com/better-programming/improve-your-workflow-with-these-4-github-actions-7b2fbd29f752