5分钟教你快速掌握Github Action持续集成

简介: 前端时间发布了一个滑动验证组件包 react-slider-vertify , 里面用到了 Github Action 作为自动化打包发布工具, 我们只需要简单的配置就能轻松的在执行 git push 的时候自动打包项目并将其一键发布到 npm 中.

网络异常,图片无法展示
|


前言


前端时间发布了一个滑动验证组件包 react-slider-vertify , 里面用到了 Github Action 作为自动化打包发布工具, 我们只需要简单的配置就能轻松的在执行 git push  的时候自动打包项目并将其一键发布到 npm 中.  


接下来我就带大家一起了解一下 Github Action , 并从零教大家使用 Github Action 高效的管理和发布自己的开源项目.


Github Action 简介



Github Action 是 Github 推出的持续集成工具, 每次提交代码到 Github 的仓库后,Github 都会自动创建一个虚拟机(例如 Mac / Windows / Linux),来执行一段或多段指令,例如:


npm install
npm run build


我们集成 Github Action 的做法,就是在我们仓库的根目录下,创建一个 .github 文件夹,里面放一个 *.yaml 文件, 这个 Yaml 文件就是我们配置 Github Action 所用的文件。


有关 yaml 更多的知识可以参考: www.codeproject.com/Articles/12…


Github Action 的使用限制



  • 每个 Workflow 中的 job 最多可以执行 6 个小时
  • 每个 Workflow 最多可以执行 72 小时
  • 每个 Workflow 中的 job 最多可以排队 24 小时
  • 在一个存储库所有 Action 中,一个小时最多可以执行 1000 个 API 请求
  • 并发工作数:Linux:20,Mac:5


Workflow 是由一个或多个 job 组成的可配置的自动化过程。我们通过创建 YAML 文件来创建 Workflow 配置。


从零搭建 github 持续集成项目(npm包持续集成)


在了解了基本的知识之后, 我将通过一个实际的项目来带大家快速上手 Github Action . 最终实现的目标: 当我们将代码推送到 github上后, 通过 Github Action 自动打包项目, 并一键发布到 npm 上.


网络异常,图片无法展示
|


获取 npm token



要想让 Github Action 能有权利发布指定的 npm 包, 需要获取 npm通行证. 这个通行证就是 npm token, 所以我们需要登入 npm 官网, 生成一个 token :


网络异常,图片无法展示
|


设置 github secret



我们在拿到 npm token 后, 打开对应项目的 github 仓库, 切换到 settings 面板, 找到 secrets 子菜单, 创建一个新的 secret, 将 npm token 复制到内容区, 并命名(这个名字会在yaml文件中用到).


网络异常,图片无法展示
|


创建 Github Action



网络异常,图片无法展示
|


我们切换到 actions 面板可以看到很多 workflows 模版, 我们选择如下模版:


网络异常,图片无法展示
|


当然如果属性 yaml 配置的也可以自己创建一个 workflow 供他人使用.


我们点击安装按钮之后会跳转到编辑界面, 我们可以直接点击右上放的提交按钮:


网络异常,图片无法展示
|


此时就创建了一个 workflow .


配置 workflows



这里我列一下 react-slider-vertify 的 workflow.


name: Node.js Package
on:
 pull_request:
   branches:
     - main
 push:
   branches:
     - main
jobs:
 build:
   runs-on: ubuntu-latest
   steps:
     - uses: actions/checkout@v2
     - uses: actions/setup-node@v2
       with:
         node-version: 14
     - run: yarn
     - run: yarn build
 publish-npm:
   needs: build
   runs-on: ubuntu-latest
   steps:
     - uses: actions/checkout@v2
     - uses: actions/setup-node@v2
       with:
         node-version: 14
         registry-url: https://registry.npmjs.com/
     - run: npm publish --access public
       env:
         NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}


