0
点赞
收藏
分享

微信扫一扫

Jenkins Pipeline Syntax


Pipeline和Stage不一定运行在一个OS内;一个Stage一定运行在一个OS内。
Pipeline 分为Declarative and Scripted Pipeline ;
Step是Pipeline最基础的部分,Step告诉Jenkins干什么,在Declarative and Scripted Pipeline 中充当基础构建代码块。

Declarative Pipeline

Declarative Pipeline是Jenkins Pipeline最近新增的特性,在Pipeline之上提供一种一种更简单的语法;
所有有效的代码必须在pipeline代码块中:

pipeline {
/* insert Declarative Pipeline here */
}

Jenkinsfile Structure

四个Section,agent/post/stages/steps
agent:给Jenkins提供足够的信息,以选择一个Pipeline执行的地方;
post:可以定义在pipeline level或者stage level,可以在其中定义一个或者多个与step中一样的内容;
stages:可以定义多个stage指令,多个stage之间是离散的,每个stage可以有自己的agent定义,多个stage可能执行在不同的os里;
steps:​​​Pipeline Steps reference​​列出了所有内置的和在Jenkins插件中心的插件所提供的step指令;除了这些指令,还有一个script指令,可以提供在其中编写groovy脚本的能力;

Directives

Jenkins及其插件为我们提供了很多的指令,大大增强了Pipeline的功能,下面介绍的这些指令与我们通过Jenkins UI新建任务时,所填写的扩展点一致,包括environment/options/parameters等等。

  1. environment:可以定义在pipeline或者stage中,提供一个或者多个运行时环境变量;credentials() 的用法;
  2. options:pipeline or stage
  3. parameters:jenkins 触发 pipeline时,会将定义的参数传给pipeline;目前支持string和boolean两种类型的参数;
  4. triggers:cron/pollSCM/upstream
  5. stage:
  6. tools:目前支持maven/jdk/gradle,自动安全到agent并加入到PATH中
  7. input:使用​​Pipeline: Input Step​​,接收用户的输入交互
  8. when:stage level,整个stage是否运行;可以判定的因素包括branch/environment/expression;not/allOf/anyOf的互相嵌套组合上面的判定因素可以实现复杂的条件判定;beforeAgent可以选择是进入agent之前还是之后执行when里面的判定逻辑;
  9. Parallel:https://jenkins.io/doc/book/pipeline/syntax/#evaluating-code-when-code-before-entering-the-code-stage-code-s-code-agent-code


举报

相关推荐

0 条评论