Setup
I have two jobs in Jenkins:
build master
- this builds the code and creates an artifactdeploy master
- this deploys the artifact
Currently, deploy master
has "Copy artifacts from another project" build step using "latest successful build".
My Goal
I want to change this step from "latest successful build" to "specified by a build parameter" so that I can select a specific build when deploying without modifying the configuration of deploy master
job each time.
What I've tried
First, I changed to "specified by a build parameter".
Then I checked the box next to "This project is parameterized" and added a string parameter for BUILD_SELECTOR
.
Then I selected build and enter the input 47
which is a build number from the build master
job.
Additionally I tried the api call
$.ajax({
type: 'POST',
url: 'https://jenkins/job/deploy%20master/build?token=abc7f5abc0c45abcea0646ed858abcde&BUILD_SELECTOR=47'
});
Result
Both times it failed with the following output:
Started by user styfle
[EnvInject] - Loading node environment variables.
Building in workspace C:\Jenkins\jobs\deploy master\workspace
ERROR: Unable to find a build for artifact copy from: build master
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: FAILURE
Question
How do I configure this properly so I can specify a build number (or some other identifier) when deploying?
Update with solution
My solution thanks to Gerold's answer was to add a "Build selector for Copy Artifact" parameter and use a new environment variable to link to my string parameter I already added.
build master
job has a "Post-build Action" of "Archive the artifacts". And I have been able to specify a build by number by editing the config. So I know this part works. – Cryptocrystalline