我正在编写一个Jenkins(2.6版)DSL,它允许我签出并构建一个Maven项目,运行一个shell脚本并将其部署到Artifactory。
mavenJob("test-build") {
multiscm {
...
}
steps {
shell ("bash build-scripts/script.sh")
}
goals("clean install")
configure{ project ->
project/publishers << 'org.jfrog.hudson.ArtifactoryRedeployPublisher' {
details {
artifactoryUrl('<url>')
artifactoryName('<name>')
repositoryKey('libs-release-local')
snapshotsRepositoryKey('libs-snapshot-local')
}
deployBuildInfo(true)
deployArtifacts(true)
evenIfUnstable(false)
}
publishers {
archiveJunit('target/*/.xml')
publishBuilder {
discardOldBuilds(7,10)
}
}
}
只有当steps{}
阻止steps
阻止mavenJob
时才允许该作业。我尝试使用freeStyleJob
,但ArtifactoryRedeployPublisher
无法使用。
运行我的shell脚本需要做什么?
答案 0 :(得分:1)
如果您希望shell脚本在maven目标之前运行,则可以使用此
preBuildSteps {
// Runs a shell script.
shell(String command)
}
或者,如果您希望shell脚本在maven目标之后运行,则可以使用此脚本
mavenJob('example-1') {
postBuildSteps {
shell("echo 'run after Maven'")
}
}
有关详细信息,您可以查看作业dsl api viewer https://jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.jobs.MavenJob.postBuildSteps
这是一个非常简单方便的工具。
BR,
添