pipeline 使用

使用groovy的一种DSL语言,流程控制 pipeline脚本同其他脚本语言一样,从上到下顺序执行,它的流程控制取决于Groovy表达式,为jenkins用户提供了更巨大的灵活性和可扩展性,本章内容围绕 devops [持续交付实践] pipeline

1.使用声明式写法

agent : 该agent部分指定整个Pipeline或特定阶段将在jenkins环境中执行的位置,具体取决于该agent部分的放置位置。该部分必须在pipeline块内的顶层定义。但stage级使用是可选的

  1):any、none、指定slave

    any 在任何可用的agent 上执行Pipeline或stage

              none 当在pipeline块的顶层使用none时,将不会为整个Pipeline运行分配全局agent ,每个stage部分将需要包含其自己的agent

              label 使用提供的label标签,在Jenkins环境中可用的代理上执行Pipeline或stage。例如:agent { label 'my-defined-label' } 

parameters:配置部署之前参数。

  1):string、password、choice

def name="test1"
def test2(name1){
  println name1
if(name1 == "test3"){
    println "the is a test name1 is ${name}"
}else{
    println "the not is name1 the is ${name}"
    } }
pipeline {
agent any
  

    parameters {
       string(name: 'username', defaultValue: 'guozh10', description: 'username ')
        password(name: 'password', defaultValue: 'password', description: 'password')

choice(name: 'ENV_TYPE', choices: editionName, description: 'test means test env,….')
    }

    stages {
stage('Non-parallel Stage') {
steps {
echo 'This stage will be executed first.'
}
}
stage('parakked Stage') {
when {
branch 'master'
}
parallel {
stage('Branch A') {
agent {
label "for-branch-a"
}
steps {
echo "On Branch A"
} }
stage('Branch B') {
agent {
label "for-branch-b"
}
steps {
echo "On Branch B"
}
}
}
}
}
}

 

脚本式

node ("master"){
stage('Example') {
try {
sh 'exit 1'
}
catch (exc) {
echo 'Something failed, I should sound the klaxons!'
throw
}
}
}
node("slave01") {
stage('Example') {
try {
sh 'exit 1'
}
catch (exc) {
echo 'Something failed, I should sound the klaxons!'
throw
}
}
}

  

jenkins pipeline使用方式的更多相关文章

  1. Jenkins pipeline job 根据参数动态获取触发事件的分支

    此文需要有Jenkins pipeline job 的简单使用经验 场景 我们日常的测试函数, 一般是不能仅仅在本地跑的,还需要一个公共的跑测试的环境,作为合并新的PR的依据. 如果用Jenkins ...

  2. Jenkins pipeline:pipeline 使用之语法详解

    一.引言 Jenkins 2.0的到来,pipline进入了视野,jenkins2.0的核心特性. 也是最适合持续交付的feature. 简单的来说,就是把Jenkins1.0版本中,Project中 ...

  3. Jenkins pipeline:pipeline 语法详解

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

  4. [持续交付实践] Jenkins Pipeline 高可用设计方法

    前言 这篇写好一段时间了,一直也没发布上来,今天稍微整理下了交下作业,部分内容偷懒引用了一些别人的内容.使用Jenkins做持续集成/持续交付,当业务达到一定规模的时候,Jenkins本身就很容易成为 ...

  5. Jenkins pipeline shared library

    Jenkinsfile https://jenkins.io/doc/book/pipeline/jenkinsfile/ Jenkins Pipeline is a suite of plugins ...

  6. Jfrog Maven jenkins pipeline 流水线 培训 简单实验

    1. 公司购买了一套jfrog artifactory ,然后厂商组织了一次培训 本次简单记录一下 jenkins和jfrog 二进制仓库的简单连接使用 2. 前期环境准备. scp jdk的tar包 ...

  7. jenkins Pipeline 使用

    说明 Jenkins pipeline 是一套插件,支持将连续输送管道实施和整合到Jenkins.Pipeline提供了一组可扩展的工具,用于通过管道DSL为代码创建简单到复杂的传送流水线.他目前支持 ...

  8. Jenkins pipeline 语法详解

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

  9. 转~Jenkins pipeline:pipeline 使用之语法详解

    一.引言 Jenkins 2.0的到来,pipline进入了视野,jenkins2.0的核心特性. 也是最适合持续交付的feature. 简单的来说,就是把Jenkins1.0版本中,Project中 ...

随机推荐

  1. thinkphp3.2.3使用formdata的多文件上传

    使用formdata的多文件上传  废话少说 直接上代码 1 JS部分 //选择文件后的处理 function handleFileSelect() { var exerciseid=$(" ...

  2. ActiveMQ使用Zookeeper+LevelDb配置Master/Slave集群

    前言: 本文介绍的AMQ集群是Master-Slave模式的,官网介绍三种方案: (1)基于共享文件系统的,(2)基于JDBC,(3)基于可复制的LevelDB. 关于三种方式的对比网上已经有很多,本 ...

  3. office2016下载安装

    https://jingyan.baidu.com/article/359911f5acfa4357fe030631.html

  4. 设计模式之(十四)责任链模式(Chain of Responsibility)

    在业务场景中,有很多是需要审批的.审核方式还可能常常发生变化,而责任链模式就是为了解决这种场景的情况的. 责任链模式定义:十多个对象都有机会处理请求,从而避免发送者和接受者之间的耦合关系.讲这些对象连 ...

  5. ES6 数组的拓展(五)

    一.扩展运算符(...)将数组转化为以,分割的字符串eg: console.log(...[1,2,3,4]); //1 2 3 4 将字符串转化为数组eg: console.log([...'hel ...

  6. Apache ActiveMQ 远程代码执行漏洞 (CVE-2016-3088) 复现

    漏洞复现 直接写 shell 写 shell 的话,需要写在 admin 或者 api 中,也就是需要登录,没有密码的话完成不了写 shell 操作. 该环境默认的口令为 admin/admin. 访 ...

  7. MES助力伊利集团打造智慧工厂

    1.项目背景介绍 在国家政策和事业部.工厂的实际需求双重背景下,2016年7-9月期间,伊利集团信息部门.业务部门,先后与国内外领先的设备和咨询公司进行了智能制造.智慧工厂等话题的沟通交流,并组织实地 ...

  8. linux线程回收

    int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), v ...

  9. 给easyui datebox扩展一个清空按钮,无侵入

    /** * 给时间框控件扩展一个清除的按钮 */ $.fn.datebox.defaults.cleanText = '清空'; (function ($) { var buttons = $.ext ...

  10. Jenkins+GitLab+Ansible-playbook的环境安装(yum)

    1.安装GitLab 1.1 配置gitlab的yum源 # 参考:https://packages.gitlab.com/gitlab/gitlab-ce/install#bash-rpm curl ...