jenkins共享库配置及设计

news2024/11/26 12:15:32
  • jenkins共享库做模块封装时遇到的问题总结:
    背景描述:使用jenkins共享库对SCM subversion操作进行封装时,使用了Checkout插件,生成的检出脚本代码为
checkout([$class: 'SubversionSCM', 
         additionalCredentials: [], 
         excludedCommitMessages: '', 
         excludedRegions: '', 
         excludedRevprop: '', 
         excludedUsers: '', 
         filterChangelog: false, 
         ignoreDirPropChanges: false, 
         includedRegions: '', 
         locations: [[
               credentialsId: CRED_ID, 
               depthOption: 'infinity',
               ignoreExternalsOption: true, 
               local: checkout_local_path, 
               remote: repo_url
         ]], 
         workspaceUpdater: [$class: 'UpdateUpdater']
         ]
)

把它封装到jenkins共享库的vars目录下边的scm_svn_checkout.groovy文件里,传参形式及代码demo为:
注意):(文件名scm_svn_checkout.groovy名字不能和调用的checkout()方法同名)不然构建时jenkins会报ERROR:hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: checkout.call() is applicable for argument types.)

def call(String CRED_ID,String checkout_local_path,String repo_url) {
    checkout([$class: 'SubversionSCM', 
          additionalCredentials: [], 
          excludedCommitMessages: '', 
          excludedRegions: '', 
          excludedRevprop: '', 
          excludedUsers: '', 
          filterChangelog: false, 
          ignoreDirPropChanges: false, 
          includedRegions: '', 
          locations: [[
                credentialsId: CRED_ID, 
                depthOption: 'infinity',
                ignoreExternalsOption: true, 
                local: checkout_local_path, 
                remote: repo_url
          ]], 
          workspaceUpdater: [$class: 'UpdateUpdater']
          ]
    )
}

jenkinsfile写法:

@Library('my-shared-library') _
pipeline {
    agent {label "test"}
    stages {
        stage('Checkout') {
            steps {
                scm_svn_checkout.call("aaaaa","bbbbb","ccccc")
            }
        }
    }
}

project repository base:
http:aa/bb/usvn/test_1
default version:branches/test/share_library,下边是src和vars
jenkins关于共享库配置时,

  1. 如果Default version写到了共享库这一层就可以加载到共享库的代码。共享库这一层是指vars,src所在的目录。
  2. 如果Default version写到了共享库层级的上(前)某一层,就需要在Library Path(Optional)这里以相对路径形式test/share_library拼接default version:branches.也可以获取到共享库代码。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/5a305adc80694d4381cbcbc5088abc68.png#pic_center

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/701212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Dashy安装使用】本地Linux 部署 Dashy 并远程访问

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 转载自cpolar极点云文章:本地Linux 部署 Dashy 并远程访问 简介 Dashy 是一个开源的自托管的导航页配置服务,具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你…

spring源码编译笔记

下载源码 地址https://github.com/spring-projects/spring-framework/tree/v5.2.9.RELEASE 查看gradle对应版本 spring-framework-5.2.9.RELEASE/gradle/wrapper/gradle-wrapper.properties # 其他配置暂未了解具体用处,一切默认值 distributionBaseGRADLE_USE…

vue3案例

代码 <template><div class"app-page"><divv-for"title in data.titleArr":key"title.id"class"title-box"click"onClick(title)"><span>{{ title.name }}</span><img v-if"title…

Java基础——正则表达式

1 概述 正则表达式用于匹配规定格式的字符串。 除了上面的以外&#xff0c;还有一个符号就是括号&#xff0c;括号括起来的表示一个捕获组&#xff0c;一个捕获组可以作为一个重复单位来处理。 2 使用 2.1 判断是否匹配 String自带了一个可以使用正则表达式判断字符串是…

卸载 Navicat:正版 MySQL客户端,真香!

最近看到一款数据库客户端工具&#xff0c;DataGrip&#xff0c;是大名鼎鼎的JetBrains公司出品的&#xff0c;就是那个出品Intellij IDEA的公司。DataGrip是一款数据库管理客户端工具&#xff0c;方便连接到数据库服务器&#xff0c;执行sql、创建表、创建索引以及导出数据等。…

【Python从入门到进阶】25、urllib获取快餐网站店铺数据

接上篇《24、urllib获取网站电影排行》 上一篇我们讲解了如何使用urllib的get请求抓取某某电影排行榜信息。本篇我们来讲解如何使用urllib的post请求抓取某某快餐网站店铺数据。 一、某某快餐网站介绍 1、某某快餐网站 某某快餐店网址为&#xff1a;http://www.kfc.com.cn/k…

SciencePub学术 | 国人友好类重点SCIEEI征稿中

SciencePub学术 刊源推荐&#xff1a;国人友好类重点SCIE&EI征稿中&#xff01;信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 二、期刊要求 1. 论文为原创&#xff0c;未公开发表&#xff0c;初稿可提交中文版本&#xff0c;终稿必须是英文版本; …

