Jenkins-Pipeline使用示例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins-Pipeline使用示例相关的知识,希望对你有一定的参考价值。
参考技术A示例说明
注:如果需要构建的时候根据git的tag指定镜像的tag,可以直接在dockerfile:build和dockerfile:push后面跟上 -DdockerTag=$TAG
附:
dockerfile插件:
https://github.com/spotify/dockerfile-maven
https://gitee.com/mirrors_spotify/dockerfile-maven
17-Jenkins-Pipeline-声明式流水线语法-environment/options/parameters指令
目录
前言
- 本篇继续Pipeline的指令,来介绍下environment(环境)/options(选项)/parameters(参数)三个指令
environment
- 指定一个 键-值对序列,该序列将被定义为所有步骤的环境变量,或者是特定于阶段的步骤, 这取决于
environment
指令在流水线内的位置 - 顶层流水线块中使用的 environment 指令将适用于流水线中的所有步骤。
- 在一个 stage 中定义的 environment 指令只会将给定的环境变量应用于 stage 中的步骤。
脚本示例
pipeline
agent any
// 顶层定义的变量,适用后面的所有步骤中
environment
flag1 = 'java'
stages
stage('Hello')
environment
flag2 = 'python'
steps
echo 'Hello World'
// 使用顶层定义的变量
echo flag1
// 使用stage中定义的变量
echo flag2
options
- 允许从流水线内部配置特定于流水线的选项,这里介绍两个选项timeout和retry
- timeout:设置流水线运行的超时时间, 在此之后,Jenkins将中止流水线
- retry:在失败时, 重新尝试整个流水线的指定次数
脚本示例
pipeline
agent any
options
// 超过1小时,停止流水线
timeout(time: 1, unit: 'HOURS')
// 失败时重试3次
retry(3)
stages
stage('Hello')
steps
echo 'Hello World'
parameters
- 提供了一个用户在触发流水线时应该提供的参数列表,这些用户指定参数的值可通过
params
对象提供给流水线步骤 - 说明:第一次Build是Build Now --> Build 一次后才是 Build with Parameters
脚本示例
pipeline
agent any
parameters
// 字符串参数
string(name: 'branch', defaultValue: 'master', description: '分支名')
// 布尔参数
booleanParam(name: 'DEBUG_BUILD', defaultValue: true, description: '布尔参数')
// 文本参数
text(name: 'Welcome_text', defaultValue: 'One\\nTwo\\nThree\\n', description: '文本参数')
// 选项参数
choice(name: 'ENV_TYPE', choices: ['test', 'dev', 'product'], description: '测试环境选项')
// 密码参数
password(name: 'PASSWORD', defaultValue: '123456', description: '密码')
stages
stage('Hello')
steps
echo 'Hello World'
// 使用参数,格式:$params.key
echo "分支 $params.branch"
echo "布尔 $params.DEBUG_BUILD"
echo "文本 $params.Welcome_text"
echo "选项 $params.ENV_TYPE"
echo "密码 $params.PASSWORD"
以上是关于Jenkins-Pipeline使用示例的主要内容,如果未能解决你的问题,请参考以下文章
17-Jenkins-Pipeline-声明式流水线语法-environment/options/parameters指令
16-Jenkins-Pipeline-声明式流水线语法-stages/steps/post指令