【问题标题】:Deploy all artifacts to Artifactory with jenkins pipeline使用 jenkins 管道将所有工件部署到 Artifactory
【发布时间】:2019-03-02 14:24:59
【问题描述】:

我们有一个运行多个微服务器(jar)的产品。这些都是 Maven 项目。作为 CI/CD 管道的一部分,我首先为每个微服务创建了 maven 作业。这些作业创建 JAR 文件。在所有作业成功完成制作 jar 文件后,我想将所有这些 jar 文件部署到 aftifactory。

Artifactory 插件提供了在创建 JAR 后我们可以部署到 artifactory 的功能。但是这种方法的问题是,它会在每个作业构建成功后部署到工件。
所有工作成功完成后产品稳定。所以有了这个确认,我必须开始部署。

node {
    def server
    def buildInfo
    def rtMaven

    stage ('Clone') {
        git url: 'https://github.com/jfrogdev/project-examples.git'
    }

    stage ('Artifactory configuration') {
        // Obtain an Artifactory server instance, defined in Jenkins --> Manage:
        server = Artifactory.server SERVER_ID

        rtMaven = Artifactory.newMavenBuild()
        rtMaven.tool = MAVEN_TOOL // Tool name from Jenkins configuration
        rtMaven.deployer releaseRepo: 'libs-release-local', snapshotRepo: 'libs-snapshot-local', server: server
        rtMaven.resolver releaseRepo: 'libs-release', snapshotRepo: 'libs-snapshot', server: server
        rtMaven.deployer.deployArtifacts = false // Disable artifacts deployment during Maven run

        buildInfo = Artifactory.newBuildInfo()
    }

    stage ('Test') {
        rtMaven.run pom: 'maven-example/pom.xml', goals: 'clean test'
    }

    stage ('Install') {
        rtMaven.run pom: 'maven-example/pom.xml', goals: 'install', buildInfo: buildInfo
    }

    stage ('Deploy') {
        rtMaven.deployer.deployArtifacts buildInfo
    }

    stage ('Publish build info') {
        server.publishBuildInfo buildInfo
    }
} 

上述管道语法从 git 克隆代码并创建包并部署它。但我不需要克隆和创建包。我只需要部署其他工作已经构建的。请帮忙解决这个问题

【问题讨论】:

  • 如果只需要部署,有没有考虑过使用Artifactory的CLI或者REST API?您将无法通过这种方式将构建信息发布到 Artifactory,但您可以轻松地将任何文件上传到您的 Artifactory 存储库。
  • 是的。如果我们使用 REST API,我们将无法获取构建信息。我只使用 Artifactory 插件。在每个微服务构建完成后部署到工件中

标签: jenkins jenkins-pipeline artifactory


【解决方案1】:

我认为您的方法是错误的:您将管道视为作业,但实际上管道是作业的集合,其中每个管道步骤都可以与一系列作业相关联。每个管道步骤都与特定的“阶段”相关。 一旦你进入这个视角,你要么进入管道方法,将其他作业迁移到管道中,要么只是使用旧样式并定义一个部署作业,该作业在你已经拥有的作业之后执行......

我希望这确实有意义,因为这是我对管道的理解;我也是新手。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 2019-03-26
    • 2018-10-05
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多