写点什么

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:502235
用户头像

发布了 729 篇内容, 共 466.2 次阅读, 收获喜欢 1544 次。

关注

评论

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

互联网就业系列文(一)

HZFEStudio

互联网 就业

重启心智解锁,重新获得一份能力精进指南,面对不确定性的未来,我们可以和世界的变化做好友。

叶小鍵

让宝妈宝爸告别安全顾虑,区块链构建母婴行业新生态

旺链科技

区块链 母婴

政治局会议再提工业互联网产业数字化|区块链如何协同发力?

旺链科技

区块链 工业互联网

GIT基本概念与核心命令

IT视界

git 版本管理

EMQ映云科技边缘计算里程碑—Kuiper加入LF Edge基金会

EMQ映云科技

开源 云端 边缘流式数据 emq LF Edge

敏捷绩效管理三剑客:OKR 、KPI、CFR

CODING DevOps

DevOps OKR 敏捷绩效 绩效管理

Python——元组的使用

在即

6月日更

更好链接资金需求 | 区块链如何赋能“链”金融

旺链科技

金融

一群不想鸡娃的直男程序员,决定对一支笔下手了

脑极体

技术+商业,能否让网易智企一鸣惊人?

ToB行业头条

网易 tob

HarmonyOS学习路之开发基础知识——应用基础知识

爱吃土豆丝的打工人

鸿蒙 HarmonyOS 鸿蒙开发 鸿蒙系统

HarmonyOS学习路之开发基础知识——资源文件

爱吃土豆丝的打工人

鸿蒙 HarmonyOS DevEco资源文件 创建资源文件

文档代码同源

不脱发的程序猿

开发规范 文档代码同源

【融云视角】沉浸式音频与通讯技术未来趋势

融云 RongCloud

HarmonyOS学习路之HarmonyOS 概述

爱吃土豆丝的打工人

操作系统 HarmonyOS 鸿蒙系统

JAVA笔记(二)--Java初始

加百利

Java 后端 6月日更

你真的了解 equals 方法吗?

若尘

java编程 equals 6月日更

HarmonyOS 分布式多端应用一站式开发平台(DevEco Studio 安装)

爱吃土豆丝的打工人

操作系统 HarmonyOS 环境变量 DevEco Studio 鸿蒙开发

实时音视频开发理论必备:如何省流量?视频高度压缩背后的预测技术

JackJiang

音视频 即时通讯 IM 视频编解码

击破行业痛点,区块链赋能智慧物流高速发展

旺链科技

区块链 智慧物流

HarmonyOS学习路之开发基础——快速入门(编写第一个页面)

爱吃土豆丝的打工人

HarmonyOS 鸿蒙应用开发 DevEco Studio 创建页面 鸿蒙开发第一个页面

Flink Metric

Alex🐒

flink 翻译 flink1.13

100个自媒体运营工具推荐

资源君

运营 工具软件 自媒体 资源分享 工具分享

英特尔推出全新的基础设施处理器(IPU)

E科讯

100个开箱即用的shell脚本,CV大法好,工作不费脑!

北游学Java

Java Shell

区块链 | 让付费的知识真正“物超所值”

旺链科技

区块链 知识付费

HarmonyOS学习路之开发基础知识——应用配置文件

爱吃土豆丝的打工人

HarmonyOS 鸿蒙开发 鸿蒙系统 鸿蒙配置文件 deviceConfig

HarmonyOS学习路之开发基础——快速入门(创建另一个页面)

爱吃土豆丝的打工人

HarmonyOS 鸿蒙开发 DevEco Studio 创建新页面 创建另一个页面

全新升级IoT Stack 2.0和度能2.0,百度持续加码为产业智能化安全护航

百度大脑

百度智能云

以互联网行业为背景下的数据分析通识(上)

小飞象@木木自由

数据分析 数据分析体系 数据思维

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