Categories
程式開發

4个提高效率的GitHub Actions技巧


4个提高效率的GitHub Actions技巧 1

本文最初发布于BetterProgramming博客,经原作者授权由InfoQ中文站翻译并分享。

如果你将代码托管在GitHub上,那么你可以充分利用GitHub Actions。借助GitHub Actions,你可以完成代码测试和检查,无需手动运行这些任务。如果你不很清楚GitHub Actions是什么以及如何使用它们,我建议你先看看阮一峰的GitHub Actions 入门教程

1. 利用GitHub Actions审计网页

这一操作集成了谷歌提供的实用网页审计工具Lighthouse,可以检测性能、可访问性、最佳实践、搜索引擎优化和渐进式Web应用程序。

4个提高效率的GitHub Actions技巧 2

Github Lighthouse Action

目前,该操作会打印出5个分数(满分100),并上传HTML和JSON版本的报告。

在下一个版本中,该操作将允许你指定每项测试的阈值,如果不满足条件,可以有选择性地停止这个步骤。

4个提高效率的GitHub Actions技巧 3

Lighthouse审计报告示例

用法

下面的工作流在jarv.is上运行一个Lighthouse审计,该步骤会在输出中显示5个分数,并上传结果 .html.json的版本,以供下载(如上所示)。

workflow.yml文件:

name: Audit live site
on: pushjobs:
  audit:
    runs-on: ubuntu-latest
    steps:
    - name: Audit live URL
      uses: jakejarvis/[email protected]
      with:
        url: 'https://jarv.is/'
    - name: Upload results as an artifact
      uses: actions/[email protected]
      with:
        name: report
        path: './report'

Lighthouse在你构建渐进式Web应用时特别有用。该项目的灵感来自GoogleChromeLabs/lighthousebot

2. 利用GitHub Actions运行SSH命令

该操作将通过SSH在你的$HOST上将提供的参数作为命令运行。如果你想在每次提交或推送之后在自己的私有服务器上运行命令,那么它会非常有用。

4个提高效率的GitHub Actions技巧 4

SSH GitHub Action

用法

要使用这个操作,只需要在.github/main.workflow文件中添加以下几行:

action "Run deploy script" {
  uses = "maddox/actions/[email protected]"
  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库

3. 利用GitHub Actions检测密钥泄漏

gitleaks作为一个GitHub Action,用于审计Git提交中的秘密。如果你使用.env文件,该操作会在你无意中发布了私密信息时通知你。

4个提高效率的GitHub Actions技巧 5

Gitleaks-action

用法

workflow "gitleaks my commits" {
  on = "push"
  resolves = ["gitleaks"]
}action "gitleaks" {
  uses = "eshork/[email protected]"
}

要了解更多信息,请移步zricethezav/gitleaks

4. 利用GitHub Action运行ESLint

4个提高效率的GitHub Actions技巧 6

Eslint Action

该操作在指定的JavaScript文件上执行ESLint代码检查工具,而不需要任何前期的操作/构建步骤或Docker

要执行操作,本地必须运行ESLint。它将使用与本地相同的规则。要了解更多信息,请查看ESLint入门指南

用法

将下面的任何一个例子添加到文件.github/main.workflow

下面是一个使用该操作的示例:

workflow "New workflow" {
  on = "push"
  resolves = ["ESLint"]
}action "ESLint" {
  uses = "stefanoeb/[email protected]"
}

在默认情况下,它会对项目中的所有文件运行ESLint。但是,你可以使用args 指定要检查的文件,如下所示:

workflow "New workflow" {
  on = "push"
  resolves = ["ESLint"]
}action "ESLint" {
  uses = "stefanoeb/[email protected]"
  args = "index.js src/**.js"
}

如果你之前没有安装必要的模块,那么该操作会自动运行yarn installnpm install

小结

感谢阅读,希望本文对你有所帮助。如果你知道任何其他有用的GitHub Actions,请告诉我们。保持好奇,快乐编码!

英文原文:

Improve Your Workflow With These 4 GitHub Actions