pipeline{
// 指定运行此流水线的节点
agent{
node{ label "master" }
}
// 管道运行选项
options{
buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '5', numToKeepStr: '5')
disableConcurrentBuilds()
skipDefaultCheckout true
timeout(5)
retry(3)
timestamps()
}
// 流水线环境变量
environment{
VERSION = "1.1.1"
ENV_TYPE = "DEV"
}
// 流水线参数
parameters{
// 字符串参数
string defaultValue: 'jenkins', description: '输入用户名', name: 'USER_NAME', trim: true
// 选项参数
choice choices: ['yes', 'no'], description: '是否跳过发布', name: 'SKIP_DEPLOY'
}
// 流水线的阶段
stages{
// 阶段1,获取代码
stage("CheckOut"){
// 阶段级别环境变量
environment{
ENV_TYPE = "TEST"
}
options{
timeout(5)
retry(3)
}
steps{
script{
println("获取代码...")
echo "hello world"
// 调用变量
echo "${ENV_TYPE}"
// 调用全局变量
echo "${env.JOB_NAME}"
// 调用参数变量
echo "用户名: ===> ${params.USER_NAME}"
echo "choice 是否跳过发布 ===> ${params.SKIP_DEPLOY}"
}
}
}
stage("Build"){
steps{
script{
println("运行构建...")
}
}
}
stage("test"){
steps{
script{
echo "=======> test"
}
}
// 这个post 针对stage("test")
post{
success{
script{
echo "收集测试报告"
}
}
}
}
stage("Deploy"){
// 阶段运行,条件判断
when{
allOf{
environment name: 'ENV_TYPE', value: 'DEV'
environment name: 'VERSION', value: '1.1.1'
}
}
steps{
script{
echo "Deploy dev..."
}
}
}
}
// 这个post,针对整个pipeline
post{
always{
script{
println("流水线结束后,经常做的事情")
}
}
success{
script{
println("流水线成功后,要做的事情")
}
}
failure{
script{
println("流水线失败后,要做的事情")
}
}
aborted{
script{
println("流水线取消后,要做的事情")
}
}
}
}
- 本文链接:https://jiazone.cn/archives/50.html
- 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
最后修改:2022 年 03 月 25 日
© 允许规范转载