在Jenkins建造之前从另一个工作中提取文件?

时间:2011-09-02 14:20:26

标签: hudson jenkins

希望你能帮我解决这个问题。我有一个名为“Template”的作业,它生成一个template.xml文件。我有几个使用此template.xml文件的其他作业。但是,在构建之前,我希望他们可以从“模板”作业工作区中提取最新的template.xml。

4 个答案:

答案 0 :(得分:24)

在“模板”作业中,在构建后操作下,选择使用存档选项构建xml文件。

然后,您可以使用“Copy Artifact Plugin”将其复制到所有其他作业。

Jenkins Job Setup for Artifact Generator Projectenter image description here

Jenkins Job Setup for Artifact User Projectenter image description here

答案 1 :(得分:5)

Template作业中,您可以将template.xml文件存档为工件,然后它可以通过类似于以下内容的URL用于其他作业:

http://myserver/jenkins/job/myjob/lastSuccessfulBuild/artifact/template.xml

答案 2 :(得分:1)

我在Jenkinsfile中使用了 Copy Artifacts 插件。这里是一个例子:

产生工件的工作中,您应该执行以下操作:

pipeline {
 options {
  copyArtifactPermission ‘*’ //Here you can specify the job name also
}
  stages {
    stage(“Run") {
      ...
      archiveArtifacts artifacts: “my_artifact.yaml"
    }
  }
}

消耗工件的工作中,您可以使用类似

的方法:
stage("Consumer") {
  steps {
    script {
        copyArtifacts filter: “my_artifact.yaml", projectName: 'PRODUCER_JOB', 
          selector: lastSuccessful()

    }
  }
}

答案 3 :(得分:0)

在我看来,我采用了一种非常好的方法。我以通常的布局(ubuntu 16.04服务器)运行jenkins,我需要使用驻留在dev-resources工作中的相同checkstyle.xml配置文件来调用checkstyle maven插件:

enter image description here

比我打电话给mvn checkstyle:

enter image description here

希望它对其他人有用。