我有一个Jenkins管道作业,它使用Job DSL plugin创建了另一个pipelineJob(用于事后清理所有内容)。
pipeline {
agent { label 'Deployment' }
stages {
stage('Clean working directory and Checkout') {
steps {
deleteDir()
checkout scm
}
}
// Complex logic omitted
stage('Generate cleanup job') {
steps {
build job: 'cleanup-job-template',
parameters: [
string(name: 'REGION', value: "${REGION}"),
string(name: 'DEPLOYMENT_TYPE', value: "${DEPLOYMENT_TYPE}")
]
}
}
}
}
问题是,我需要这个新生成的作业只构建一次,然后,如果构建成功,则应该删除该作业。
pipeline {
stages {
stage('Cleanup afterwards') {
// cleanup logic
}
}
post {
success {
// delete this job?
}
}
}
我想,这可以使用Pipeline Post Action来完成,但是,不幸的是,我找不到任何开箱即用的解决方案。有可能实现这一点吗?
2条答案
按热度按时间tf7tbtn21#
你可以使用post Groovy来实现这一点,然后你需要编写一些groovy代码来删除作业:
测试了两个用例并在Jenkins 2.89.4上运行
x9ybnkn62#
您应该在一个作业中完成所有这些操作,而不是创建和删除作业。为此请使用多个阶段,例如部署测试系统、运行测试/等待测试完成、取消部署。无需额外的作业。示例发布在此处:Jenkins管线是否可以有可选输入步骤?