Jenkins pipeline声明式语法
一.最简结构
pipeline {
agent any
stages {
stage('pull') {
steps {
echo '开始拉取代码'
}
}
}
}
以下声明式语法中,每个步骤都要有,少一个都会报错
- pipeline:固定语法,代表整条流水线
- agent:指定流水线在哪执行,默认any即可,也可以指定在docker、虚拟机等等里执行
- stages:流水线中多个stage的容器,至少包含一个stage
- stage:流水线的阶段,每个阶段都必须有名称,stage必须有,且只能有一个steps
- steps:阶段中的一个或多个具体步骤(step)的容器,steps部分至少包含一个步骤,echo就是一个步骤
二.简单例子
1.新建一个pipeline的项目

2.最下面的jenkinsfile中填入如下
pipeline {
agent any
stages {
stage('Pull Code') {
steps {
echo '开始拉取代码'
//sh "git clone http://1.1.1.1/LOL.git"
}
}
stage('Build') {
steps {
echo '开始构建代码'
//sh "cd LOL ; mvn clean install"
}
}
}
}
这个Use Groovy Sandbox是用沙箱来运行脚本,具体作用可以看介绍,也可以看后续文档。

初次接触会觉得这种方式比脚本式更加繁杂,所以可以换一种理解方式。初期将pipeline、agent、stages当成固定语法,然后stage为不同阶段,steps为固定的语法,在里面填写多个命令步骤即可了。
例子中有2个阶段,Pull Code拉取代码阶段包含2个步骤,先打印一个提示,然后用shell命令的git去拉取代码(后面会介绍用其它更方便的指令)。Build构建阶段也包含2个步骤,同样打印提示后,执行shell命令,移动到代码文件夹中,并用mvn命令进行构建。
3.执行job,可以看到视图里,2个阶段都成功了,还附带阶段执行时间

视图来自Pipeline: Stage View这个插件,在安装pipeline插件时会默认带上。如果你的视图异常了,可以检查一下这个插件。

Jenkins pipeline声明式语法的更多相关文章
- Jenkins 在声明式 pipeline 中并行执行任务
在持续集成的过程中,并行的执行那些没有依赖关系的任务可以缩短整个执行过程.Jenkins 的 pipeline 功能支持我们用代码来配置持续集成的过程.本文将介绍在 Jenkins 中使用声明式 pi ...
- 声明式语法重写基于容器CICD构建流水线
调试了一下午,一句话都不想说了,看代码. ----- 参考文档 https://blog.csdn.net/weixin_42010394/article/details/90670945 实践代码 ...
- Jenkins pipeline:pipeline 语法详解
jenkins pipeline 总体介绍 pipeline 是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. ...
- Jenkins pipeline 语法详解
原文地址http://www.cnblogs.com/fengjian2016/p/8227532.html pipeline 是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节 ...
- Jenkins pipeline 并行执行任务流
笔者在<Jenkins 在声明式 pipeline 中并行执行任务>一文中介绍了如何在声明式 pipeline 中执行并行的任务.前一段时间,Jenkins 发布了 1.3 版的声明式 p ...
- Docker的Jenkins Pipeline工作流
原文地址:http://www.youruncloud.com/blog/127.html 分享主题 一个软件产品的开发周期中,尤其是敏捷开发,持续集成和持续部署是必不可少的环节,而随着产品的丰富,模 ...
- jenkins pipeline的声明式与脚本式
自从Jenkins 2.0 版本升级之后,支持了通过代码(Groovy DSL)来描述一个构建流水线,灵活方便地实现持续交付,大大提升 Jenkins Job 维护的效率,实现从 CI 到 CD 到转 ...
- Jenkins教程——从安装到部署Docker服务(二)声明式流水线HelloWorld
前言 本文通过一个声明式流水线的HelloWorld程序做一下流水线基础入门,对常用的流水线参数进行简要说明 什么是流水线 现实中的流水线 流水线比较好理解,类比于现实生活中的生产流水线,每个流程只做 ...
- Jenkins Pipeline 语法
Pipeline语法 先讲Declarative Pipeline,所有声明式管道都必须包含在pipeline块中: 123 pipeline { /* insert Declarative Pipe ...
随机推荐
- Serverless 下的微服务实践
作者:弈川 审核&校对:筱姜.潇航 编辑&排版:雯燕 微服务架构介绍 微服务架构诞生背景 在互联网早期即 Web 1.0 的时代,当时流行的是单体应用,研发团队比较小,主要是外部网页, ...
- SpringCloud升级之路2020.0.x版-40. spock 单元测试封装的 WebClient(上)
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 我们来测试下前面封装好的 WebClient,这里开始,我们使用 spock 编写 gro ...
- [bzoj5462]新家
先离线,将询问按照时间排序,维护商店出现和消失 对于每一个询问,先二分枚举答案,假设是ans, 即要求对于区间[l-ans,l+ans],商店的种类数是k(l是询问的位置) (当然需要先将所有位置离散 ...
- AotucCrawler 快速爬取图片
AotucCrawler 快速爬取图片 今天介绍一款自动化爬取图片项目. GitHub: https://github.com/YoongiKim/AutoCrawler Google, Naver ...
- 微信小程序中途加入云开发之坑
一开始未使用云开发的小程序项目,之后想使用云开发能力时,要先删除对应在开发者工具中的项目(先压缩备份源码!),再用开发者工具重新创建,很多时候都需要用这种方式进行处理
- 超算云(GPU服务器)环境配置
最近在用并行超算云GPU服务器(中国国家网格12区)搭建毕设的环境,这里记录一下. 首先,超算云服务器的登录可以采用网页版.也可以采用客户端(超算云地址:https://cloud.paratera. ...
- Codeforces 961F - k-substrings(二分+哈希)
Codeforces 题面传送门 & 洛谷题面传送门 介绍一种奇怪的 \(\Theta(n\log n)\) 的奇怪做法. 注意到这个"border 的长度必须是奇数"的条 ...
- R语言与医学统计图形-【10】ggplot2图形映射
ggplot2绘图系统--图形映射 颜色的映射. #aes中映射变量 ggplot()+geom_point(aes(x=carat,y=price,color='blue'),#color视为单一变 ...
- mysql-计算排名
mysql计算排名,获取行号rowno 学生成绩表数据 SELECT * FROM table_score ORDER BY score DESC; 获取某个学生成绩排名并计算该学生和上一名学生成绩差 ...
- C语言中内存对齐与结构体
结构体 结构体是一种新的数据类型,对C语言的数据类型进行了极大的扩充. struct STU{ int age; char name[15]; }; struct STU a; //结构体实例 str ...