50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

发布了 883 篇内容, 共 623.3 次阅读, 收获喜欢 1618 次。

关注

评论

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

2022年作为一个中年程序员写给35岁的自己

Linux服务器开发

c++ 程序员 架构师 Linux服务器开发 Linux后台开发

电阻电路的等效变换(Ⅰ)

謓泽

3月月更

关于黑帕云用户迁移明道云的详细说明

明道云

直播预告 | PolarDB-X 动手实践系列——用 PolarDB-X + Flink 搭建实时数据大屏

阿里云数据库开源

数据库 阿里云 开源 分布式 polarDB

实现简易的 Vue 响应式

CRMEB

3步排查,3步优化,探针性能损耗直降44%

TakinTalks稳定性社区

Java 性能分析 探针 性能提升 性能损耗

Apache Flink 在国有大型银行智能运营场景下的应用

Apache Flink

大数据 flink 编程 流计算 实时计算

校招项目应该如何准备才能高大上一点

宇宙之一粟

项目 3月月更

谷歌云对象存储攻防

火线安全

安全攻防 对象存储 云安全

架构实战营 第6期 模块一课后作业

火钳刘明

#架构实战营 「架构实战营」

19 条有效的跨端 cpp 开发经验

阿里巴巴终端技术

cpp 跨端开发

Tapdata加入PolarDB开源数据库社区

阿里云数据库开源

数据库 阿里云 开源 开源数据库 polarDB

我们如何建立一套无参考视频质量评价体系?

声网

视频 Dev for Dev VQA

巧用对象存储回源绕过SSRF限制

火线安全

Web 云安全 web漏洞

【性能测试工具lmbench】快来测测你的系统可以打几分

优麒麟

Linux 开源 系统管理 优麒麟

网络安全 Kali web安全 基于SMB协议收集信息

学神来啦

Linux 运维 网络安全 WEB安全 kali Linux

英特尔X钉钉:以智能协作驱动数字办公发展

科技新消息

OpenMLDB 在线模块架构解析

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征平台

3大能力升级,云效+钉钉,让研发协作更「敏捷」

阿里云云效

云计算 阿里云 云原生 钉钉 敏捷研发

阿里本地生活端智能架构设计与技术探索

阿里巴巴终端技术

端智能

新思科技加速安全软件开发,推出Code Sight插件标准版

InfoQ_434670063458

软件开发 新思科技 可信软件 IDE环境 Code Sight

Go性能优化小技巧

jinjin

Go 性能优化

华为云企业级Redis揭秘第17期:集群搭载多DB,多租隔离更降本

华为云数据库小助手

GaussDB GaussDB ( for Redis )

Go Data Structures: Interfaces [中译]

hyx

源码 Go 语言

模块一作业

HZ

架构实战营

配置Mountebank环境-mountebank系列(2)

Bruce Talk

技术 敏捷 Agile

5G区块链技术让建水紫陶有了“身份证”

CECBC

XSS跨站脚本攻击漏洞修复技巧

喀拉峻

网络安全

大数据,不只“懂数”,更要“懂行”

鼎道智联

大数据

【Zeekr_Tech】TARA攻击树分析方法论

Zeekr_Tech

信息安全 极氪

创业圈的哈利波特们注意了!霍格沃兹即将开学,谁是你的魔法导师?

创业邦

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