将npm .tgz推送到Artifactory时,我可以发布构建信息吗?

时间:2017-09-28 05:53:24

标签: jenkins npm jenkins-pipeline artifactory

如何在将npm注册表推送到Artifactory时发布构建信息?

我可以使用enter image description here

与Maven一起完成
npm publish

目前我只使用npm install @types/jquery

但我想为我的tgz文件提供Builds信息。有可能吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

这里是一个简单构建的示例管道代码。 这个脚本唯一的优点是我无法弄清楚如何填充依赖信息。

node {
   stage('Cleaning') {
       deleteDir()
   }
   stage('Preparing') { // for display purposes
      // Get some code from Git
      git credentialsId: 'MyGitCredential', url: 'http://gitRepourl/MyGitProject.git'
   }
   stage('Fetch Dependencies') {
      // Run the node build
      nodejs(nodeJSInstallationName: 'MyNode', configId: 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa') {
        sh 'npm install'
      }
   }
   stage('Build') {
      // Run the node build                              
      nodejs(nodeJSInstallationName: 'MyNode', configId: 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa') {
        sh 'npm pack'
      }
   }
   stage('Test') {
      // Run the node build
      nodejs(nodeJSInstallationName: 'MyNode', configId: 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa') {
        sh 'npm run test'
      }
   }
   stage('Results') {
      junit 'test-results.xml' // need to setup karma junit reporter
      archive 'myArtefact-*.tgz'
   }
   stage('Artifactory') {
       def uploadSpec = """{
          "files": [
            {
              "pattern": "myArtefact-*.tgz",
              "target": "artifactory-npm-repo/myArtefact/"
            }
         ]
        }"""
        def server = Artifactory.server 'MyArtifactory'
        def buildInfo = server.upload(uploadSpec)
        buildInfo.retention maxBuilds: 2
        server.publishBuildInfo(buildInfo)
   }
}

但是有了这个,你已经在神器

中得到了你的构件和工件