pipeline学习
一、常用语法
1、拉取git仓库代码
checkout([
$class: 'GitSCM',
branches: [[name: 代码分支名称]],
doGenerateSubmoduleConfigurations: false,
userRemoteConfigs: [[credentialsId: 权限, url: 代码地址]]
])
2、cleanWs()或者deleteDir(), 删除工作目录
// 删除${WORKSPACE}目录
cleanWs()
// 判断目录是否存在
dir("${env.WORKSPACE}@tmp") {
//删除${WORKSPACE}@tmp目录
deleteDir()
}
3、withCredentials ,获取用户名和密码
steps{
withCredentials([usernamePassword(credentialsId: 'user_for_openshift', passwordVariable: 'password', usernameVariable: 'username')]) {
sh 'docker login -u $username -p $password registory.ctiwifi.cn:5000
}
}
4、readJSON读取json文件
def readJsonFile(filePath) {
def propMap = readJSON file: filePath
return propMap
}
二、基础使用




- pipeline代码
pipeline {
agent any
stages {
stage('初始化') {
steps {
echo '初始化。。。'
}
}
stage('打包') {
steps {
echo '打包。。。'
}
}
stage('测试') {
steps {
echo '测试。。。'
}
}
stage('发布') {
steps {
echo '发布。。。'
}
}
}
}
三、使用 Groovy 沙盒






- pipeline代码
pipeline {
agent any
stages {
stage('初始化') {
steps {
echo '初始化。。。'
}
}
stage('打包') {
steps {
echo 'git代码拉取。。。'
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'a8db6793-cc2b-4d82-bd3d-c5beb1c5149e', url: 'http://192.168.3.11/root/rapid-screen.git']]])
echo 'mvn打包。。。'
sh "/usr/local/apache-maven-3.8.2/bin/mvn -U clean install"
}
}
stage('测试') {
steps {
echo '测试。。。'
}
}
stage('发布') {
steps {
echo '发布。。。'
}
}
}
}
四、参数化构建过程


- pipeline代码
pipeline {
agent any
parameters {
booleanParam(name: 'ENABLE_BACKEND_BUILD', defaultValue: true, description: '开启后端构建')
booleanParam(name: 'ENABLE_DEPLOY', defaultValue: true, description: '开启部署')
}
stages {
stage('初始化') {
steps {
echo '初始化。。。'
}
}
stage('打包') {
when{
expression{params.ENABLE_BACKEND_BUILD}
}
steps {
echo '打包。。。'
ws("backend_build"){
dir("my_docker"){
echo 'git代码拉取。。。'
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'a8db6793-cc2b-4d82-bd3d-c5beb1c5149e', url: 'http://192.168.3.11/root/rapid-screen.git']]])
echo 'mvn打包。。。'
sh "/usr/local/apache-maven-3.8.2/bin/mvn -U clean install"
}
echo '打包完成。。。'
// 删除backend_build工作目录
cleanWs()
}
}
}
stage('测试') {
steps {
echo '测试。。。'
}
}
stage('发布') {
when{
expression{params.ENABLE_DEPLOY}
}
steps {
echo '发布。。。'
}
}
}
}
五、pipeline script from SCM
1、新建一个docker-build项目并配置Jenkinsfile,如下

2、新建pipeline项目,选择pipeline script from SCM,git设置为上面新建的docker-build项目


