前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【架构师(第四十五篇)】 服务端开发之认识 Github actions

【架构师(第四十五篇)】 服务端开发之认识 Github actions

作者头像
一尾流莺
发布2022-12-10 13:53:12
3760
发布2022-12-10 13:53:12
举报

CI/CD

要让开发人员更加专注于业务代码的开发,那么架构师就得保障研发流程。合理全面的 CI/CD ,自动化研发流程 ,能够提高研发效率,增加系统稳定性。

CI/CD 的核心概念是 持续集成、持续交付和持续部署

CI 持续集成(Continuous Integration)

构建软件和完成初始测试的过程。

CD 持续交付(Continuous Delivery)

CI 在完成了构建、单元测试和集成测试这些自动化流程后,持续交付可以自动把已验证的代码发布到企业自己的存储库。

CD 持续部署(Continuous Deployment)

对于一个完整、成熟的 CI/CD 管道来说,最后的阶段是持续部署。它是作为持续交付的延伸,持续部署可以自动将应用发布到生产环境。

学习内容

  • 使用 Github actions 进行 CI/CD
  • 学会 Dockernode.js 项目中的应用
  • 搭建测试环境,自动发布到测试机。

Github actions

初始化

👉👉 中文文档

随便选择一个 github 仓库,然后点击 actions

image.png
image.png

这里是一些模板,选择一个就会在项目的 .github/workflows 目录下,生成 .yml 文件。

image.png
image.png

红框里输入文件名,然后点击右面的 start commit

image.png
image.png

输入 commit message,直接默认,点击 commit new file

image.png
image.png

代码仓库多了一个文件

image.png
image.png

本地拉一下代码,可以看到 .yml 文件已经存在了。

image.png
image.png

配置文件

默认的配置文件注释

代码语言:javascript
复制
# 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,黄色点说明还没有开始。

image.png
image.png

过了一会发现红色的,就是 workflows 失败了

image.png
image.png

点进去看一下,这里就会显示 workflows 的信息了,原来是没有 lint 命令。

image.png
image.png

去掉 npm run lint 再试一下,push 代码,通过了就是绿色的。

image.png
image.png

step 的四种方式

代码语言:javascript
复制
 # 一 直接使用 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

Github actions 做自动化测试

  • pre-commit 时执行本地接口测试
  • master push 时执行远程接口测试
代码语言:javascript
复制
// .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 是很正常的。

image.png
image.png

两个 workflow 都成功了。

image.png
image.png

由于非代码原因导致的错误,排除问题后可以点击 Re-run all jobs 而不用重新 push 代码。

image.png
image.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CI/CD
    • CI 持续集成(Continuous Integration)
      • CD 持续交付(Continuous Delivery)
        • CD 持续部署(Continuous Deployment)
        • 学习内容
        • Github actions
          • 初始化
            • 配置文件
              • 流程
                • step 的四种方式
                • Github actions 做自动化测试
                相关产品与服务
                持续部署
                CODING 持续部署(CODING Continuous Deployment,CODING-CD)用以管理软件在经过构建之后的发布和部署交付过程,可以无缝对接上游 Git 仓库、制品仓库实现全自动化部署,同时支持 Webhook 等外部对接能力,方便集成各种开发、运维工具。在配以合适的技术架构、运维工具的基础上,可以方便地实现蓝绿发布、灰度发布(金丝雀发布)、滚动发布、快速回滚等功能。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档