一、常用语法

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项目



六、参考

pipeline学习的更多相关文章

  1. spark ML pipeline 学习

    一.pipeline 一个典型的机器学习过程从数据收集开始,要经历多个步骤,才能得到需要的输出.这非常类似于流水线式工作,即通常会包含源数据ETL(抽取.转化.加载),数据预处理,指标提取,模型训练与 ...

  2. Spark.ML之PipeLine学习笔记

    地址: http://spark.apache.org/docs/2.0.0/ml-pipeline.html   Spark PipeLine 是基于DataFrames的高层的API,可以方便用户 ...

  3. jenkins中的pipeline学习

    Jenkins pipeline 升级打怪攻略(二): http://haurqb42j0gnc7zyxam.exp.bcevod.com/mda-jg9eq66184z5manh/mda-jg9eq ...

  4. jenkins项目发布

    目录 一.简介 二.docker打包 一.后端打包 二.前端打包 三.启动容器 四.完整代码 五.发布测试 六.优化方案 七.源码地址: 八.参考 一.简介 1.该章节基于jenkins.Harbor ...

  5. jenkins+docker+k8s项目发布

    目录 一.简介 二.新建docker-build工程 三.项目部署 四.访问测试 一.简介 1.该章节基于jenkins.Harbor.pipeline.k8s来做发布,如对这些不熟悉,请按以下进入学 ...

  6. Hdfs存储策略

    一.磁盘选择策略 1.1.介绍 在HDFS中,所有的数据都是存在各个DataNode上的.而这些DataNode上的数据都是存放于节点机器上的各个目录中的,而一般每个目录我们会对应到1个独立的盘,以便 ...

  7. Redis学习笔记7--Redis管道(pipeline)

    redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...

  8. Scrapy学习篇(七)之Item Pipeline

    在之前的Scrapy学习篇(四)之数据的存储的章节中,我们其实已经使用了Item Pipeline,那一章节主要的目的是形成一个笼统的认识,知道scrapy能干些什么,但是,为了形成一个更加全面的体系 ...

  9. DirectX 11游戏编程学习笔记之6: 第5章The Rendering Pipeline(渲染管线)

            本文由哈利_蜘蛛侠原创,转载请注明出处.有问题欢迎联系2024958085@qq.com         注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候 ...

随机推荐

  1. kettle 多表全删全插同步数据 两种方案

    背景: 接到上级指示,要从外网某库把数据全部导入到内网,数据每天更新一次即可,大约几百万条数据,两个库结构一样,mysql的,两台数据库所在服务器都是windows server的,写个java接口实 ...

  2. NLP与深度学习(五)BERT预训练模型

    1. BERT简介 Transformer架构的出现,是NLP界的一个重要的里程碑.它激发了很多基于此架构的模型,其中一个非常重要的模型就是BERT. BERT的全称是Bidirectional En ...

  3. 让前端的下拉框支持单选、多选及全选,后台MyBaits解决方案

    目录 一.解决思路 二.请求参数 三.后台相关代码 四.Mybatis注意要点 一.解决思路   让前端的下拉框支持单选.多选及全选,后台让Mybatis使用** trim **标签拼接动态SQL,实 ...

  4. 配置一个简单的传统SSM项目

    背景 我们知道,从2002年开始,Spring一直在飞速的发展,如今已经成为了在Java EE开发中的标准,早期的项目都是传统的Spring-SpringMVC-Mybatis项目,打成一个war包丢 ...

  5. JVM探针与字节码技术

    JVM探针是自jdk1.5以来,由虚拟机提供的一套监控类加载器和符合虚拟机规范的代理接口,结合字节码指令能够让开发者实现无侵入的监控功能.如:监控生产环境中的函数调用情况或动态增加日志输出等等.虽然在 ...

  6. 【理解OS】1.保护模式概述

    这个系列文章主要目的是为了记录我个人学习保护模式后的总结与一点点的思考.我也是一个学习者,其中由错误在所难免,若各位朋友指出将不胜感激. 1. Intel CPU的运行模式概述 这里我将粗略介绍Int ...

  7. 原生JS实现简单留言板功能

    原生JS实现简单留言板功能,实现技术:css flex,原生JS. 因为主要是为了练手js,所以其中布局上的一些细节并未做处理. <!DOCTYPE html> <html lang ...

  8. Netty 组件分析

    EventLoop 事件循环对象 EventLoop 本质是一个单线程执行器(同时维护了一个 Selector),里面有 run 方法处理 Channel 上源源不断的 io 事件. 它的继承关系比较 ...

  9. Excel一对多查找

    很多人在Excel中用函数公式做查询的时候,都必然会遇到的一个大问题,那就是一对多的查找/查询公式应该怎么写?大多数人都是从VLOOKUP.INDEX+MATCH中入门的,纵然你把全部的多条件查找方法 ...

  10. Scrum Meeting 0505

    零.说明 日期:2021-5-5 任务:简要汇报两日内已完成任务,计划后两日完成任务 一.进度情况 组员 负责 两日内已完成的任务 后两日计划完成的任务 qsy PM&前端 完成邮箱注册页面功 ...