繁体   English   中英

如何使用Jenkins声明性管道将文件上传到Artifactory

[英]How to upload a file using Jenkins Declarative Pipeline to Artifactory

我有一个Angular webapp,我希望使用Jenkins Declarative管道将其作为工件发布到Artifactory。 我该怎么做呢?

要上载到Artifactory,请使用rtUpload命令。 例如:

steps {
    sh 'npm run build:production'

    echo "Deploy to Artifactory"

    script {
      VERSION = sh(script: 'cat package.json | grep \'version\' | grep -o -E \'[0-9]+\\.[0-9]+\\.[0-9]+(\\-SNAPSHOT)?\'',
                  returnStdout: true).trim()
    }

    sh "sed 's/REPLACE_VERSION_HERE/${VERSION}/g' upload-pom.xml.template > upload-pom-${VERSION}.xml"

    zip zipFile: "myapp-webapp-${VERSION}-distribution.zip", archive: true, dir: 'dist'

    rtUpload (
        serverId: "main",
        spec:
            """{
              "files": [
                {
                  "pattern": "myapp-webapp-(*)-distribution.zip",
                  "target": "reponame/com/company/product/myapp-webapp/{1}/myapp-webapp-{1}-distribution.zip"
                },
                {
                  "pattern": "upload-pom-(*).xml",
                  "target" : "reponame/com/company/product/myapp-webapp/{1}/myapp-webapp-{1}.pom"
                }
             ]
            }""",
        failNoOp: true
    )
  }

代码执行以下操作:

  1. 运行npm生成版本
  2. package.json的版本解压缩为VERSION变量。
  3. 准备一个“虚拟” pom.xml文件
  4. 创建包含Angular应用程序的dist目录的zip。
  5. 使用rtUpload命令上传zip文件+ pom文件

上传pom文件以确保以这种方式上载的SNAPSHOT版本正常工作。 没有它,Artifactory上没有生成Maven元数据,Maven也不会下载新的SNAPSHOT版本(例如,如果你在基于Maven的Spring Boot应用程序中使用这个工件)。 有了这个,一切都可以与Maven一起使用。

upload-pom.xml.template应该如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/xsd/maven-4.0.0.xsd"
  xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.company.product</groupId>
  <artifactId>myapp-webapp</artifactId>
  <version>REPLACE_VERSION_HERE</version>
  <packaging>zip</packaging>
  <description>Dummy pom.xml for Artifactory</description>
</project>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM