How to access Hudson job1 artifacts from another job2?

前端 未结 3 821
再見小時候
再見小時候 2021-01-05 04:10

We have a production job and a nightly job for a project in Hudson. The production job needs to pull off some artifacts from a specific nightly build # (which is provided as

相关标签:
3条回答
  • 2021-01-05 04:33

    The Copy Artifact plugin seems to be capable of doing this.

    Another approach could be to fetch the artifact via

    http://server/jobs/job1/[build #]/artifacts/
    
    0 讨论(0)
  • 2021-01-05 04:39

    We have similar need and use the following system groovy:

    import hudson.model.*
    
    def currentBuild = Thread.currentThread().executable;
    currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'FAILURE')));
    def buildJob = Hudson.instance.getJob("ArtifactJobName");
    def artifacts = buildJob.getLastBuild().getArtifacts();
    if (buildJob.getLastBuild().getResult() == Result.SUCCESS && artifacts != null && artifacts.size() > 0) {
        currentBuild.addAction(new ParametersAction(new StringParameterValue('VARIABLE_NAME', artifacts[0].getFileName())));
        currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'SUCCESS')));
    }
    

    This creates a VARIABLE_NAME with the artifact name in it from ArtifactJobName, which we use since they are all stored in a specific folder. I am not sure what will happen if you have multiple artifacts, but it seems you could get them from the artifacts array.

    You could use getLastSuccessfulBuild to prevent issue when another ArtifactJobName is being build at the moment and you get array with null.

    0 讨论(0)
  • 2021-01-05 04:40

    You can use "Build Environment" configuration tools in the job's configuration page. Tick the Configure M2 Extra Build Steps box and add an Execute Shell which grep things from the desired artifact.

    0 讨论(0)
提交回复
热议问题