其中有几个术语和大家介绍一下:


  • name Workflow 的名称,Github 在存储库的 Action 页面上显示 Workflow 的名称
  • on 触发 Workflow 执行的 event 名称, 比如 on: push(单个事件), on: [push, workflow_dispatch] - 多个事件
  • jobs 一个 Workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务
  • steps 每个 job 由多个 step 构成,它会从上至下依次执行
  • env 环境变量, secrets.NPM_TOKEN就是我们之前定义的secret


提交测试



我们修改一下项目的代码, 然后执行:


git add .
git commit -m ':new: your first commit'
git push

提交成功之后我们打开项目的 github action 面板:


网络异常,图片无法展示
|


可以看到代码线上构建的流程和状态, 是不是和我们在开发企业项目的自动化流程很像呢?


最后


如果大家对可视化搭建或者低代码/零代码感兴趣,也可以参考我往期的文章或者在评论区交流你的想法和心得,欢迎一起探索前端真正的技术。




目录
相关文章
|
6月前
|
开发工具 git
Playwright系列(6):如何集成到GitHub
Playwright系列(6):如何集成到GitHub
142 0
Playwright系列(6):如何集成到GitHub
|
6月前
GitHub和Gitee的基本使用和在IDEA中的集成
GitHub和Gitee的基本使用和在IDEA中的集成
75 0
|
1月前
|
对象存储
一个通过 GitHub Action 将 GitHub 仓库与阿里云 OSS 完全同步的脚本
一种将 GitHub 仓库完全同步到阿里云 OSS 的方法。
|
2月前
|
Shell 网络安全 开发工具
Git,GitHub,Gitee&IDEA集成Git
Git提交项目到GitHub简洁版、版本控制、安装、常用命令、分支、团队协作机制、Github、Gitee远程仓库、IDEA集成Git、IDEA集成Github、IDEA集成Gitee
Git,GitHub,Gitee&IDEA集成Git
|
3月前
|
Linux C++ Docker
【Azure Developer】在Github Action中使用Azure/functions-container-action@v1配置Function App并成功部署Function Image
【Azure Developer】在Github Action中使用Azure/functions-container-action@v1配置Function App并成功部署Function Image
|
3月前
|
数据安全/隐私保护
【Azure Developer】Github Action使用Azure/login@v1插件登录遇见错误的替代方案
【Azure Developer】Github Action使用Azure/login@v1插件登录遇见错误的替代方案
|
3月前
|
存储
【Azure Developer】Github Action部署资源(ARM模板)到Azure中国区时,遇见登录问题的解决办法
【Azure Developer】Github Action部署资源(ARM模板)到Azure中国区时,遇见登录问题的解决办法
|
5月前
|
数据安全/隐私保护 开发者 Docker
国内docker公开镜像站的关闭!别急,docker_image_pusher 使用Github Action将国外的Docker镜像转存到阿里云私有仓库
通过使用 docker_image_pusher 这样的开源项目,我们能够轻松地解决国内访问 Docker 镜像拉取速度慢及拉去失败的问题,同时保证了镜像的稳定性和安全性。利用 Github Action 的自动化功能,使得这一过程更加简单和高效。
1802 2
【完美解决】Github action报错remote: Write access to repository not granted.
【完美解决】Github action报错remote: Write access to repository not granted.
|
5月前
|
jenkins 物联网 测试技术
干货分享!基于 Github Action 的 taosX CI 搭建
去年随着 3.1.1.0 版本的发布,TDengine 数据接入工具 taosX 正式推出。该工具具备强大的数据抓取、清洗、转换及加载(ETL)功能。它不仅能无缝对接物联网中的 MQTT 协议,更重要的是能够连接到工业数据源如 OPC-UA、OPC-DA、PI System 等。借助这一模块,工业场景中常用的 SCADA、DCS 等系统无需编写任何代码,仅需通过简单配置即可实现数据的实时、持续导入至 TDengine。
60 1
下一篇
无影云桌面