要让开发人员更加专注于业务代码的开发,那么架构师就得保障研发流程。合理全面的 CI/CD
,自动化研发流程 ,能够提高研发效率,增加系统稳定性。
CI/CD
的核心概念是 持续集成、持续交付和持续部署。
构建软件和完成初始测试的过程。
CI
在完成了构建、单元测试和集成测试这些自动化流程后,持续交付可以自动把已验证的代码发布到企业自己的存储库。
对于一个完整、成熟的 CI/CD
管道来说,最后的阶段是持续部署。它是作为持续交付的延伸,持续部署可以自动将应用发布到生产环境。
Github actions
进行 CI/CD
Docker
在 node.js
项目中的应用👉👉 中文文档
随便选择一个 github
仓库,然后点击 actions
。
这里是一些模板,选择一个就会在项目的 .github/workflows
目录下,生成 .yml
文件。
红框里输入文件名,然后点击右面的 start commit
输入 commit message
,直接默认,点击 commit new file
代码仓库多了一个文件
本地拉一下代码,可以看到 .yml
文件已经存在了。
默认的配置文件注释
# master 分支 自动测试
name: test # 测试名称 语义化即可
on: # 触发条件
push: # 在下面的分支进行 push 操作的时候触发
branches: # 触发的分支 可以设置多个
- main # 分支名称
paths: # 以下目录中的文件有改动就触发 可以不写 代表所有文件
- '.github/workflows/**'
- '__test__/**'
- 'src/**'
jobs: # 任务
test: # 任务名称 可以自定义 也可以使用第三方
runs-on: ubuntu-latest # 指定运行环境 操作系统 没有特殊情况不需要改
steps: # 步骤
- uses: actions/checkout@v2 # 第一个步骤 第三方的actions 等同于执行了 git pull
- name: Use Node.js # 第二个步骤 步骤名称 自定义
uses: actions/setup-node@v1 # 第三方的actions 安装 node.js
with: # 参数
node-version: 14 # nodejs 的版本
- name: lint and test # 第三个步骤 步骤名称 自定义
run: | # 自定义执行命令 多行的方式
npm i
npm run lint
npm run test:remote
test2: # 任务名称 可以自定义 也可以使用第三方
runs-on: ubuntu-latest # 指定运行环境 操作系统 没有特殊情况不需要改
steps: # 步骤
- run: touch a.txt # 自定义执行命令 单行的方式
- run: echo 100 > a.txt # a.text 写入内容
- run: cat a.txt # 读取 a.text 内容
当本地 push
代码的时候,Actions
页面会出现当前 workflows
,黄色点说明还没有开始。
过了一会发现红色的,就是 workflows
失败了
点进去看一下,这里就会显示 workflows
的信息了,原来是没有 lint
命令。
去掉 npm run lint
再试一下,push
代码,通过了就是绿色的。
# 一 直接使用 uses 第三方
- uses: actions/checkout@v2
# 二 使用 name + uses 第三方
- name: Use Node.js
uses: actions/setup-node@v1
# 三 run | 多行的方式
run: |
npm i
npm run test:remote
# 四 run 单行的方式
- run: touch a.txt
- run: echo 100 > a.txt
- run: cat a.txt
pre-commit
时执行本地接口测试master push
时执行远程接口测试// .github\workflows\test.yml
# master 分支 自动测试
name: test # 测试名称 语义化即可
on: # 触发条件
push: # 在下面的分支进行 push 操作的时候触发
branches: # 触发的分支 可以设置多个
- main # 分支名称
paths: # 以下目录中的文件有改动就触发 可以不写 代表所有文件
- '.github/workflows/**'
- '__test__/**'
- 'src/**'
jobs: # 任务
test: # 任务名称 可以自定义 也可以使用第三方
runs-on: ubuntu-latest # 指定运行环境 操作系统 没有特殊情况不需要改
steps: # 步骤
- uses: actions/checkout@v2 # 第一个步骤 第三方的actions 等同于执行了 git pull
- name: Use Node.js # 第二个步骤 步骤名称 自定义
uses: actions/setup-node@v1 # 第三方的actions 安装 node.js
with: # 参数
node-version: 14 # nodejs 的版本
- name: lint and test # 第三个步骤 步骤名称 自定义
run: | # 自定义执行命令 多行的方式
npm i
npm run lint
npm run test:remote
当 push
代码的时候会有两个 workflow
,一次 push
对应多个 workflow
是很正常的。
两个 workflow
都成功了。
由于非代码原因导致的错误,排除问题后可以点击 Re-run all jobs
而不用重新 push
代码。