要让开发人员更加专注于业务代码的开发,那么架构师就得保障研发流程。合理全面的 CI/CD ,自动化研发流程 ,能够提高研发效率,增加系统稳定性。
CI/CD 的核心概念是 持续集成、持续交付和持续部署。
构建软件和完成初始测试的过程。
CI 在完成了构建、单元测试和集成测试这些自动化流程后,持续交付可以自动把已验证的代码发布到企业自己的存储库。
对于一个完整、成熟的 CI/CD 管道来说,最后的阶段是持续部署。它是作为持续交付的延伸,持续部署可以自动将应用发布到生产环境。
Github actions 进行 CI/CDDocker 在 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.txtpre-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 代码。
