楠木軒

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/

目前,該操作會打印出 5 個分數(滿分 100),並上傳 HTML 和 JSON 版本的報告。

在下一個版本中,該操作將允許你指定每項測試的閾值,如果不滿足條件,可以有選擇性地停止這個步驟。

用法

下面的工作流在 jarv.is 上運行一個 Lighthouse 審計,該步驟會在輸出中顯示 5 個分數,並上傳結果.html.json的版本,以供下載(如上所示)。

https://jarv.is/

workflow.yml文件:

name: Audit live siteon: pushjobs:audit:runs-on: ubuntu-lateststeps:- name: Audit live URLuses: jakejarvis/lighthouse-action@masterwith:url: 'https://jarv.is/'- name: Upload results as an artifactuses: actions/upload-artifact@masterwith:name: reportpath: './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 installnpm install

5小結

https://medium.com/better-programming/improve-your-workflow-with-these-4-github-actions-7b2fbd29f752