Github 2019年秋天发布的CI/CD工具,功能强大且稳定。 Github 被微软收购之后,越来越强大了,正在由一个git托管服务,变为一个研发项目解决方案。
- 网上的Ct/CD有很多,例如travis ,任选一个即可。
- Github actions高效稳定,功能强大,易学易用。
实际上是github提供虚拟机(runner)来运行我们的工作流,本地克隆您的存储库,安装测试软件。
基本认识
介绍https://github.com/imooc-lego/biz-editor-server-open/actions/new
中文文档 https://docs.github.com/cn/actions/learn-github-actions
使用方法十分简单,代码在项目的 .github/workflows
目录下,添加.yml
格式文件。
添加jobs和steps,代码提交之后就会运行。
相关
workflows文件的语法:
github actions应用市场
应用场景
参考:https://github.com/imooc-lego/biz-editor-server-open/tree/master/.github/workflows
- master 分支,自动化测试
- dev分支,自动部署到测试机
v*.*.*
格式的tag ,自动上线(支持回滚)
触发条件 on
push
:推送maste分支的时候触发默认情况会依次执行,不会互相依赖。
从下面可以看出,steps使用有三种形式:
- 直接使用 uses 第三方
- 使用name和uses第三方
- 使用name 和run
```bash
jobs: # 任务
test: # 任务名称可以自己取
# 指定操作系统
runs-on: ubuntu-latest
# 步骤:有几个-就有几个步骤,这里有3个
steps:
- uses: actions/checkout@v2 # 步骤1:git pull,第三方的action,获取最新的代码
- name: Use Node.js # 步骤2:定义了步骤的名词,可选。
uses: actions/setup-node@v1 #安装Nodejs
with:
node-version: 14 #使用node14
- name: lint and test # 步骤3:定义了步骤的名词,可选。
run: | # 自定义的命令
npm i
npm run lint
npm run test:remote
效果如图:<br />![截屏2022-09-28 14.40.35.png](https://cdn.nlark.com/yuque/0/2022/png/282427/1664347287953-385560c2-78bf-4262-8b5f-b5b43d12c019.png#clientId=u3c626b1a-8e16-4&crop=0&crop=0&crop=1&crop=1&errorMessage=unknown%20error&from=paste&height=517&id=ue78bd477&margin=%5Bobject%20Object%5D&name=%E6%88%AA%E5%B1%8F2022-09-28%2014.40.35.png&originHeight=1034&originWidth=3802&originalType=binary&ratio=1&rotation=0&showTitle=false&size=223319&status=error&style=none&taskId=uf6defc61-e306-492c-9380-938b4aae7bf&title=&width=1901)
<a name="iVoao"></a>
## 关于测试流程
- pre-commit 时执行本地接口测试 `npm run test:local` 本地测试测试刚开发好的功能,即时性高
```bash
"husky": {
"hooks": {
"pre-commit": "lint-staged && npm run test:local",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
- master push 时执行远程接口测试
npm run test:remote
远程测试方式关闭了本地测试环节,没有验证。