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多页,所以我在提到相关概念的时候 ...
随机推荐
- 『Python』matplotlib实现动画效果
一般而言,在绘制复杂动画时,主要借助模块animation来完成 import numpy as np import matplotlib.pyplot as plt import matplotli ...
- 踩坑经验总结之go web开源库第一次编译构建
前言:记录一个go新手第一次构建复杂开源库的经历.go虽然是新手,但是编程上还是有多年的经验,除了c/c++,用过IDEA能进行简单的java编程.甚至scala编程.所以最开始还是有点信心的.所以也 ...
- 获取classpath(src/main/resources)的绝对路径
先贴上代码 private static String basePath = Thread.currentThread().getContextClassLoader().getResource(&q ...
- 当一个 Pod 被调度时,Kubernetes 内部发生了什么?
在 Kubernetes 中,调度是指将 Pod 放置到合适的 Node 上,然后对应 Node 上的 Kubelet 才能够运行这些 Pod . kube-scheduler 是集群控制平面的主要组 ...
- WPF实现聚光灯效果
WPF开发者QQ群: 340500857 | 微信群 -> 进入公众号主页 加入组织 前言 效果仿照 CSS聚光灯效果 实现思路: 1. 设置底部Canvas背景色 #222222 . 2. ...
- Dapr + .NET Core实战(十二)服务调用之GRPC
什么是GRPC gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架. gRPC 的主要优点是: 高性能轻量级 RPC 框架. 协定优先 API 开发,默认使用协议缓冲区,允许与语言无关的 ...
- Midway Serverless 发布 2.0,一体化让前端研发再次提效
作者 | 张挺 来源 | Serverless 公众号 自去年 Midway Serverless 1.0 发布之后,许多业务开始尝试其中,并利用 Serverless 容器的弹性能力,减少了大量研发 ...
- Data Management Tools(数据管理工具)《一》
数据管理工具 1.LAS数据集 # Process: LAS 数据集统计数据 arcpy.LasDatasetStatistics_management("", "SKI ...
- CF1092F Tree with Maximum Cost(dfs+dp)
果然我已经菜到被\(div3\)的题虐哭了 qwq 首先看到这个题,一个比较显然的想法就是先从1号点开始\(dfs\)一遍,然后通过一些奇怪的方式,再\(dfs\)一遍得到其他点的贡献. 那么具体应该 ...
- 2020.11.1--pta阶梯练习赛补题
7-5 古风排版 中国的古人写文字,是从右向左竖向排版的.本题就请你编写程序,把一段文字按古风排版. 输入格式: 输入在第一行给出一个正整数N(<),是每一列的字符数.第二行给出一个长度不超过1 ...