Gitlab触发jenkins并获取项目post参数 Gitlab触发jenkins并获取项目post参数

编程之家收集整理的这篇文章主要介绍了Gitlab触发jenkins并获取项目post参数 Gitlab触发jenkins并获取项目post参数编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Gitlab触发jenkins并获取项目post参数 jenkins -- Generic Webhook Trigger插件 此插件是git webhook的高阶应用,安装后会暴露出来一个公共API

Gitlab触发jenkins并获取项目post参数

 

jenkins -- Generic Webhook Trigger插件

插件是git webhook的高阶应用,安装后会暴露出来一个公共API,GWT插件接收到 JsON 或 XML 的 http POST 请求后,根据我们配置的规则决定触发哪个Jenkins项目。
定义需要的变量

插件有两种配置方式

1.图形界面配置-创建流水线任务在触发器中配置(本文不采用此法)

image

2.pipeline 脚本中配置-注意此方法需要手动触发一次构建任务生成 Generic Webhook Trigger配置

jenkins配置

1.安装插件

image


勾选Generic Webhook Trigger后,点击【Install without restart】安装插件

image

image

2.创建Jenkins任务

在Jenkins Dashboard中,点击【新建任务】

image

输入任务名称选择流水线类型后,点击确定创建任务。

 

 

点击刚才创建好的任务。

 

 


点击【配置】。

 

 


选择【流水线】。

image

3.pipeline内容

pipeline {
    agent any
    riggers{
        GenericTrigger(
            genericVariables:[
                [key:'event_name',value:'$.event_name'],//触发动作  pubat or tag_pubat
                [key:'user_email',value:'$.user_email'],//GitLab公共邮箱需要自行配置否则获取不到
                [key:'project_name',value:'$.project.name'],//项目名称 DevOps_Test
                [key:'git_url',value:'$.project.git_http_url'],//git_url http://xxx.xxx.xxx/devops/DevOps_Test.git
                [key:'ref',value:'$.ref'],//分支或tag信息
                [key:'group_name',value:'$.project.namespace'],//GITLAB_GROUP
                [key:'commits_ID',value:'$.commits[0].ID'] //gitlab commits ID
            ],token:"qazwsx",//gitlab webhook触发token 多个任务配置同一个token会一起触发
            causeString:'Triggered on $ref',printContributedVariables:true,printPostContent:true
        )
    }

    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

gitlab传递的post数据是Json格式

{
  "object_kind": "push","event_name": "push","before": "a2e3c8d96b30967da1fa9579096d52c2b3757d2a","after": "9ff547f1010f40c54aefe693d32c026cfc7d8f4d","ref": "refs/heads/master","checkout_sha": "9ff547f1010f40c54aefe693d32c026cfc7d8f4d","message": null,"user_ID": 324,"user_name": "h_y","user_username": "h_y","user_email": "","user_avatar": null,"project_ID": 3199,"project": {
    "ID": 3199,"name": "hello","description": "","web_url": "http://gitlab.example.com/h_y/hello","avatar_url": null,"git_ssh_url": "git@gitlab.example.com:h_y/hello.git","git_http_url": "http://gitlab.example.com/h_y/hello.git","namespace": "h_y","visibility_level": 0,"path_with_namespace": "h_y/hello","default_branch": "master","ci_config_path": null,"homepage": "http://gitlab.example.com/h_y/hello","url": "git@gitlab.example.com:h_y/hello.git","ssh_url": "git@gitlab.example.com:h_y/hello.git","http_url": "http://gitlab.example.com/h_y/hello.git"
  },"commits": [
    {
      "ID": "9ff547f1010f40c54aefe693d32c026cfc7d8f4d","message": "type\n","Title": "type","timestamp": "2020-05-28T15:09:37+08:00","url": "http://gitlab.example.com/h_y/hello/-/commit/9ff547f1010f40c54aefe693d32c026cfc7d8f4d","author": {
        "name": "h_y","email": "h_y@example.com"
      },"added": [

      ],"modifIEd": [
        "Jenkinsfile"
      ],"removed": [

      ]
    },{
      "ID": "a49de07609ad97132c0c42aca35c75694ab80085","timestamp": "2020-05-28T15:08:47+08:00","url": "http://gitlab.example.com/h_y/hello/-/commit/a49de07609ad97132c0c42aca35c75694ab80085",{
      "ID": "a2e3c8d96b30967da1fa9579096d52c2b3757d2a","timestamp": "2020-05-28T15:07:58+08:00","url": "http://gitlab.example.com/h_y/hello/-/commit/a2e3c8d96b30967da1fa9579096d52c2b3757d2a","removed": [

      ]
    }
  ],"total_commits_count": 3,"push_options": {
  },"repository": {
    "name": "hello","visibility_level": 0
  }
}

创建完成手动触发一次构建生成插件配置文件

image

gitlb配置

 

 

http://jenkinsserver:8080//generic-webhook-trigger/invoke?token=qazwsx

image

image

集成测试

image

总结

以上是编程之家为你收集整理的Gitlab触发jenkins并获取项目post参数 Gitlab触发jenkins并获取项目post参数全部内容,希望文章能够帮你解决Gitlab触发jenkins并获取项目post参数 Gitlab触发jenkins并获取项目post参数所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

Jenkins文章

Jenkins_pipeline关闭默认检出 问题描述 在使用 Pipeline(流水线)过程中,如果使用了(Pipeline script from SCM)远程 Git 的 Jenkinsfile
Gitlab触发jenkins并获取项目post参数 jenkins -- Generic Webhook Trigger插件 此插件是git webhook的高阶应用,安装后会暴露出来一个公共API
一.安装并配置Git1. 安装git在linux服务器上安装git:yum install git查看git是否安装成功:git version能够显示版本号即说明安装成功:设置git用户名和邮箱:git config --global user.name "username"git config --global user.email "username@qq.com"生成授权证书,中间过程直接全部回车:ssh-keygen -t rsa -C "username@qq.co
使用jenkins自动化部署vue
场景: jenkins构建selenium自动化用例的时候,会有jenkins自带服务后台运行自动化脚本,可无界面运行IE、Chrome、Firefox。 然而运行IE浏览器时候(IE比较特殊),Je
解决方案:通过修改启动命令来实现: java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war
背景: 想在拉取代码前,删除代码,结果百度白天找到答案,mark下 需要安装Workspace Cleanup Plugin插件, 再看创建任务项,勾选即可实现
Jenkins的配置从节点中默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的。 如何设置才能让出来呢? 1:打开&quot
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注