Found some clue in https://issues.jenkins-ci.org/browse/JENKINS-32780 Using the Snippet code generator I was able to generate a build parameter properties [[$class: 'ParametersDefinitionProperty', parameterDefinitions: [[$class: 'BooleanParameterDefinition', defaultValue: false, description: 'Force publish RPM artifacts to repository', name: 'FORCE_PUBLISH']]]]
If I want all branches to have this property, could I put it in my global script? I am trying to keep my Jenkinsfiles as DRY as possible. Using the Snippet generator to "Prepare an environment for the run" This is needed because of SECURITY-170, otherwised properties are not propagated to downstream builds. It does not generate anything useful. Previously the result was empty whatever I put within "Properties Content". Now I only get properties [<object of type org.jenkinsci.plugins.envinject. EnvInjectJobProperty>] This is what the snippet generator gives me for any of the choices, script, file or content. onsdag 22. juni 2016 08.27.13 UTC+2 skrev Sverre Moe følgende: > > Each branch pipeline has their own config.xml. A standard pipeline job > does have support for parameterization. I think I read somewhere in Jenkins > JIRA that such properties should be defined in the Jenkinsfile and set for > the branch pipeline project on the first run. I am a bit unsure how to set > them. Cannot find a single example of this. > > https://issues.jenkins-ci.org/browse/JENKINS-30519 > > I know how to set them programatically in the Script console for "regular" > projects. > StringBuilder builder = new StringBuilder() > builder.append("PROP1=true") > builder.append("\n") > builder.append("PROP2=true") > final def propertiesContent = builder.toString() > > def info = new EnvInjectJobPropertyInfo(null, propertiesContent, null, > null, null, false) > def property = new EnvInjectJobProperty() > property.setOn(true) > property.setKeepJenkinsSystemVariables(true) > property.setKeepBuildVariables(true) > property.setInfo(info) > > project.addProperty(property) > project.save() > > > mandag 13. juni 2016 10.20.55 UTC+2 skrev Sverre Moe følgende: >> >> Either I am doing it wrong, or Multibranch pipeline has no way of sending >> parameters to downstream builds. >> Considering that each branch within a multibranch pipeline seems to be a >> single Pipeline project and standard such Pipeline projects can be >> parameterized. >> >> onsdag 8. juni 2016 12.42.01 UTC+2 skrev Sverre Moe følgende: >>> >>> Jenkins Pipeline can be parameterized, but not multibranch pipelines. >>> There is no option for "This build is parameterized" in the configuration >>> of a multibranch pipeline. Why is that? >>> >>> I have a multibranch project for each repository with multiple branches. >>> >>> ProjectA >>> master >>> develop >>> releaseX >>> ProjectB >>> master >>> develop >>> releaseX >>> >>> In this case ProjectB has a dependency on ProjectA on the same branch. >>> >>> The Jenkinsfile is sparse, while the common main build logic is stored >>> in workflowLibs.git >>> >>> When a upstream project builds a dependent downstream project I need to >>> provide them with build parameters. >>> def BUILD_PROJECT = "projectB"+"/"+env.BUILD_BRANCH >>> build job: BUILD_PROJECT, parameters: [[$class: 'BooleanParameterValue', >>> name: 'UPSTREAM_TRIGGERED', value: true]] >>> I have some logic in the main build script for when the build is >>> triggered by an upstream dependency. >>> >>> Not sure how I can do this since multibranch pipeline cannot be >>> parameterized. >>> >>> I have even tried withEnv, but it did not work >>> withEnv(["UPSTREAM_TRIGGERED=true"]) { >>> def BUILD_PROJECT = "projectB"+"/"+env.BUILD_BRANCH >>> build BUILD_PROJECT >>> } >>> >> -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/3ae0d244-5831-4309-914b-78241ed8f2f0%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
