Help us learn about your current experience with the documentation. Take the survey.

教程:创建、注册并运行您自己的项目运行器

本教程将向您展示如何在 GitLab 中配置和运行您的第一个运行器。

运行器是 GitLab Runner 应用程序中的一个代理,用于在 GitLab CI/CD 管道中运行作业。 作业在 .gitlab-ci.yml 文件中定义,并分配给可用的运行器。

GitLab 有三种类型的运行器:

  • 共享:在 GitLab 实例中可供所有组和项目使用。
  • 组:在组中可供所有项目和子组使用。
  • 项目:与特定项目关联。通常,项目运行器一次只能被一个项目使用。

在本教程中,您将创建一个项目运行器来运行基本管道配置中定义的作业:

  1. 创建空白项目
  2. 创建项目管道
  3. 创建并注册项目运行器
  4. 触发管道以运行您的运行器

开始之前

在您能够创建、注册和运行运行器之前,GitLab Runner 必须安装在本地计算机上。

创建空白项目

首先,创建一个空白项目,您可以在其中创建您的 CI/CD 管道和运行器。

要创建空白项目:

  1. 在左侧边栏顶部,选择 新建 ( plus ) 和 新建项目/仓库
  2. 选择 创建空白项目
  3. 输入项目详情:
    • 项目名称 字段中,输入您的项目名称。名称必须以小写或大写字母(a-zA-Z)、数字(0-9)、表情符号或下划线(_)开头。它还可以包含点(.)、加号(+)、短划线(-)或空格。
    • 项目标识符 字段中,输入您项目的路径。GitLab 实例使用标识符作为项目的 URL 路径。要更改标识符,请先输入项目名称,然后更改标识符。
  4. 选择 创建项目

创建项目管道

接下来,为您的项目创建一个 .gitlab-ci.yml 文件。这是一个 YAML 文件,您可以在其中指定 GitLab CI/CD 的指令。

在此文件中,您定义:

  • 运行器应执行的作业的结构和顺序。
  • 运行器在遇到特定条件时应做出的决定。
  1. 在左侧边栏,选择 搜索或跳转 并找到您的项目或组。

  2. 选择 项目概览

  3. 选择加号图标 ( plus ),然后选择 新建文件

  4. 文件名 字段中,输入 .gitlab-ci.yml

  5. 在大文本框中,粘贴此示例配置:

    stages:
      - build
      - test
    
    job_build:
      stage: build
      script:
        - echo "Building the project"
    
    job_test:
      stage: test
      script:
        - echo "Running tests"

    在此配置中,运行器运行两个作业:构建作业和测试作业。

  6. 选择 提交更改

创建并注册项目运行器

接下来,创建一个项目运行器并注册它。您必须注册运行器以将其链接到 GitLab,这样它才能从项目管道中获取作业。

要创建项目运行器:

  1. 在左侧边栏,选择 搜索或跳转 并找到您的项目。

  2. 选择 设置 > CI/CD

  3. 展开 运行器 部分。

  4. 选择 新建项目运行器

  5. 选择您的操作系统。

  6. 标签 部分,勾选 运行未标记作业 复选框。标签 指定运行器可以运行哪些作业,并且是可选的。

  7. 选择 创建运行器

  8. 按照屏幕上的说明从命令行注册运行器。当提示时:

    • 对于 executor,因为您的运行器将直接在主机上运行,请输入 shell执行器 是运行器执行作业的环境。
    • 对于 GitLab 实例 URL,请使用您的 GitLab 实例的 URL。例如,如果您的项目托管在 gitlab.example.com/yourname/yourproject,那么您的 GitLab 实例 URL 是 https://gitlab.example.com。如果您的项目托管在 GitLab.com 上,URL 是 https://gitlab.com
  9. 启动您的运行器:

    gitlab-runner run

检查运行器配置文件

注册运行器后,配置和运行器认证令牌将保存到您的 config.toml 中。运行器使用该令牌在从作业队列中获取作业时向 GitLab 进行身份验证。

您可以使用 config.toml 来定义更多高级运行器配置

以下是您注册并启动运行器后 config.toml 应该的样子:

[[runners]]
  name = "my-project-runner1"
  url = "http://127.0.0.1:3000"
  id = 38
  token = "glrt-TOKEN"
  token_obtained_at = 2023-07-05T08:56:33Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "shell"

触发管道以运行您的运行器

接下来,在您的项目中触发一个管道,这样您就可以查看您的运行器执行作业。

  1. 在左侧边栏,选择 搜索或跳转 并找到您的项目。

  2. 选择 构建 > 管道

  3. 选择 新建管道

  4. 选择一个作业以查看作业日志。输出应与此示例类似,显示您的运行器成功执行了作业:

       Running with gitlab-runner 18.0.0 (d7f2cea7)
       on my-project-runner TOKEN, system ID: SYSTEM ID
       Preparing the "shell" executor
       00:00
       Using Shell (bash) executor...
       Preparing environment
       00:00
       /Users/username/.bash_profile: line 9: setopt: command not found
       Running on MACHINE-NAME...
       Getting source from Git repository
       00:01
       /Users/username/.bash_profile: line 9: setopt: command not found
       Fetching changes with git depth set to 20...
       Reinitialized existing Git repository in /Users/username/project-repository
       Checking out 7226fc70 as detached HEAD (ref is main)...
       Skipping object checkout, Git LFS is not installed for this repository.
       Consider installing it with 'git lfs install'.
       Skipping Git submodules setup
       Executing "step_script" stage of the job script
       00:00
       /Users/username/.bash_profile: line 9: setopt: command not found
       $ echo "Building the project"
       Building the project
       Job succeeded

您现在已经成功创建了、注册并运行了您的第一个运行器!