我有要求,
我在Build Pipeline中配置了所有3个作业。 所有人都拥有共享的构建路径。
这基本上是一个Java作业,我创建了构建作业,它运行正常。我已经使用下游Job来触发部署到神经作业。它正在使用Maven构建。
在需要手动触发的第二个作业中(我已经配置了这样),运行正常并且它已部署到我已配置的相应存储库中。我使用了通用的artifactory集成插件,并使用已发布的工件来推送到artifactory存储库
现在为第三份工作,如何从神器中下载神器? 如果从第二个作业,我们可以将神器URL存储到一个文件并将其作为参数化构建读取,我认为它将起作用..
但我没有得到任何线索来获取神器URL。
请帮忙!
答案 0 :(得分:1)
我能够通过以下方法实现这一点。
1.创建一个构建工作 - >这将从存储库下载代码并执行maven构建。 Pom.xml的调整方式使得我得到一个tar.gz文件作为输出。内部版本号和信息分支名称保存在同一工作区的文件中。
2.创建了Artifactory上传作业 - >我使用mvn deploy:deploy-file命令将工件部署到Artifactory中的特定远程存储库。这有一个版本参数,我传递内部版本号,它有groupID& artifactId的。因此,一旦maven部署文件上传文件,它将上传神秘的确定路径。由于我已经提供了所有细节,
我构建了Artifactory URL并将其保存在我获取内部版本号和分支名称的同一文件中。
3.为特定服务器创建部署作业 - >我创建了一个部署脚本并将脚本保存在服务器中,该服务器将URL作为参数。从工作区上的文件我能够检索URL并对服务器执行ssh。加载bash配置文件并将URL传递给部署脚本。之后,它下载了工件并部署到服务器。
创建这些作业后,我将构建作业配置为使用Post Build手动项目,并将Artifactory上载作为作业名称。而且对于Artifactory Job,我将部署作为Post Build Manual项目Job。
通过这种方式,我创建了一个Build Pipeline视图,其中所有这些项目都是上游/下游项目。
答案 1 :(得分:0)
我认为你错过了管道的重点。原始的自由式作业开始变得过于复杂,并且在将它们链接在一起时具有很难的依赖性(比如如何将这个作业从这个作业中获取到该作业)。解决方案是创建一个具有阶段的管道。
stages{
stage('build') {
steps {
//build some stuff
}
}
stage('publish') {
steps {
//publish the stuff
}
}
stage('deploy) {
steps {
// download and deploy the stuff
}
}
在我看来,在你的情况下,只需部署你已经拥有的东西而不重新下载这些东西可能会更有用。看看stash/unstash
步骤。这些将在阶段之间有用。