Skip to the content.

Git 实战(6):Git 的 CI/CD 实践

1. 引言

欢迎来到《Git 实战之九阴真经》的第六篇文章。在这一篇文章中,将继续与程序员朋友们分享 Git 在 CI/CD(持续集成和持续交付)中的实践经验。通过这些内容,希望你能更好地理解和应用 Git 的 CI/CD 工作流,提高项目的自动化程度和交付效率。

1.1 什么是 CI/CD?

CI/CD 是软件工程中的两种实践:

1.2 CI/CD 的优势

2. 配置 CI/CD 工具

在开始使用 CI/CD 工具之前,需要选择并配置适合的 CI/CD 平台。常见的 CI/CD 平台有:

本文以 GitHub Actions 为例,介绍如何配置和使用 CI/CD 工具。

2.1 配置 GitHub Actions

2.1.1 创建 GitHub Actions 工作流文件

在 GitHub 仓库中,创建一个名为 .github/workflows 的目录,并在该目录下创建一个工作流文件,如 ci.yml

name: CI

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install dependencies
      run: npm install

    - name: Run tests
      run: npm test

2.1.2 配置触发条件

在工作流文件中,可以配置触发条件,如在推送代码或提交 Pull Request 时触发工作流。上面的配置示例中,当推送代码到 main 分支或提交针对 main 分支的 Pull Request 时,会触发 CI 工作流。

2.1.3 配置任务步骤

在工作流文件中,可以配置一系列任务步骤,如检出代码安装依赖运行测试等。上面的配置示例中,CI 工作流包含以下步骤:

2.2 常见的 CI/CD 任务

在 CI/CD 工作流中,可以配置各种任务,以实现自动化构建测试部署。以下是一些常见的 CI/CD 任务示例。

2.2.1 自动化测试

在工作流文件中,可以配置自动化测试任务,如单元测试集成测试等。

示例:

- name: Run unit tests
  run: npm run test:unit

- name: Run integration tests
  run: npm run test:integration

2.2.2 构建和打包

在工作流文件中,可以配置构建和打包任务,如编译代码打包静态资源等。

示例:

- name: Build project
  run: npm run build

- name: Package application
  run: npm run package

2.2.3 部署

在工作流文件中,可以配置部署任务,如将代码部署到测试环境或生产环境。

示例:

- name: Deploy to production
  run: npm run deploy

3. 实现 CI/CD 流程

通过配置 CI/CD 工具,可以实现代码从提交到部署的自动化流程。以下是一个完整的 CI/CD 流程示例。

3.1 配置 CI 工作流

在 GitHub 仓库中,创建一个名为 .github/workflows 的目录,并在该目录下创建一个工作流文件,如 ci.yml,配置如下:

name: CI

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install dependencies
      run: npm install

    - name: Run tests
      run: npm test

3.2 配置 CD 工作流

在 GitHub 仓库中,创建一个名为 .github/workflows 的目录,并在该目录下创建一个工作流文件,如 cd.yml,配置如下:

name: CD

on:
  push:
    tags:
      - 'v*.*.*'

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install dependencies
      run: npm install

    - name: Build project
      run: npm run build

    - name: Deploy to production
      run: npm run deploy

3.3 集成 CI/CD 流程

通过配置 CI 和 CD 工作流,可以实现代码的自动化构建测试部署。以下是一个示例流程:

  1. 提交代码:开发者将代码提交到 GitHub 仓库的 main 分支。
  2. 触发 CI 工作流:GitHub Actions 触发 CI 工作流,执行代码检出、依赖安装和测试。
  3. 创建标签:测试通过后,开发者创建一个新的版本标签,如 v1.0.0
  4. 触发 CD 工作流:GitHub Actions 触发 CD 工作流,执行代码检出、依赖安装、构建和部署。
  5. 部署到生产环境:CD 工作流将构建后的代码部署到生产环境。

3.4 最佳实践

4. 结语

在本篇文章中,总结了个人在 Git 的 CI/CD 实践中的经验,包括 CI/CD 的基本概念、配置方法和实现流程。通过这些内容,希望你能够更好地理解和应用 Git 的 CI/CD 工作流,提高项目的自动化程度和交付效率。在接下来的文章中,我们将继续探讨 Git 与 GitHub/GitLab 集成使用,期待与你继续交流。

本专栏文档及配套代码的 GitHub 地址:壹刀流的技术人生