管道插件
您可以使用管道插件 https://github.com/jenkinsci/pipeline-plugin(以前workflow-plugin
).
它配备了很多例子 https://github.com/jenkinsci/pipeline-examples,你可以按照这个tutorial https://dzone.com/refcardz/continuous-delivery-with-jenkins-workflow.
e.g.
// build
stage 'build'
...
// deploy
stage 'deploy'
...
// run tests in parallel
stage 'test'
parallel 'functional': {
...
}, 'performance': {
...
}
// promote artifacts
stage 'promote'
...
构建流程插件
您还可以使用构建流程插件 https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin。它简直太棒了 - 但它已被弃用(开发冻结)。
设置职位
创造就业机会:
- build
- deploy
- 性能测试
- 功能测试
- 晋升
设置上游
-
在上游(这里build
)创建一个独特的工件,例如:
echo ${BUILD_TAG} > build.tag
归档build.tag
人工制品。
- 记录指纹以跟踪文件使用情况;如果有任何作业复制相同的内容
build.tag
归档并记录指纹,您将能够追踪父母。
- 配置为在以下时间获得晋升
promotion
工作成功。
设置下游作业
- 我使用2个参数
PARENT_JOB_NAME
and PARENT_BUILD_NUMBER
-
从上游复制工件build
工作使用复制神器插件 https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin
- 项目名称=
${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)
祝你好运。