六、参考
- https://blog.csdn.net/diantun00/article/details/81075007
- pipeline常用插件: https://blog.csdn.net/liurizhou/article/details/86669572
pipeline学习的更多相关文章
- spark ML pipeline 学习
一.pipeline 一个典型的机器学习过程从数据收集开始,要经历多个步骤,才能得到需要的输出.这非常类似于流水线式工作,即通常会包含源数据ETL(抽取.转化.加载),数据预处理,指标提取,模型训练与 ...
- Spark.ML之PipeLine学习笔记
地址: http://spark.apache.org/docs/2.0.0/ml-pipeline.html Spark PipeLine 是基于DataFrames的高层的API,可以方便用户 ...
- jenkins中的pipeline学习
Jenkins pipeline 升级打怪攻略(二): http://haurqb42j0gnc7zyxam.exp.bcevod.com/mda-jg9eq66184z5manh/mda-jg9eq ...
- jenkins项目发布
目录 一.简介 二.docker打包 一.后端打包 二.前端打包 三.启动容器 四.完整代码 五.发布测试 六.优化方案 七.源码地址: 八.参考 一.简介 1.该章节基于jenkins.Harbor ...
- jenkins+docker+k8s项目发布
目录 一.简介 二.新建docker-build工程 三.项目部署 四.访问测试 一.简介 1.该章节基于jenkins.Harbor.pipeline.k8s来做发布,如对这些不熟悉,请按以下进入学 ...
- Hdfs存储策略
一.磁盘选择策略 1.1.介绍 在HDFS中,所有的数据都是存在各个DataNode上的.而这些DataNode上的数据都是存放于节点机器上的各个目录中的,而一般每个目录我们会对应到1个独立的盘,以便 ...
- Redis学习笔记7--Redis管道(pipeline)
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...
- Scrapy学习篇(七)之Item Pipeline
在之前的Scrapy学习篇(四)之数据的存储的章节中,我们其实已经使用了Item Pipeline,那一章节主要的目的是形成一个笼统的认识,知道scrapy能干些什么,但是,为了形成一个更加全面的体系 ...
- DirectX 11游戏编程学习笔记之6: 第5章The Rendering Pipeline(渲染管线)
本文由哈利_蜘蛛侠原创,转载请注明出处.有问题欢迎联系2024958085@qq.com 注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候 ...
随机推荐
- CVE-2012-0158 漏洞分析报告
Office 2003 sp3(CVE-2012-0158)漏洞分析报告 软件名称:Office 2003 sp3 软件版本:2.0 漏洞模块:MSCOMCTL.ocx 模块版本:2.0.0. ...
- P7736-[NOI2021]路径交点【LGV引理】
正题 题目链接:https://www.luogu.com.cn/problem/P7736 题目大意 有\(k\)层的图,第\(i\)层有\(n_i\)个点,每层的点从上到下排列,层从左到右排列.再 ...
- 淘宝商品html--网页结构
淘宝商品html--网页结构 本篇爬虫紧接上一篇关于 泸州老窖 的爬虫随笔: import re import json def get_space_end(level): return ' ' * ...
- efcore分表分库原理解析
ShardingCore ShardingCore 易用.简单.高性能.普适性,是一款扩展针对efcore生态下的分表分库的扩展解决方案,支持efcore2+的所有版本,支持efcore2+的所有数据 ...
- DCI架构是如何解决DDD战术建模缺点的?
摘要:将DCI架构总结成一句话就是:领域对象(Object)在不同的场景(Context)中扮演(Cast)不同的角色(Role),角色之间通过交互(Interactive)来完成具体的业务逻辑. 本 ...
- 后缀自动机(SAM)奶妈式教程
后缀自动机(SAM) 为了方便,我们做出如下约定: "后缀自动机" (Suffix Automaton) 在后文中简称为 SAM . 记 \(|S|\) 为字符串 \(S\) 的长 ...
- 消息队列那么多,为什么建议深入了解下RabbitMQ?
你为啥要在项目中选择xxx消息中间件? 提起消息队列,也许你的脑海里会不自觉地蹦出好多概念:JMS.Kafka.RocketMQ.AMQP.RabbitMQ.ActiveMQ.Pulsar.Redis ...
- C++ 与 Visual Studio 2019 和 WSL(四)——库组件
C++ 与 Visual Studio 2019 和 WSL (库组件) Reference 在 C++ 项目中使用库和组件 | Microsoft Docs 演练:创建和使用自己的动态链接库 (C+ ...
- C++ 与 Visual Studio 2019 和 WSL(二)
终端 A more integrated terminal experience | Visual Studio Blog (microsoft.com) Say hello to the new V ...
- [JVM-6]类加载器
定义 前面说过加载阶段是一个可以让设计人员高度自控的模块,因为类文件的源头可以是多种多样的,代码生成.反射生成或从网络中生成等.因此类加载器作为对这些文件的处理就显得尤为重要. 但类加载器的功能不仅如 ...