Gitlab 触发 Jenkins 自动构建,并返回构建结果 您所在的位置:网站首页 Gitlab打tag触发流水线 Gitlab 触发 Jenkins 自动构建,并返回构建结果

Gitlab 触发 Jenkins 自动构建,并返回构建结果

2024-07-10 21:05| 来源: 网络整理| 查看: 265

插件安装 gitlab-plugin 添加认证

添加认证的操作,分为两个部分,一个是在 Gitlab 上完成,一个是在 Jenkins 上完成。

Gitlab 认证配置

在 Gitlab 中,使用管理员账号,生成 Access Token。

将生成的 token 拷贝。注意:token 只会展示一次,关闭页面后,就无法再拷贝。

Jenkins 认证配置

使用管理员账号,进入系统管理 -> 系统配置/Configuration System,找到 Gitlab 。

点击添加认证按钮,将 Gitlab 处复制来的 Access Token 粘贴到指定位置。

添加成功后,在 Gitlab 选项处进行配置,并测试连接。连接成功即添加完成,保存退出,即可。

创建 Jenkins 流水线

创建 Jenkins 流水线,选择 pipeline 风格。(这里仅说明 pipeline 风格流水线如何配置)

Jenkins 返回构建信息 Jenkinsfile样例 pipeline { agent any // 添加 gitlab 名称 // 填写 Jenkins 后台配置的 Gitlab 选项中的 Connection name。此处填写上一章节填写的名称。 options { gitLabConnection('Gitlab') } parameters{ gitParameter branch: '', branchFilter:'origin/{.*}', defaultValue:'', name:'BRANCH', quickFilterEnabled: true, selectedValue: 'DEFAULT', sortMode: 'NONE', tagFilter: '*', type:'PT_BRANCH_TAG' } stages { stage('Checkout') { steps { // 更新 Gitlab 中的流水线状态 updateGitlabCommitStatus name: 'build', state: 'pending' // 更新代码 checkout([$class: 'GitSCM', branches: [[ name:"${BRANCH}" ]], doGenerateSubmoduleConfinurations: false, extensions: [], //gitTool: 'Gitlab', submoduleCig: [], userRemoteConfigs: [[ url: "", credentialsId: '', ]] ]) } } stage('build') { steps { // 更新 Gitlab 中的流水线状态 updateGitlabCommitStatus name: 'build', state: 'running' hogehoge } } } // 返回构建结果到 Gitlab 上 post { success { updateGitlabCommitStatus name: 'build', state: 'success' } failure { updateGitlabCommitStatus name: 'build', state: 'failed' } } } 实际效果

这里已经完成了,Jenkins 返回构建结果到 Gitlab 上的配置,显示效果可以在 Gitlab 中查看,效果如下所示:

也可以在提交历史上查看流水线的构建结果。

GItlab 提交代码触发构建

进入 Jenkins 流水线,选择 Build when a change is pushed to Gitlab. XXXXXXX 。

点击高级,复制 Secret token。如果需要限制触发流水线运行的分支,可以按需修改 Allowed braches 。

打开需要自动触发的 Gitlab 库,配置 webhook 。

完成添加后,可以进行事件测试,如果返回值为 200 ,则配置成功。

实际效果 其他

由于 Gitlab 10.6 版本后,为了安全,默认不允许向本地网络发送 webhook 请求,否则添加 webhook 会报错,报错信息为:Url is blocked: Requests to the local network are not allowed

解决方法为,使用管理员账号打开本地网络的 webhook 请求。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有