GitLab Jenkins Runner 是一个用于在 GitLab CI/CD 流水线中触发 Jenkins 作业的命令行工具。它允许你轻松地将 GitLab 与 Jenkins 集成,实时输出Jenkins的构建日志,以实现自动化构建和部署工作流程。
在开始之前,请确保你的系统上已安装了Go(1.19及以上)。
使用以下命令获取和构建 gitlab-jenkins-runner
命令:
$ go install github.com/raojinlin/gitlab-jenkins-runner@latest
或者在Releases页面下载已经编译好的可执行文件。
使用以下命令来触发 Jenkins 作业:
gitlab-jenkins-runner -base <your-jenkins-url> -job <job-name> -params PARAM1=Value1,PARAM2=Value2 -user <jenkins-user> -token <jenkins-token> -build
-base <your-jenkins-url>
:Jenkins 服务器的基本 URL。-job <job-name>
:要触发的 Jenkins 作业的名称。-params PARAM1=Value1,PARAM2=Value2
:要传递给 Jenkins 作业的参数,以逗号分隔的键值对。-user <jenkins-user>
:Jenkins 用户名。-token <jenkins-token>
:Jenkins 用户令牌或密码。-build
:触发 Jenkins 作业的构建。
CI_MERGE_REQUEST_IID
: 合并请求的内部IDCI_SERVER_URL
: GitLab的服务器地址,如:http://gitlab.example.com
CI_MERGE_REQUEST_PROJECT_PATH
: 项目路径CI_GITLAB_ACCESS_TOKEN
: GitLab访问秘钥,用于获取合并请求CI_GITLAB_ACCESS_TOKEN
的详细信息
以下是一个示例命令,演示如何使用 gitlab-jenkins-runner
工具:
gitlab-jenkins-runner -base https://your-jenkins-url.com -job my-build-job -params BRANCH=main,ENV=prod -user jenkinsuser -token myapitoken -build
这个章节将指导你如何在 GitLab CI/CD 流水线中集成和使用 gitlab-jenkins-runner
命令来触发 Jenkins 构建作业。
确保你的 GitLab 项目正确配置了 CI/CD 设置以及与 Jenkins 的连接。你需要在项目设置中添加 Jenkins 服务器的 URL、认证凭据等信息。请参考 GitLab 文档以了解如何配置 GitLab 项目以与 Jenkins 集成。
在你的 GitLab 项目中,打开 .gitlab-ci.yml
文件并添加一个新的阶段,以使用 gitlab-jenkins-runner
工具触发 Jenkins 构建。
# .gitlab-ci.yml
stages:
- trigger_jenkins_build
trigger_jenkins_build:
stage: trigger_jenkins_build
script:
- gitlab-jenkins-runner -base https://your-jenkins-url.com -job my-build-job -params BRANCH=$CI_MERGE_REQUEST_SOURCE_BRANCH,ENV=prod,${CI_MERGE_REQUEST_LABELS} -user jenkinsuser -token myapitoken -build
创建一个merge_request
如果要想要Jenkins构建时使用参数,有两种方式:
- 在merge request上设置label,label的格式如下:
PARAM_1=PARAM_VALUE_1
如:env=PROD
- 编辑合并请求的描述,在描述中加入代码块,遵循以下格式
合并请求描述文本。。。。
下面的代码块会被传递到Jenkins
```env
SERVER_A_HOST=x.x.x.x
SERVER_A_PORT=80
```
如果你需要帮助或有其他相关问题,请联系我们。
感谢使用 GitLab Jenkins Runner!