Hello,
 
I have previously used the Jenkins CLI to create a new job from a template. 
However, (known issue) I am unable to copy Promoted Builds steps as part of 
this. So I have gone down the path of trying to robocopy the template job 
to a new job name, and search/replace values within. For some reason 
Jenkins is not picking up the new job.
 
Here are the basic steps my script is executing

   1. Robocopy "\\$JenkinsServer\jobs\$TemplateJob" "
   \\$JenkinsServer\jobs\$NewBuildJobName" *.* /E /XD .git /XF *.log
   2. Then using Powershell: replace "##RELEASEVERSION##" flag with my new 
   release version (ie. v17)
   3. Then using Powershell: replace "<disabled>true</disabled>" with 
   "<disabled>false</disabled>"
   4. Then write the xml file back out to "
   \\$JenkinsServer\jobs\$NewBuildJobName\config.xml"
   5. I then look "\\$JenkinsServer\jobs\$jobname\promotions" and iterate 
   through each promotion level
   6. I replace "<project>$templateJobName</project>" with 
   "<project>$jobname</project>"
   7. I then try to use the CLI to reload-configuration (which doesn't work 
   for me, so I do it manually in the UI)
      1. Doesn't work: java -jar ..\bin\jenkins-cli.jar -s "
      http://$JenkinsServer/"; reload-configuration  --username $UserName 
      --password $Password
   
 
Once I reload configuration, Jenkins does not see and pick up the new 
build. I have not been able to find any other config files where build jobs 
are stored/configuration apart from the jobs folder.
 
One thing I have noticed through a folder compare with BeyondCompare, is 
that the new files are Unicode, and not UTF-8, could have be causing my 
Jenkins issues?
 
For fun, I have attached my script, if you have any feedback/suggestions 
I'm all ears.
 
Assumptions: 

A couple functions in the script take a parameter $JenkinsServer, which 
defaults to localhost, you will need to update as per your environment.

Set these values as per your needs
$ReleaseVersion = "v1.0"
$ProjectToBuild = "MyNewProject"

You have a 'template' job created in the naming format of "template-JobName"
You run Powershell as an Admin

 
Thank you.
 
Mike
 

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Attachment: Functions_JenkinsAutomation2.ps1
Description: Binary data

Reply via email to