Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/raojinlin/gitlab-jenkins-runner
🚀 GitLab Jenkins Runner 是一个用于在 GitLab CI/CD 流水线中触发 Jenkins 作业的命令行工具。
https://github.com/raojinlin/gitlab-jenkins-runner
devops gitlab gitlab-ci golang jenkins jenkins-build
Last synced: about 13 hours ago
JSON representation
🚀 GitLab Jenkins Runner 是一个用于在 GitLab CI/CD 流水线中触发 Jenkins 作业的命令行工具。
- Host: GitHub
- URL: https://github.com/raojinlin/gitlab-jenkins-runner
- Owner: raojinlin
- Created: 2023-09-11T08:59:05.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-10-23T09:23:01.000Z (about 1 year ago)
- Last Synced: 2024-11-15T21:31:03.586Z (about 1 month ago)
- Topics: devops, gitlab, gitlab-ci, golang, jenkins, jenkins-build
- Language: Go
- Homepage:
- Size: 7.45 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GitLab Jenkins Runner
GitLab Jenkins Runner 是一个用于在 GitLab CI/CD 流水线中触发 Jenkins 作业的命令行工具。它允许你轻松地将 GitLab 与 Jenkins 集成,实时输出Jenkins的构建日志,以实现自动化构建和部署工作流程。
![](./demo.svg)
## 安装
在开始之前,请确保你的系统上已安装了Go(1.19及以上)。
使用以下命令获取和构建 `gitlab-jenkins-runner`命令:
```bash
$ go install github.com/raojinlin/gitlab-jenkins-runner@latest
```或者在[Releases](https://github.com/raojinlin/gitlab-jenkins-runner/releases)页面下载已经编译好的可执行文件。
## 使用
使用以下命令来触发 Jenkins 作业:
```bash
gitlab-jenkins-runner -base -job -params PARAM1=Value1,PARAM2=Value2 -user -token -build
```### 参数说明
- `-base `:Jenkins 服务器的基本 URL。
- `-job `:要触发的 Jenkins 作业的名称。
- `-params PARAM1=Value1,PARAM2=Value2`:要传递给 Jenkins 作业的参数,以逗号分隔的键值对。
- `-user `:Jenkins 用户名。
- `-token `:Jenkins 用户令牌或密码。
- `-build`:触发 Jenkins 作业的构建。### 环境变量
- `CI_MERGE_REQUEST_IID`: 合并请求的内部ID
- `CI_SERVER_URL`: GitLab的服务器地址,如:`http://gitlab.example.com`
- `CI_MERGE_REQUEST_PROJECT_PATH`: 项目路径
- `CI_GITLAB_ACCESS_TOKEN`: GitLab访问秘钥,用于获取合并请求`CI_GITLAB_ACCESS_TOKEN`的详细信息## 示例
以下是一个示例命令,演示如何使用 `gitlab-jenkins-runner` 工具:
```bash
gitlab-jenkins-runner -base https://your-jenkins-url.com -job my-build-job -params BRANCH=main,ENV=prod -user jenkinsuser -token myapitoken -build
```## 在 GitLab 流水线中使用
这个章节将指导你如何在 GitLab CI/CD 流水线中集成和使用 `gitlab-jenkins-runner` 命令来触发 Jenkins 构建作业。
### 步骤 1: 配置 GitLab 项目
确保你的 GitLab 项目正确配置了 CI/CD 设置以及与 Jenkins 的连接。你需要在项目设置中添加 Jenkins 服务器的 URL、认证凭据等信息。请参考 GitLab 文档以了解如何配置 GitLab 项目以与 Jenkins 集成。
### 步骤 2: 配置 GitLab CI/CD 流水线
在你的 GitLab 项目中,打开 `.gitlab-ci.yml` 文件并添加一个新的阶段,以使用 `gitlab-jenkins-runner` 工具触发 Jenkins 构建。
```yaml
# .gitlab-ci.ymlstages:
- trigger_jenkins_buildtrigger_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```
### 步骤 4:创建一个merge_request
创建一个merge_request### 步骤 5:为merge_request创建标签
如果要想要Jenkins构建时使用参数,有两种方式:1. 在merge request上设置label,label的格式如下:
```
PARAM_1=PARAM_VALUE_1
```如:`env=PROD`
2. 编辑合并请求的描述,在描述中加入代码块,遵循以下格式
````markdown
合并请求描述文本。。。。下面的代码块会被传递到Jenkins
```env
SERVER_A_HOST=x.x.x.x
SERVER_A_PORT=80
```
````## 支持
如果你需要帮助或有其他相关问题,请联系我们。
## 致谢
感谢使用 GitLab Jenkins Runner!