“触发器之jenkins实现gitlab trigger”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
 
(未显示同一用户的11个中间版本)
第1行: 第1行:
 +
[[category:devops]]  [[category:jenkins]]
 
=触发器=
 
=触发器=
 
==jenkins pipeline 实现gitlab trigger==
 
==jenkins pipeline 实现gitlab trigger==
 
=== jenkins 上的配置===
 
=== jenkins 上的配置===
 
<pre>
 
<pre>
  前提 得安装 gitlab  git 两个 plugin  
+
  前提 得安装 gitlab  git 两个 plugin ,Gitlab Hook Plugin已放弃
 
  pipeline job 中的 构建触发器 默认的选中就行了  
 
  pipeline job 中的 构建触发器 默认的选中就行了  
 
有个  Build when a change is pushed to GitLab. GitLab webhook URL: http://jenkins.com/project/core-manage
 
有个  Build when a change is pushed to GitLab. GitLab webhook URL: http://jenkins.com/project/core-manage
第11行: 第12行:
  
 
</pre>
 
</pre>
 +
 +
=== gitlab上的配置===
 +
这种操作不用添加pipeline grovvy脚本
 +
选中你的git源码项目 --左边下的 设置-->集成--> webhooks  网址填写网上jenkins上的那个url , secret 填写上面记下来的key
 +
 +
右下的 Project Hooks (2)  可以选择你的项目 test一下
 +
 +
=== 最后回jenkins jobs看效果 ===
 +
<pre>
 +
只要有人提交一代码  就会build job
 +
 +
构建历史如下
 +
#8 2021-12-2 下午3:13
 +
Started ​by ​GitLab ​push ​by ​meimei
 +
 +
</pre>
 +
 +
=== 2024 新例子===
 +
<pre>
 +
#少了在gitlab的配置而已
 +
pipeline  {
 +
    agent any
 +
    stages {
 +
        stage("test") {
 +
            steps {
 +
                script {
 +
                   
 +
                    println("${WebHookData}")
 +
 +
                    webHookData = readJSON text: "${WebHookData}"
 +
 +
                    env.srcUrl = webHookData["project"] ["git_http_url"]
 +
                    env.branchName = webHookData["ref"] - "refs/heads/"
 +
                    env.commitId = webHookData["checkout_sha"]
 +
                    env.commitUser = webHookData["user_username"]
 +
                    env.userEmail = webHookData["user_email"]
 +
 +
                    currentBuild.description = "Trigger by Gitlab \n branchName: ${env.branchName}"
 +
                    currentBuild.displayName = "${env.commitId}"
 +
                }
 +
                }
 +
                }
 +
    }
 +
 +
}
 +
</pre>
 +
 +
==other grigger==
 +
[https://blog.csdn.net/qq_31977125/article/details/103401108 Jenkins parameters trigger pipeline plugin 一个pipeline触发另外pipeline并传递参数]
 +
=Reference=
 +
[https://www.jianshu.com/p/2b2c204dcbe2 利用gitlab的webhook触发jenkins]
 +
 +
[https://blog.csdn.net/BUG_88/article/details/108365817  Gitlab配置Webhooks时Secret Token从Jenkins获取方法]
 +
 +
[https://www.jianshu.com/p/7dc91bfffbb1 Jenkins Pipeline触发机制]

2024年9月25日 (三) 15:39的最新版本

触发器

jenkins pipeline 实现gitlab trigger

jenkins 上的配置

 前提 得安装 gitlab  git 两个 plugin ,Gitlab Hook Plugin已放弃
 pipeline job 中的 构建触发器 默认的选中就行了 
有个  Build when a change is pushed to GitLab. GitLab webhook URL: http://jenkins.com/project/core-manage
这个后面会用到 还有 
右下的 高级  点开 -->Secret token >Generate 生成一个 key  记下来哦 


gitlab上的配置

这种操作不用添加pipeline grovvy脚本
选中你的git源码项目 --左边下的 设置-->集成--> webhooks  网址填写网上jenkins上的那个url , secret 填写上面记下来的key 
右下的 Project Hooks (2)   可以选择你的项目 test一下

最后回jenkins jobs看效果

 只要有人提交一代码  就会build job

构建历史如下 
 #8 2021-12-2 下午3:13
Started ​by ​GitLab ​push ​by ​meimei 

2024 新例子

#少了在gitlab的配置而已 
pipeline  {
    agent any 
    stages {
        stage("test") {
            steps {
                script {
                    
                    println("${WebHookData}")

                    webHookData = readJSON text: "${WebHookData}"

                    env.srcUrl = webHookData["project"] ["git_http_url"]
                    env.branchName = webHookData["ref"] - "refs/heads/"
                    env.commitId = webHookData["checkout_sha"]
                    env.commitUser = webHookData["user_username"]
                    env.userEmail = webHookData["user_email"]

                    currentBuild.description = "Trigger by Gitlab \n branchName: ${env.branchName}"
                    currentBuild.displayName = "${env.commitId}"
                }
                }
                }
    }

}

other grigger

Jenkins parameters trigger pipeline plugin 一个pipeline触发另外pipeline并传递参数

Reference

利用gitlab的webhook触发jenkins

Gitlab配置Webhooks时Secret Token从Jenkins获取方法

Jenkins Pipeline触发机制