CI/CD

本文仍处于草稿阶段,内容可能会发生变化。

GitHub

git clone https://gitclone.com/github.com/xxx

GitHub Actions

什么是 GitHub Actions

GitHub Actions 是一个持续集成和持续交付(CI/CD)工具。

在 Ubuntu 上安装 GitHub Actions

首先,打开项目的设置页面,如下图所示。

编写工作流文件

GitHub Actions 是一个强大的功能,使开发者能够在 GitHub 仓库中自动化各种任务。它提供了一种无缝的方式,直接从 GitHub 平台构建、测试、部署和执行许多其他操作。

GitHub Actions 的主要优势之一是其灵活性。你可以根据特定的项目需求定义自定义工作流。例如,你可以设置一个操作,在代码推送到特定分支时自动运行测试。这确保了在开发过程中尽早发现潜在问题。

要开始使用 GitHub Actions,首先需要在仓库的 .github/workflows 目录中创建一个工作流文件。工作流文件以 YAML 格式编写,指定需要执行的步骤和任务。

让我们看一个简单的工作流示例,用于构建和部署 Node.js 应用。

name: Build and Deploy

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install dependencies
        run: npm install
      - name: Build the application
        run: npm run build

  deploy:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to Server
        uses: appleboy/scp-action@master
        with:
          host: ${{ secrets.SERVER_HOST }}
          username: ${{ secrets.SERVER_USERNAME }}
          password: ${{ secrets.SERVER_PASSWORD }}
          local_path: 'dist/**'
          remote_path: '/var/www/html'

在此示例中,每当代码推送到 main 分支时,工作流就会被触发。build 任务安装依赖并构建应用,deploy 任务将构建的文件部署到远程服务器。

GitHub Actions 还能与其他服务和工具良好集成。你可以用它来触发通知、更新文档等等。

总之,GitHub Actions 对开发者来说是一个改变游戏规则的工具,提供了一种高效且可定制的方式来自动化重复性任务并简化开发流程。它帮助团队专注于编写代码和交付高质量软件。

参考资料

https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners

https://github.com/features/actions

GitLab CI

有些用户可能更喜欢使用 GitLab 而不是 GitHub。

但我们在这里不深入讨论。

Jenkins

有些用户可能更喜欢使用 Jenkins 而不是 GitHub。

但我们在这里不深入讨论。