运行 shell Jenkins DSL mavenJob 中的脚本
Running shell scripts in a Jenkins DSL mavenJob
我正在编写一个 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{}
块时该作业才有效,因为 mavenJob
中不允许 steps
。我试过使用 freeStyleJob
,但 ArtifactoryRedeployPublisher
不起作用。
我必须如何处理 运行 我的 shell 脚本?
如果你想让shell脚本运行领先于maven目标,你可以使用这个
preBuildSteps {
// Runs a shell script.
shell(String command)
}
或者如果你想要 shell 脚本 运行 在 maven 目标之后,你可以使用这个
mavenJob('example-1') {
postBuildSteps {
shell("echo 'run after Maven'")
}
}
详情可以查看job dsl api viewer
https://jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.jobs.MavenJob.postBuildSteps
这是一个非常简单易用的工具。
Br,
蒂姆
我正在编写一个 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{}
块时该作业才有效,因为 mavenJob
中不允许 steps
。我试过使用 freeStyleJob
,但 ArtifactoryRedeployPublisher
不起作用。
我必须如何处理 运行 我的 shell 脚本?
如果你想让shell脚本运行领先于maven目标,你可以使用这个
preBuildSteps {
// Runs a shell script.
shell(String command)
}
或者如果你想要 shell 脚本 运行 在 maven 目标之后,你可以使用这个
mavenJob('example-1') {
postBuildSteps {
shell("echo 'run after Maven'")
}
}
详情可以查看job dsl api viewer https://jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.jobs.MavenJob.postBuildSteps
这是一个非常简单易用的工具。
Br,
蒂姆