gitlab多分支提交自动触发jenkins pipeline(Generic Webhook Trigger)

2023-10-29

gitlab提交代码自动触发jenkins pipeline
1.配置jenkins(需要先安装Generic Webhook Trigger插件)

获取gitlab提交的分支,赋给变量branch
在这里插入图片描述

加一个webhook参数,用于判断触发构建的类型:

在这里插入图片描述
填写token:
在这里插入图片描述

打印相关内容和变量,方便调试:
在这里插入图片描述

2.gitlab配置

URL:http://10.0.0.51:8080/generic-webhook-trigger/invoke?token=demo-maven-service_PUSH&runType=gitlabpush
在这里插入图片描述
修改pipeline动态获取分支名称

#!groovy
@Library('jenkins-sharelibrary@master')
def tools = new org.devops.tools()

String srcUrl = "${env.srcUrl}"
String branchName = "${env.branchName}"
String buildType = "${buildType}"
String buildShell = "${buildShell}"

try{
    if ( "${runType}" == "gitlabpush" ){
        branchName = "${branch}"
    }
}catch(Exception e){
    println(branchName)
}

currentBuild.description = "构建分支:${branchName}"

pipeline{
    agent { 
        node { label 'master'} 
    }
    stages{
        stage('GetCode'){
            steps{
                script{
                    tools.myprint("正在拉取代码","green")
                    checkout([$class: 'GitSCM', 
                            branches: [[name: "${branchName}"]], 
                            doGenerateSubmoduleConfigurations: false, 
                            extensions: [], 
                            submoduleCfg: [], 
                            userRemoteConfigs: [[credentialsId: '476e5130-258c-4e7e-a80e-4ea8a303a985', 
                                                url: "${srcUrl}"]]]) 
                }
            }
        }
        stage('Build'){
            steps{
                script{
                    tools.build("${buildType}","${buildShell}")
                }
            }
        }
    }
}
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gitlab多分支提交自动触发jenkins pipeline(Generic Webhook Trigger) 的相关文章

  • 递归地将整个文件夹添加到存储库

    我正在尝试向 GitHub 上的 master 分支添加一个分支 并将一个文件夹推送到该分支上 分支的文件夹结构如下所示 Social App Source Code Dev Trunk Social App 以及所有源代码文件都在最后一个
  • GIT Pull 删除了我的提交

    在 git pull 之后 我已经完成了 git Reset 以在合并之前撤消与提交 ID 的合并 不知何故 我的整个提交都消失了 而且我也无法在历史记录中看到该提交 但我有提交 id 在 git show 命令上我可以看到我的更改 我如何
  • 如果提交格式不正确,是否可以拒绝 Github 上的提交?

    正如中提到的this https stackoverflow com a 6742691 1501285答案 可以在 Github 提交中引用问题 是否可以拒绝它的提交not格式化成这样 Example fix gh 12 foo bar是
  • 从私有 GitHub 存储库迁移到公共和私有

    我使用 GitHub 上的私人存储库开发了一个客户项目 我们现在要做的就是开放其中的某一部分 并产生该项目的开源版本 我们的想法是 客户的版本将在此基础上构建 对开源版本所做的任何更改也应适用于私有版本 现在的问题是我不能将当前的 GitH
  • 改进 IntelliJ 注释(git Blame)

    我想改进 注释选项 右键单击代码行号冒号 gt 注释 它类似于 gitblame 但集成到 IntelliJ 1 这可能吗 通过插件或 IntelliJ 文件的原始修改 还有其他什么吗 2 我使用的是 Android Studio 基于 I
  • 如何将 HEAD 移回之前的位置? (分离头)和撤消提交

    在 Git 中 我试图做一个squash commit通过合并到另一个分支然后重置HEAD通过以下方式前往上一个地点 git reset origin master 但我需要走出这一步 如何将 HEAD 移回之前的位置 我有 SHA 1 片
  • 在 GitHub 上看不到“在 Xcode 中打开”按钮

    正如在GitHub 和 Xcode 9 中的新源代码管理工作流程 https developer apple com videos play wwdc2017 405 time 204Apple 视频会话 我们可以直接从 Xcode 克隆项
  • 在“git rm -rf”之后恢复暂存但未提交的文件

    在我的本地计算机上 我从文件夹中删除了文件 git init git add all 然后我写了 不要问我为什么 git rm rf 我还没有承诺 现在我的项目中有空文件夹 在 git文件夹有objects包含 53 Mb 的文件 我怎样才
  • Jenkins - 设置向导空白?

    我尝试设置一个安装了 Jenkins 的 docker 映像 我使用了向导 输入了初始密码 并安装了推荐的插件 之后 当我连接到 localhost 8080 页面时 我只得到一个空白页面詹金斯初始页面 https i stack imgu
  • 在大型团队中使用 git VS Mercurial 和 Xcode 进行 iOS 开发有何优缺点?

    我们希望在一个项目上一起工作 签出 签入文件 一些开发人员推荐 git 其他开发人员更喜欢 Mercurial 有没有人对这两者都有经验 并且能告诉我为什么我应该花时间在不与 Xcode 集成的 Mercurial 上 而不是只使用集成的
  • 詹金斯更改链接

    Jenkins UI 中 更改 链接的用途是什么 谁能指出描述 更改 链接的 Jenkins 文档 当 Jenkins 拉取源代码时 它会获得新的 SVN 修订版或新的 Git SHA1 此链接显示自上次构建以来 SCM 的更改
  • 比较 2 次提交

    我没有找到任何关于获取两个文件之间差异的文档 我使用下面的代码使用坚固的方式提交文件 repo Rugged Repository new reponame email protected cdn cgi l email protectio
  • Visual Studio 代码中的“Git:gpg 未能签署数据”

    全新安装 Linux 后 我尝试设置我的环境 并且不断收到Git gpg failed to sign the data在本地提交更改时出错 我使用的是 Visual Studio Code 专有版本 而不是开源版本 gitconfig u
  • git checkout 裸露,并在接收后包含子模块

    如何在包含子模块的接收后挂钩中检出服务器上的裸存储库 我目前将其作为接收后挂钩 bin bash http blog ekynoxe com 2011 10 22 git post receive for multiple remote b
  • 从 svn 到 git,移动了主干

    我正在尝试将 svn 存储库切换到 git 这是一个旧的存储库 以前的维护者之一为每个新版本移动了主干 例如 以前的存储库位于 svn ssh svn mycompany com project release 1 trunk 现在 我们当
  • 如何从旧提交创建新的 Git 分支? [复制]

    这个问题在这里已经有答案了 可能重复 最近 不太明确的问题 使用 Git 从先前的提交分支 http stackoverflow com questions 2816715 branch from a previous commit usi
  • 从子文件夹自动部署 Heroku

    我知道你可以从github自动部署到heroku 但我还没有找到一种方法只将子文件夹从github推送到heroku 从命令行我知道可以通过以下方式执行此操作 git subtree push prefix
  • 获得干净的 git 沙箱的最有效方法是什么?

    对于我的持续集成构建 我想确保我的 git 沙箱中没有存放任何杂散文件 并且没有任何文件被无意中更改 我知道关于git reset hard HEAD 这解决了部分问题 但我想我想做的是删除所有未跟踪和忽略的文件 我可以用蛮力的方式做到这一
  • 如何在 git merge 提交中列出冲突的文件(父级都有更改的文件)?

    qgit 有一个很好的选择 可以在合并提交中查看 有趣 的文件 其中有趣的文件被定义为在两个父文件中都有更改的文件 查看此类文件的相应命令行是什么 git show name status SHA1 of merge 将向您显示提交消息和在
  • 使用 git 同时维护不同版本的代码

    我有一个需要优化的代码 我想同时维护一组版本的代码 每个版本可以描述为一些功能 优化的组合 最终 我将决定哪个版本是最好的 我不想将这些版本合并为更少的版本 但是 我希望能够对 大 源文件进行 小 修改 这可能会跨版本转移 并且我希望这一修

