jenkins Build Flow job 输入参数获取和传递
如果设置Build Flow的job,怎样获取手工输入的参数。
1. 指定构建参数
job配置中,勾选“参数化构建” --> 添加2个string类型的参数 "bdate" ,"edate"。
2. 在 Flow DSL中获取参数
在工作流定义框中(Define build flow using flow DSL:)填写如下脚本
用于获取参数:
out.println("----------------获取参数")
def bdate_input = params.get("bdate")
def edate_input = params.get("edate")
out.println(bdate_input)
out.println(edate_input)
//将参数bdate和edate 传递给任务test_job;
//test_job 必须是有2个参数的job,才能接收该参数。
// 参数名1:参数值,参数名2:参数值 ;参数名是test_job 对应参数的名称。
build( "test_job", bdate: bdate_input, edate: edate_input )
3. 点击 "Build with Parameters" 构建
发现数据已经可以打印出传入的参数了。
4. 在 Flow DSL中写groovy脚本
可以在 Flow DSL写groovy实现一些处理工作。
import static java.util.Calendar.YEAR
import static java.util.Calendar.MONTH
import static java.util.Calendar.DATE
import java.text.ParseException
import java.text.SimpleDateFormat
import java.util.Date
def bdate_input = params.get("bdate")
def bdate_input2 = bdate_input+"-00:00:00"
out.println(bdate_input2)
//out.println(edate_input)
def sdf = new SimpleDateFormat("yyyyMMdd-HH:mm:ss")
def now = sdf.parse(bdate_input2)
//def now = new Date("bdate_input")
def nextYear = now[YEAR]
def prevMonth = now[MONTH]
def nextDate = now[DATE] - 2
def oneYearFromNow = now.updated(year: nextYear, date: nextDate, month: prevMonth).format("yyyy-MM-dd")
out.println(oneYearFromNow)