I can not use variables in Stream Codeline for Pipeline projects. The variable is not replaced with it's correct value.
hudson.AbortException: Error in client specification.
Error detected at line 18.
Stream '//User/' is not the correct format of '//depotname/string' at org.jenkinsci.plugins.p4.client.ClientHelper.clientLogin(ClientHelper.java:167)
at org.jenkinsci.plugins.p4.client.TempClientHelper.<init>(TempClientHelper.java:40)
at org.jenkinsci.plugins.p4.scm.P4SCMFileSystem.<init>(P4SCMFileSystem.java:26)
at org.jenkinsci.plugins.p4.scm.P4SCMFileSystem$BuilderImpl.build(P4SCMFileSystem.java:77)
Caused: java.io.IOException
at org.jenkinsci.plugins.p4.scm.P4SCMFileSystem$BuilderImpl.build(P4SCMFileSystem.java:79)
at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:198)
at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:174)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:108)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:67)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE
Hi Daniel Hoerner - Thanks again. I was easily able to reproduce this so will pass to the developers.
A couple of notes (that you may already know)
Parameterized builds probably will not work correctly with polling. We rely on known workspace specs to work out what needs to be built.
Please include your parameter in the workspace name. For example jenkins-${NODE_NAME}${JOB_NAME}${EXECUTOR_NUMBER}-${PatchNumber}. Again this will help with changelist calculation for the build and the problems of moving workspaces between streams by an automated system.
Reproduction steps:
Create a pipeline job.
Choose 'This project is parameterized'.
Create a 'String' parameter with name 'PatchNumber' and a default value of a known stream (for example 'main' for '//streams/main').
Under 'Pipeline' choose 'Pipeline script from SCM'.
Under Workspace behavior 'Streams'.
Set 'Stream Codeline' to '//streams/${PatchNumber}.
Save.
Choose 'Build with Parameters'.
Error above seen:
Started by user unknown or anonymous
hudson.AbortException: Error in client specification.
Error detected at line 18.
Stream '//streams/' must begin with '//'. at org.jenkinsci.plugins.p4.client.ClientHelper.clientLogin(ClientHelper.java:167)
at org.jenkinsci.plugins.p4.client.TempClientHelper.<init>(TempClientHelper.java:40)
at org.jenkinsci.plugins.p4.scm.P4SCMFileSystem.<init>(P4SCMFileSystem.java:26)
at org.jenkinsci.plugins.p4.scm.P4SCMFileSystem$BuilderImpl.build(P4SCMFileSystem.java:77)
Caused: java.io.IOException
at org.jenkinsci.plugins.p4.scm.P4SCMFileSystem$BuilderImpl.build(P4SCMFileSystem.java:79)
at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:198)
at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:174)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:108)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:67)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:303)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE
There is only a small issue now: In the jenkins log, the variables are not replaces. Example: Obtained Jenkinsfile from p4-Perforce-${P4_DEPOT}/${P4_STREAM}
Karl Wirth Yes, here it is, this is the very beginning of the console log:
Started by user ******
Obtained Jenkinsfile from p4-Perforce-${P4_DEPOT}/${P4_STREAM}
Running in Durability level: MAX_SURVIVABILITY
Loading library BMS-Libraries@2999/10/11:08:04:40
Expected:
Started by user ******
Obtained Jenkinsfile from p4-Perforce-MyReplacedDepotName/MyReplacedStream
Running in Durability level: MAX_SURVIVABILITY
Loading library BMS-Libraries@2999/10/11:08:04:40
In your example, I expect to see the replaced value of ${MYSTREAM}