随机推荐

  • Cannot find QEMU binary /usr/bin/kvm: Permission denied

    kvm报错 信息如下 Cannot find QEMU binary usr bin kvm Permission denied 解决办法 find name qemu kvm 或者 find name qemu 然后加软连接 ln s u
  • emacs verilog-mode方式实现verilog实例化集成

    文章目录 背景介绍 AUTOINST和AUTOWIRE的应用 推荐使用方法 auto template命令总结 中括号 里面没内容 表示auto inst时 会显示 3 0 类似内容 常用于相同module 多次实例化情况 我不常用 这里仅
  • docker:基本架构

    docker是典型的CS架构 包括客户端和服务端两大核心组件 同时通过镜像仓库来存储镜像 客户端和服务器既可以运行在同一个机器上 也可以通过socket或者RESTful API来进行通信 服务端 docker的服务端一般在宿主主机后台运行
  • 将li标签元素内容排在一行

  • esp8266学习

    在网上学习AT指令 学习esp8266的相关内容 正点原子官方AT指令集 https img blog csdnimg cn 50f65a5a0b724815b82b56d7bb57c113 png x oss process image
  • 跟我一起开启 linux 的学习吧

    跟我学 CentOS 的安装 一 安装 VMware 二 创建虚拟机 三 安装 CentOS 7 四 linux 的登录 一 安装 VMware VMware 计算机虚拟化软件 从官网 https www vmware com cn htm
  • 在VMware虚拟机中安装CentOS 7(图文教程)

    一 VMware简介 VMware是一个虚拟PC的软件 可以在现有的操纵系统上虚拟出一个新的硬件环境 相当于模拟出一台新的PC 以此来实现在一台机器上真正同时运行两个独立的操作系统 VMware的主要特点 不需要区分或重新开机就能在同一台P
  • Arm嵌入式开发之USB主机与设备驱动

    Arm嵌入式开发之USB主机与设备驱动 2013 03 05 00 37 25人阅读 评论 0 收藏 举报 USB驱动层次结构 由上到下 USB设备驱动 USB核心 USB主机控制器驱动 USB控制器硬件 USB核心为USB驱动程序提供了一
  • LSTM+Attention+Prediction

    从Github上整理了几个关于时间序列预测的项目 简单记录一下 tensorflow Time series prediction Codebase for Time series prediction with RNN GRU LSTM
  • 电脑数据怎么恢复?三种方法值得一试

    电脑数据怎么恢复 我们大多数时候都会用电脑作为我们的最主要的办公工具 那么作为我们一直在使用的办公工具 我们一定会出现一些问题 如果电脑不小心出现了数据丢失的情况 我们该怎么找回呢 以下几种方法我推荐你尝试 方法一 回收站恢复 一般情况下
  • Python入门(常用内置对象列表和元组)

    Python的常用内置对象 列表和元组 简单数据类型 整型
  • tomcat部署,js中文乱码

    tomcat启动项目 js如果出现乱码 并且试过了网上的方法 发现还是没用 在设置里面清除浏览器缓存 清缓存 清缓存 血的经验
  • Android调用OpenCV配置方法

    文章目录 1 环境 2 准备工作 3 开始构建示例项目 4 集成opencv库 4 1 导入opencv库 4 2 配置CMakeLists txt 4 3 代码声明及实现 4 3 运行效果 5 可能遇到的其他错误及解决方法 5 1 包冲突
  • 关于
  • 数据库应用:MySQL数据库用户管理

    目录 一 理论 1 用户管理 2 授权控制 二 实验 1 数据库用户管理 2 数据库用户授权 三 总结 一 理论 1 用户管理 1 用户信息 MySQL 中的用户信息 都存储在系统数据库 mysql 的 user 表中 use mysql
  • Python调用outlook提示:有一个程序正试图以您的名义自动发送电子邮件。是否允许操作?

    在使用Python写调用系统的outlook来发送测试结果报告的时候 发送邮件老是弹出警告 只有连续点击允许后才会发送邮件 解决办法 如果您是outlook2013的话 工具 信任中心 编程访问 选择 从不向我发任何可疑警告 即可
  • u盘上面 安装 ubuntu 系统

    u盘上面 安装 ubuntu 系统 下载 一个 Ubuntu 22 04 3 LTS 桌面版 https ubuntu com download desktop 找到一个U盘 参考文章 把 Ubuntu 装到U盘里随身携带 并同时支持 BI
  • magento2命令行大全

    在本教程中 我们将讨论Magento 2中的命令行接口 CLI 如你所知 Magento 2在bin magento添加了许多命令 当你在终端运行命令时 php bin magento 要么 bin magento 你将得到可用的Magen
  • vue修改标签页logo图片

    vue修改标签页logo图片 由于vue2和vue3的项目结构不同 所以修改方式不一样 1 vue2 首先static文件夹下放入ico图标 然后修改webpack dev conf js文件 new HtmlWebpackPlugin f
  • gitlab多分支提交自动触发jenkins pipeline(Generic Webhook Trigger)

    gitlab提交代码自动触发jenkins pipeline 1 配置jenkins 需要先安装Generic Webhook Trigger插件 获取gitlab提交的分支 赋给变量branch 加一个webhook参数 用于判断触发构建