速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

发布了 741 篇内容, 共 480.7 次阅读, 收获喜欢 1549 次。

关注

评论

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

解锁企业成功密码—商品计划的神奇力量

第七在线

vue前端自适应布局,一步到位所有自适应

不在线第一只蜗牛

Vue 前端

扎克伯格说AI会让推荐系统变得更强大?一文读懂什么是智能推荐系统

爱AI的猫猫头

人工智能 音视频 推荐系统 办公效率 搜索系统

IoTDB 单机/双活/集群部署的区别和适用场景

Apache IoTDB

Java智能之Spring AI:5分钟打造智能聊天模型的利器

快乐非自愿限量之名

Java 人工智能 spring AI

JNPF快速开发平台赋能数字办公方式转变

不在线第一只蜗牛

低代码 数字化转型 数字化办公

现成源码开发游戏直播软件:应对快速变化的技术和用户需求

软件开发-梦幻运营部

全文彩印!人民邮电出版的“24小时学会黑客攻防”,讲的太好了!

我再BUG界嘎嘎乱杀

黑客 网络安全 安全 信息安全 网安

易点天下KreadoAI爆款视频生成功能上新 解锁出海营销新路径

新消费日报

JNPF快速开发平台助力企业实现工作流自动化

EquatorCoco

工作流 低代码 自动化运维

畅捷通基于Flink的实时数仓落地实践

Apache Flink

大数据 flink 实时数仓

XIAOJUSURVEY重磅升级,推出图形化逻辑编排能力

XIAOJUSURVEY

开源 规则引擎 可视化编排 图形化编排 问卷逻辑

某个国外的真实XSS漏洞利用探寻

我再BUG界嘎嘎乱杀

黑客 网络安全 信息安全 XSS 漏洞

亚信安慧AntDB-T:使用Brin索引提升OLAP查询性能以及节省磁盘空间

亚信AntDB数据库

AntDB

14点自动化经验

FunTester

Qwen2-Math 开源 AI 模型发布;阿里云推出首个域名 AI 大模型应用丨 RTE 开发者日报

声网

数据分析与决策支持:京东商品详情API的商业价值

技术冰糖葫芦

API Explorer api 货币化 API 接口 API 测试

就一次!带你彻底搞懂CSRF攻击与防御

我再BUG界嘎嘎乱杀

黑客 网络安全 信息安全 CSRF 网安

实用指南|在多云环境中部署向量数据库

Zilliz

大数据 向量数据库 LLM 大语言模型 AICG

京东面试:说说CMS工作原理?

王磊

Pinterest:从 Druid 到 StarRocks,实现 6 倍成本效益比提升

StarRocks

Druid Pinterest

观测云突变告警,精准预测云原生的系统异常

观测云

云原生 监控告警

远程访问内网设备:对比IPsec VPN,SD-WAN异地组网更具优势

贝锐

运维 SD-WAN 远程运维 组网

Kubernetes 监控:观测云与 Prometheus CRD 的集成

可观测技术

Kubernetes

智源未来选择 TDengine Cloud,解锁高效能源管理

TDengine

JNPF快速开发平台让业务活起来

快乐非自愿限量之名

阿里巴巴拍立淘API返回值:商品关联推荐与交叉销售

技术冰糖葫芦

API Explorer api 货币化 API 接口 API 测试

API可观察性对于现代应用程序的最大好处

幂简集成

API API 接口

【活动预告】研讨会+开源集市,IoTDB “登录” GOTC 2024!

Apache IoTDB

相聚中国香港,共赢智能未来!华为云邀您共赴 KubeCon China 2024

华为云原生团队

云计算 云原生 KubeCON AI 人工智能

邀请函 I 松下信息和望繁信科技邀您参加「数智时代下大数据应用的“道”与“术”」闭门会议

望繁信科技

大数据 数字化转型 解决方案 流程挖掘 流程智能

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