教程:创建、注册并运行您自己的项目运行器
本教程将向您展示如何在 GitLab 中配置和运行您的第一个运行器。
运行器是 GitLab Runner 应用程序中的一个代理,用于在 GitLab CI/CD 管道中运行作业。
作业在 .gitlab-ci.yml 文件中定义,并分配给可用的运行器。
GitLab 有三种类型的运行器:
- 共享:在 GitLab 实例中可供所有组和项目使用。
- 组:在组中可供所有项目和子组使用。
- 项目:与特定项目关联。通常,项目运行器一次只能被一个项目使用。
在本教程中,您将创建一个项目运行器来运行基本管道配置中定义的作业:
开始之前
在您能够创建、注册和运行运行器之前,GitLab Runner 必须安装在本地计算机上。
创建空白项目
首先,创建一个空白项目,您可以在其中创建您的 CI/CD 管道和运行器。
要创建空白项目:
- 在左侧边栏顶部,选择 新建 ( ) 和 新建项目/仓库。
- 选择 创建空白项目。
- 输入项目详情:
- 在 项目名称 字段中,输入您的项目名称。名称必须以小写或大写字母(
a-zA-Z)、数字(0-9)、表情符号或下划线(_)开头。它还可以包含点(.)、加号(+)、短划线(-)或空格。 - 在 项目标识符 字段中,输入您项目的路径。GitLab 实例使用标识符作为项目的 URL 路径。要更改标识符,请先输入项目名称,然后更改标识符。
- 在 项目名称 字段中,输入您的项目名称。名称必须以小写或大写字母(
- 选择 创建项目。
创建项目管道
接下来,为您的项目创建一个 .gitlab-ci.yml 文件。这是一个 YAML 文件,您可以在其中指定 GitLab CI/CD 的指令。
在此文件中,您定义:
- 运行器应执行的作业的结构和顺序。
- 运行器在遇到特定条件时应做出的决定。
-
在左侧边栏,选择 搜索或跳转 并找到您的项目或组。
-
选择 项目概览。
-
选择加号图标 ( ),然后选择 新建文件。
-
在 文件名 字段中,输入
.gitlab-ci.yml。 -
在大文本框中,粘贴此示例配置:
stages: - build - test job_build: stage: build script: - echo "Building the project" job_test: stage: test script: - echo "Running tests"在此配置中,运行器运行两个作业:构建作业和测试作业。
-
选择 提交更改。
创建并注册项目运行器
接下来,创建一个项目运行器并注册它。您必须注册运行器以将其链接到 GitLab,这样它才能从项目管道中获取作业。
要创建项目运行器:
-
在左侧边栏,选择 搜索或跳转 并找到您的项目。
-
选择 设置 > CI/CD。
-
展开 运行器 部分。
-
选择 新建项目运行器。
-
选择您的操作系统。
-
在 标签 部分,勾选 运行未标记作业 复选框。标签 指定运行器可以运行哪些作业,并且是可选的。
-
选择 创建运行器。
-
按照屏幕上的说明从命令行注册运行器。当提示时:
- 对于
executor,因为您的运行器将直接在主机上运行,请输入shell。执行器 是运行器执行作业的环境。 - 对于
GitLab 实例 URL,请使用您的 GitLab 实例的 URL。例如,如果您的项目托管在gitlab.example.com/yourname/yourproject,那么您的 GitLab 实例 URL 是https://gitlab.example.com。如果您的项目托管在 GitLab.com 上,URL 是https://gitlab.com。
- 对于
-
启动您的运行器:
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"触发管道以运行您的运行器
接下来,在您的项目中触发一个管道,这样您就可以查看您的运行器执行作业。
-
在左侧边栏,选择 搜索或跳转 并找到您的项目。
-
选择 构建 > 管道。
-
选择 新建管道。
-
选择一个作业以查看作业日志。输出应与此示例类似,显示您的运行器成功执行了作业:
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
您现在已经成功创建了、注册并运行了您的第一个运行器!