跳到主要内容

流水线

GitCode 流水线是一个持续集成和持续交付 (CI/CD) 平台,旨在帮助开发者自动化构建、测试和部署流程。您可以创建工作流,实现从代码提交到生产环境部署的自动化管理。

本文档将向您介绍 GitCode 流水线的核心组件、创建流程以及如何查看流水线执行结果,帮助您快速上手并充分利用这一工具。

核心组件


工作流

工作流程是一个可配置的自动化过程,用于执行一个或多个作业。它由项目中的 YAML 文件定义,通常位于 .gitcode/workflows 目录下。工作流可以由特定事件触发,例如代码推送、拉取请求或议题创建,也可以手动触发或按计划执行。

一个项目可以包含多个工作流,每个工作流可以执行不同的任务。例如,您可以有一个工作流程来构建和测试拉取请求,另一个工作流程用于在每次创建发布时部署应用程序,还有一个工作流程在每次有人打开新议题时添加标签。

事件

事件是触发工作流执行的特定活动。常见的事件包括:

  • 代码推送:当代码被推送到特定分支时触发。
  • 拉取请求:当创建或更新拉取请求时触发。
  • 议题创建:当有新议题被创建时触发。
  • 手动触发:通过 GitCode 界面或 API 手动启动工作流。
  • 定时触发:按照预定义的时间表自动执行工作流。

作业

作业是工作流中的一个执行单元,包含一组按顺序执行的步骤。每个作业在独立的运行器(Runner)上执行,步骤可以是 Shell 脚本或自定义操作(Action),您可以将数据从一个步骤共享到另一个步骤。作业之间可以设置依赖关系,确保某些作业在其他作业完成后才执行。

例如,您可以配置以下作业:

  • 构建作业:编译代码并生成可执行文件。
  • 测试作业:运行单元测试和集成测试。
  • 打包作业:将构建结果打包为可部署的镜像或文件。

操作

操作是 GitCode 平台上的可重用扩展,用于执行复杂但常见的任务。通过使用操作,您可以减少工作流文件中的重复代码,并简化流程配置。GitCode 提供了多种内置操作,例如:

  • checkout-action:从 GitCode 拉取代码。
  • setup-node:配置 Node.js 环境。
  • setup-java:配置 Java 环境。
  • setup-python:配置 Python 环境。
  • setup-go:配置 Go 环境。

您可以编写自己的操作,也可以在 GitCode 插件市场中查找适合的操作。

运行器

运行器是执行工作流的服务器。每次工作流触发时,GitCode 会为每个作业分配一个全新的虚拟机运行器,每个运行器一次可以运行一个作业。GitCode 默认提供欧拉(Euler)运行器,确保每个作业在独立且干净的环境中执行。

创建流水线


通过 YML 创建

在您的 GitCode 项目中,创建 .gitcode/workflows 目录,用于存放工作流文件。在该目录下,创建一个新的 YAML 文件,例如 gitcode-sample.yml,并添加以下内容:

name: gitcode-sample
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:
runs-on: euleros-2.10.1
steps:
- uses: checkout-action@0.0.1
- name: Use Node.js
uses: setup-node@0.0.1
with:
node-version: '20.10.0'
- run: cd repo_workspace && npm ci
- run: cd repo_workspace && npm run build --if-present
- run: cd repo_workspace && npm test

提交并推送这些更改到您的 GitCode 项目。

通过界面创建

  1. 在项目的「流水线」标签页中,点击「新建流水线」按钮。

    img

  2. 选择模版。GitCode 提供了多种预定义的工作流模板,您可以根据项目需求选择合适的模板。

    img

执行流水线


配置完成后,点击「执行」按钮启动流水线。GitCode 将根据工作流文件中的定义,自动执行构建、测试等任务。

img

查看结果


流水线执行完成后,您可以在 GitCode 界面中查看详细的执行结果,包括每个步骤的输出和状态。

img

每次流水线的执行都会记录下来,用户可以在 GitCode 的流水线页面中查看详细的执行记录。这些记录包括流水线的触发时间、执行状态(成功、失败或进行中)、每个步骤的日志输出以及执行耗时等信息。

image