Github-Actions简单示例
Github Actions是持续集成和持续交付 (CI/CD) 平台,用于自动执行生成、测试和部署管道等,持续集成由很多操作组成,这些操作称之为 actions 。
【补充】
所谓持续集成,就是通过频繁提交代码代码集成到主分支,让产品快速迭代,并保持高质量。其核心措施就是集成到主分支前必须通过自动化测试,只要有一个测试用例失败,就不能集成。持续集成强调的是返回给开发一个结果,不论失败还是成功。
流程:
- 代码提交:开发者向仓库提交代码。
- 测试:仓库对commit操作配置了hook,一旦提交自动开始自动化测试。
- 构建:通过构建工具将源码转换为可以运行的实际代码,安装依赖、配置资源等。
- 二次测试:全面测试,以自动化为主,且覆盖率要高。通过二次测试的代码就是可部署的版本
- 部署:将当前版本所有文件打包存档,发送到生产服务器。
- 回滚:一旦版本出现问题,就需要回滚到上一个版本的构建结果。
由于很多操作在不同项目里是类似的,因此 Github 允许将每个操作写成独立脚本存入仓库,让其他人共享。如果你需要某个 actions ,无需自己写复杂的脚本,直接在自己的 actions 中引入别的 actions ,就可以直接实现该操作。
引用方式
username/reponame
即可引用一个 actions 。
例如:actions/setup-node
就表示github.com/actions/setup-node
这个仓库,它代表一个 action,作用是安装 Node.js。
1 |
|
基本结构
-
workflow:工作流程。持续集成一次运行的过程,就是一个workflow。
-
job:任务。一个workflow由单个或多个job构成。一次持续集成的运行可以完成多个任务。
-
step:步骤。每个job由多个step构成,一步步完成一个job。
-
action:动作,每个step可以一次执行一个或多个命令
workflow文件
GitHub Actions 的配置文件叫做 workflow 文件,存放在代码仓库的.github/workflows/
目录。workflow文件是yaml
给格式,写成xxx.yml
。GitHub 只要发现.github/workflows
目录里面有.yml
文件,就会自动运行该文件。如下是一个actions/setup-node
的 workflow 文件(有调整补充)。
该配置会在代码push到github后自动将其部署到githubpage,访问username.github.io/responame
即可访问页面。
1 |
|
字段介绍:https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions
触发事件列表:https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows
实战:本地Readct项目发布至Github Page
仓库:https://github.com/ruanyf/github-actions-demo
首先生成一个Github密钥,并传入该项目的Repository secrets
中。
在项目的package.json
中添加一个homepage
字段,表示该应用发布后的根目录。修改如下字段
1 |
|
在项目根目录创建.github/workflow/
,并新建一个workflow
文件,例如ci.yml
1 |
|
保存以上文件,提交至 Github 。Github 发现 workflow文件后就会自动运行,这里可以看到运行日志,日志默认保存30天。等待运行成功后,访问username.github.io/reponame
访问。