管道插件
您可以使用管道插件(以前称为workflow-plugin
)。
它附带许多示例,您可以按照本教程进行操作。
例如
// build
stage 'build'
...
// deploy
stage 'deploy'
...
// run tests in parallel
stage 'test'
parallel 'functional': {
...
}, 'performance': {
...
}
// promote artifacts
stage 'promote'
...
构建流程插件
您还可以使用Build Flow插件。简直太棒了-但已弃用(开发冻结)。
设置工作
创建以下工作:
设置上游
在上游(在此处build
)创建一个唯一的工件,例如:
echo ${BUILD_TAG} > build.tag
存档build.tag
工件。
- 记录指纹以跟踪文件使用情况;如果有任何作业复制了相同的
build.tag
文件并记录了指纹,则您将能够跟踪父级。
- 配置为在
promotion
工作成功时得到提升。
设置下游作业
- 我用2个参数
PARENT_JOB_NAME
和PARENT_BUILD_NUMBER
build
使用复制工件插件从上游作业复制工件
- 项目名称=
${PARENT_JOB_NAME}
- 哪个版本=
${PARENT_BUILD_NUMBER}
- 要复制的工件=
build.tag
记录指纹;这很关键。
设置下游推广工作
与上述步骤相同,建立上下游关系。它不需要任何构建步骤。您可以执行其他构建后操作,例如“嘿QA,现在轮到您了”。
创建一个构建流程作业
// start with the build
parent = build("build")
parent_job_name = parent.environment["JOB_NAME"]
parent_build_number = parent.environment["BUILD_NUMBER"]
// then deploy
build("deploy")
// then your qualifying tests
parallel (
{ build("functional tests",
PARENT_BUILD_NUMBER: parent_build_number,
PARENT_JOB_NAME: parent_job_name) },
{ build("performance tests",
PARENT_BUILD_NUMBER: parent_build_number,
PARENT_JOB_NAME: parent_job_name) }
)
// if nothing failed till now...
build("promotion",
PARENT_BUILD_NUMBER: parent_build_number,
PARENT_JOB_NAME: parent_job_name)
// knock yourself out...
build("more expensive QA tests",
PARENT_BUILD_NUMBER: parent_build_number,
PARENT_JOB_NAME: parent_job_name)
祝好运。