建筑管道项目詹金斯

问题描述 投票:0回答:2

我有一个要求,

  1. 创建构建作业
  2. 部署到Artifactory
  3. 从artifactory下载工件并部署到测试服务器

我在Build Pipeline中配置了所有3个作业。所有人都拥有共享的Build路径。

这基本上是一个Java作业,我创建了构建作业,它工作正常。我已经使用下游Job来触发部署到神经作业。它使用Maven构建。

在需要手动触发的第二个作业中(我已经配置了这样),运行正常并且它已部署到我已配置的相应存储库中。我使用了通用的artifactory集成插件,并使用已发布的工件推送到artifactory存储库

现在为第3个Job,如何从artifactory下载工件?如果从第二个作业,我们可以将神器URL存储到文件中并将其作为参数化构建读取,我认为它将起作用..

但我没有得到任何线索来获取神器URL。

请帮忙!

java maven jenkins jenkins-pipeline
2个回答
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视图,其中所有这些项目都是上游/下游项目。


0
投票

我想你已经错过了管道的重点。原始的自由式作业开始变得过于复杂,并且在将它们链接在一起时具有很难的依赖性(比如如何将这个作业从这个作业中获取到该作业)。解决方案是创建一个包含阶段的管道。

stages{
    stage('build') {
        steps {
            //build some stuff
        }
    }
    stage('publish') {
        steps {
                  //publish the stuff
        }
    }
    stage('deploy) {
        steps {
            // download and deploy the stuff
        }
    }

在我看来,在你没有重新下载内容的情况下部署你已经拥有的东西可能更有用。看看stash/unstash的步骤。这些将在阶段之间有用。

© www.soinside.com 2019 - 2024. All rights reserved.