写点什么

4 个提高效率的 GitHub Actions 技巧

  • 2020-06-04
  • 本文字数:2745 字

    阅读完需:约 9 分钟

4个提高效率的GitHub Actions技巧


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


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

1. 利用 GitHub Actions 审计网页

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



Github Lighthouse Action


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


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



Lighthouse 审计报告示例

用法

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


workflow.yml文件:


name: Audit live siteon: 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

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库

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

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



Gitleaks-action

用法

workflow "gitleaks my commits" {  on = "push"  resolves = ["gitleaks"]}action "gitleaks" {  uses = "eshork/gitleaks-action@master"}
复制代码


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

4. 利用 GitHub Action 运行 ESLint


Eslint Action


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


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

用法

将下面的任何一个例子添加到文件.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

小结

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


英文原文:


Improve Your Workflow With These 4 GitHub Actions


2020-06-04 13:502326
用户头像

发布了 760 篇内容, 共 508.5 次阅读, 收获喜欢 1569 次。

关注

评论

发布
暂无评论
发现更多内容

Spring知识点总结!已整理成142页离线文档(源码笔记+思维导图)

三十而立

Java

PostgreSQL 技术内幕(六)Greenplum 排序算子

酷克数据HashData

借助 mperf 进行矩阵乘法极致优化

MegEngineBot

开源 性能优化 MegEngine

DeepL:慢公司的快速扩张之路

CnosDB

DeepL 时序数据库 开源社区 CnosDB

三方对接「心得」与「体会」

Java 对外接口

Surfire 单元测试添加 jvm参数

HoneyMoose

简单的文件搜索工具:Find Any File激活版

真大的脸盆

Mac Mac 软件 文件搜索 搜索工具 搜索软件

龙蜥白皮书精选:龙蜥全面支持 Intel 第四代可扩展处理器 SPR 平台

OpenAnolis小助手

开源 Spr 操作系统 intel 龙蜥社区

2周时间就掌握了Spring boot,原来是收藏了这样一份文档资料

三十而立

Java spring

跟GPT学k8s-Kubernetes-native load balancer options

jupiter

软件工程高效学 | 软件项目的开发模型

TiAmo

软件开发 模型开发

批量上传iOS应用程序截图的实用技巧

MPSK通信系统的设计与性能研究-8PSK

timerring

通信系统 8PSK

Activity初学乍练

芯动大师

android 活动 Activity

应用健康度隐患刨析解决系列之数据库时区设置

京东科技开发者

数据库 优化 企业号 3 月 PK 榜 健康度

ChatGPT如何助力DevOps|用例解读

SEAL安全

DevOps ChatGPT 企业号 3 月 PK 榜

干货|10个C4D必备插件,让工作事半功倍

Finovy Cloud

C4D 3ds Max

快来看HarmonyOS 3新动作!华为畅享10S等24款设备启动花粉Beta招募

最新动态

使用 Alluxio 优化 EMR 上 Flink Join

亚马逊云科技 (Amazon Web Services)

人工智能

从质量思维到用户思维

老张

质量保障 用户思维

JVM 的 noverify 启动参数

HoneyMoose

剥茧抽丝,细数模块化的前世今生

战场小包

前端 前端工程化 前端模块化

vika维格表 x 阿里云计算巢:SaaS 云端私有化部署,助力企业数字化转型

云布道师

计算巢

Go如何自动解压缩包?如何读取docx/doc文件内容?

王中阳Go

Go 高效工作 学习方法 文件处理 压缩

Dubbo 就近路由

昵称不能为null

dubbo 路由

最新Ins图片保姆级保存方法来啦!你还在等什么!

frank

ins

新一代移动动态研发模式及原理机制解析

Onegun

移动开发 热更新 动态更新

玖章算术CEO叶正盛在杭州人工智能小镇AIGC论坛发表主题演讲

NineData

人工智能 代码开发 AIGC 玖章算术 NineData

运维训练营第20周作业

好吃不贵

架构的演进

程序员大彬

Java 架构

zookeeper的Leader选举源码解析

京东科技开发者

数据库 代码 企业号 3 月 PK 榜 选举机制

4个提高效率的GitHub Actions技巧_语言 & 开发_Indrek Lasn_InfoQ精选文章