Redis 跳表skiplist

跳跃表 在单链表中查询一个元素的时间复杂度为O(n)&#xff0c;即使该单链表是有序的&#xff0c;我们也不能通过2分的方式缩减时间复杂度。 跳跃表(skiplist)是一种有序数据结构&#xff0c;它通过在每个节点中维持多个指向其他节点的指针(注&#xff1a;可以理解为维护了多条…

【计算机网络】数据链路层之随机接入-CSMA/CA协议(无线局域网)

1.概念 2.无线局域网可否实现碰撞检验CD 3.方案 CSMA/CA 碰撞避免 4. 两种帧间间隔 IFS 为什么需要等待DIFS? 为什么需要等待SIFS? 为什么还要退避一段时间才能使用信道&#xff1f; 5.退避算法 使用退避算法的情况 退避算法 举例 6.信道预约 7.虚拟载波监听 8.题目 9.解析 …

分享一个上传按钮

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>上传</title><link rel"stylesheet" href"https://fonts.googleapis.com/css2…

面对Android开发高薪诱惑,如何拿到大厂offer?

前言 出来打工最看重的就是薪资&#xff0c;作为一名5年开发经验的Android人员。在如今的大环境中薪资一降再降&#xff0c;还没人要。技术还还算可以但是面试一直被刷下来&#xff1f;这是为什么&#xff0c;本篇我们来聊聊Android开发面试中的关键。 面试过程 通常面试过程…

【Vue3】学习笔记-watch函数

与Vue2.x中watch配置功能一致 两个小“坑”&#xff1a; 监视reactive定义的响应式数据时&#xff1a;oldValue无法正确获取、强制开启了深度监视&#xff08;deep配置失效&#xff09;。监视reactive定义的响应式数据中某个属性时&#xff1a;deep配置有效。 <template&…

数据分析三大件

一、jupyter的基本使用 二、Numpy 2.1 numpy的创建 #使用array&#xff08;&#xff09;创建一个多维数组 import numpy as np arrnp.array([1,2,3])2.2 numpy的属性 修改数组的元素类型 2.3 索引和切片 &#xff08;1&#xff09;行切片 &#xff08;2&#xff09;列切片 注…

高压线路距离保护程序逻辑原理(二)

二、选相子程序原理 距离保护的故障处理程序逻辑的第一步是判别故障相&#xff0c;即选相。只有判定了故障的种类及相别&#xff0c;才能确定阻抗计算应取用什么相别的电流和电压&#xff0c;例如BC相故障取和&#xff0c;A相接地故障取和十3&#xff08;详见第二章第二节解微…

远程桌面连接已开启无法连接?快解析助力远程访问

一、如何开启远程桌面 查询并记录远程计算机的IP&#xff0c;点击“开始——运行”&#xff0c;输入“cmd”命令后回车&#xff0c;准确查看并记录ipadress在计算机上右键&#xff0c;选择属性&#xff0c;点击远程设置&#xff0c;在弹出来的设置界面中&#xff0c;勾选“允许…

HFUT Data Structure Experiment: SkipList

写给我的学弟 如果你看到了这个题&#xff0c;赶快跑&#xff0c;千万别选。 这个题的图形化会让你非常痛苦。并且这道题只有小小85分&#xff0c;为啥不换个85分的更简单的&#xff1f;或者换个90分以上的题不好吗。 如果你单单想学习一下这个数据结构&#xff0c;那挺好的&…

xftp下载安装及简单使用

一、xftp简介 Xftp是一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后&#xff0c;MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。Xftp 能同时适应初级用户和高级用户的需要。它采用了标准的 Windows 风格的向导&#xff0c;它简单的界面能与其他…

GEACC-5595交换机

GE反射内存交换机特性 l 1 到 8 口可配置SFP收发器 l 大可级联256个节点 l 自动旁路故障节点 l 自动旁路模式可选 l 配置可选节点传输距离达10公里 l 可插拔收发器支持单模或者多模模式 l 1x8 口或者2x4 口 l 可以通过串口了解状态进行设置 概述 GE反射内存交换机&#xff08;以…

Linux-- . 和 ..

一、含义&#xff1a; . :表示当前路径 .. :表示直接上级路径 二、验证&#xff1a; 三、..用来返回上级目录&#xff0c;.有上面作用&#xff1f; 我们在Linux下写代码后生成的可执行程序a.out,我们运行它时的指令是./a.out 故使用.可以限定我们要执行的可执行程序在什么…

C语言编程—内存管理

C语言中的动态内存管理。C语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。 在C语言中&#xff0c;内存是通过指针变量来管理的。指针是一个变量&#xff0c;它存储了一个内存地址&#xff0c;这个内存地址可以指向任何数据类型的变量&…