jenkins创建pipeline流水线
说明:什么是pipeline?简单来说就是一套运行于jenkins上的工作流框架,将原本运行于单个或多个节点的任务连接起来,实现单个任务难以完成的发布流程。(使用场景:将多个jenkins构建任务轻松集成)
pipeline实际使用意义
构建pipeline任务
- 确保pipeline插件已经安装。如果没有可以在"系统管理->插件管理"中搜索安装
- 创建pipeline job
3. 创建成功之后,尝试写一个简单的pipeline脚本
4. 保存成功,构建job
5. 流水线语法使用,点击上图中的流水线语法,可以自动生成相应的命令,然后将命令替换到step中即可
pipeline语法简单介绍
pipeline {
agent any
stages {
stage('test') {
steps {
build 'maventest'
}
}
}
}
agent
在任何可用的agent 上执行Pipeline或stage。例如:agent any。还有其他的agent后面可跟的参数,例如:none,label,node,docker
- none: 当在pipeline块的顶层使用none时,将不会为整个Pipeline运行分配全局agent ,每个stage部分将需要包含其自己的agent部分。
- label:使用提供的label标签,在Jenkins环境中可用的代理上执行Pipeline或stage。例如:agent { label 'my-defined-label' }
- node:agent { node { label 'labelName' } },等同于 agent { label 'labelName' },但node允许其他选项(如customWorkspace)。
- docker:定义此参数时,执行Pipeline或stage时会动态供应一个docker节点去接受Docker-based的Pipelines。docker还可以接受一个args,直接传递给docker run调用。例如:agent { docker 'maven:3-alpine' }
stages
- 包含一个或多个stage的序列,Pipeline的大部分工作在此执行。建议stages至少包含至少一个stage指令,用于连接各个交付过程,如构建,测试和部署等。
step
- steps包含一个或多个在stage块中执行的step序列。
总结
- Pipeline最基本的部分是“step”。基本上,step告诉Jenkins 要做什么,并且作为Declarative Pipeline和Scripted Pipeline语法的基本构建块。
- Pipeline支持两种语法:Declarative Pipeline(在Pipeline 2.5中引入,结构化方式)和Scripted Pipeline,两者都支持建立连续输送的Pipeline。
- 所有有效的Declarative Pipeline必须包含在一个pipeline块内,例如:
pipeline { /* insert Declarative Pipeline here */ }
-
Declarative Pipeline中的基本语句和表达式遵循与Groovy语法相同的规则 ,但有以下例外:
a.Pipeline的顶层必须是块,具体来说是:pipeline { }
b.没有分号作为语句分隔符。每个声明必须在自己的一行
c.块只能包含Sections, Directives, Steps或赋值语句。