一.最简结构

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声明式语法的更多相关文章

  1. Jenkins 在声明式 pipeline 中并行执行任务

    在持续集成的过程中,并行的执行那些没有依赖关系的任务可以缩短整个执行过程.Jenkins 的 pipeline 功能支持我们用代码来配置持续集成的过程.本文将介绍在 Jenkins 中使用声明式 pi ...

  2. 声明式语法重写基于容器CICD构建流水线

    调试了一下午,一句话都不想说了,看代码. ----- 参考文档 https://blog.csdn.net/weixin_42010394/article/details/90670945 实践代码 ...

  3. Jenkins pipeline:pipeline 语法详解

    jenkins  pipeline 总体介绍 pipeline 是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. ...

  4. Jenkins pipeline 语法详解

    原文地址http://www.cnblogs.com/fengjian2016/p/8227532.html pipeline 是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节 ...

  5. Jenkins pipeline 并行执行任务流

    笔者在<Jenkins 在声明式 pipeline 中并行执行任务>一文中介绍了如何在声明式 pipeline 中执行并行的任务.前一段时间,Jenkins 发布了 1.3 版的声明式 p ...

  6. Docker的Jenkins Pipeline工作流

    原文地址:http://www.youruncloud.com/blog/127.html 分享主题 一个软件产品的开发周期中,尤其是敏捷开发,持续集成和持续部署是必不可少的环节,而随着产品的丰富,模 ...

  7. jenkins pipeline的声明式与脚本式

    自从Jenkins 2.0 版本升级之后,支持了通过代码(Groovy DSL)来描述一个构建流水线,灵活方便地实现持续交付,大大提升 Jenkins Job 维护的效率,实现从 CI 到 CD 到转 ...

  8. Jenkins教程——从安装到部署Docker服务(二)声明式流水线HelloWorld

    前言 本文通过一个声明式流水线的HelloWorld程序做一下流水线基础入门,对常用的流水线参数进行简要说明 什么是流水线 现实中的流水线 流水线比较好理解,类比于现实生活中的生产流水线,每个流程只做 ...

  9. Jenkins Pipeline 语法

    Pipeline语法 先讲Declarative Pipeline,所有声明式管道都必须包含在pipeline块中: 123 pipeline { /* insert Declarative Pipe ...

随机推荐

  1. Scrapy入门到放弃05:让Item在Pipeline中飞一会儿

    前言 "又回到最初的起点,呆呆地站在镜子前". 本来这篇是打算写Spider中间件的,但是因为这一块涉及到Item,所以这篇文章先将Item讲完,顺便再讲讲Pipeline,然后再 ...

  2. Prometheus+Grafana监控Kubernetes

    涉及文件下载地址:链接:https://pan.baidu.com/s/18XHK7ex_J0rzTtfW-QA2eA 密码:0qn6 文件中需要下载的镜像需要自己提前下载好,eg:prom/node ...

  3. Swift-技巧(六)设置按钮状态并更改

    摘要 按钮是一个宝藏控件,可以在设置的时候就对不同的状态添加图片.文本,甚至更改背景.在不同的展示场景中更改到不同的状态显示就好.恰恰是如何更改状态着实让我懵了一阵,所以记录一下过程.如果没有兴趣了解 ...

  4. 在cmd中使用vim编译器

    下载地址:http://www.vim.org/download.php#pc 下载GVIM,配置下path环境变量就可以在cmd中使用vim了 把vim.exe复制一份,更名为vi.exe,就可以直 ...

  5. [atAGC052F]Tree Vertices XOR

    结论 注意到如果$x$周围有偶数个1,对$x$操作显然不会改变$a_{x}$,因此不妨强制操作的点周围要有奇数个1,不难发现此时恰好会改变该点,即令$a_{x}=a_{x}\oplus 1$ 称$\{ ...

  6. [源码解析] PyTorch 分布式(9) ----- DistributedDataParallel 之初始化

    [源码解析] PyTorch 分布式(9) ----- DistributedDataParallel 之初始化 目录 [源码解析] PyTorch 分布式(9) ----- DistributedD ...

  7. vue简单语法梳理

    小图不够清楚,可以点击大图查看.

  8. Codeforces 587F - Duff is Mad(根号分治+AC 自动机+树状数组)

    题面传送门 第一眼看成了 CF547E-- 话说 CF587F 和 CF547E 出题人一样欸--还有另一道 AC 自动机的题 CF696D 也是这位名叫 PrinceOfPersia 的出题人出的- ...

  9. 毕业设计之dns搭建:

    [apps@dns_sever ~]$ sudo yum install -y bind [apps@dns_sever ~]$ sudo vim /etc/named.conf // // name ...

  10. DNS域名解析全过程

    一张图看懂DNS域名解析全过程   DNS域名解析是互联网上非常重要的一项服务,上网冲浪(还有人在用这个词吗?)伴随着大量DNS服务来支撑,而对于网站运营来说,DNS域名解析的稳定可靠,意味着更多用户 ...