I checked inside the config.xml before and after I manually saved the downstream project.
The only difference after saved, the reverse build trigger was placed before the scmtrigger. <triggers> <jenkins.triggers.ReverseBuildTrigger> <spec></spec> <upstreamProjects>project1</upstreamProjects> <threshold> <name>SUCCESS</name> <ordinal>0</ordinal> <color>BLUE</color> <completeBuild>true</completeBuild> </threshold> </jenkins.triggers.ReverseBuildTrigger> <hudson.triggers.SCMTrigger> <spec>H/15 * * * *</spec> <ignorePostCommitHooks>false</ignorePostCommitHooks> </hudson.triggers.SCMTrigger> </triggers> fredag 21. august 2015 09.23.17 UTC+2 skrev Sverre Moe følgende: > > I have added some reverse build triggers with a Groovy script. > Unfortunately the triggers does not work properly. > > It all looks like its ok, but after an upstream project has been built I > get the following NullPointerException: > > Warning: you have no plugins providing access control for builds, so falling > back to legacy behavior of permitting any downstream builds to be triggered > FATAL: null > java.lang.NullPointerException > > <http://stacktrace.jenkins-ci.org/search?query=java.lang.NullPointerException> > at > jenkins.triggers.ReverseBuildTrigger.shouldTrigger(ReverseBuildTrigger.java:111) > > <http://stacktrace.jenkins-ci.org/search/?query=jenkins.triggers.ReverseBuildTrigger.shouldTrigger&entity=method> > at > jenkins.triggers.ReverseBuildTrigger.access$000(ReverseBuildTrigger.java:84) > <http://stacktrace.jenkins-ci.org/search/?query=jenkins.triggers.ReverseBuildTrigger.access$000&entity=method> > at > jenkins.triggers.ReverseBuildTrigger$1.shouldTriggerBuild(ReverseBuildTrigger.java:141) > > <http://stacktrace.jenkins-ci.org/search/?query=jenkins.triggers.ReverseBuildTrigger$1.shouldTriggerBuild&entity=method> > at hudson.tasks.BuildTrigger.execute(BuildTrigger.java:245) > <http://stacktrace.jenkins-ci.org/search/?query=hudson.tasks.BuildTrigger.execute&entity=method> > at > hudson.model.AbstractBuild$AbstractBuildExecution.cleanUp(AbstractBuild.java:687) > > <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.AbstractBuild$AbstractBuildExecution.cleanUp&entity=method> > at hudson.model.Run.execute(Run.java:1788) > <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Run.execute&entity=method> > at hudson.matrix.MatrixBuild.run(MatrixBuild.java:301) > <http://stacktrace.jenkins-ci.org/search/?query=hudson.matrix.MatrixBuild.run&entity=method> > at > hudson.model.ResourceController.execute(ResourceController.java:98) > <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.ResourceController.execute&entity=method> > at hudson.model.Executor.run(Executor.java:381) > <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Executor.run&entity=method> > Finished: SUCCESS > > > I fixed it by the following approach: Before building one of the upstream > project, I went into the configuration of each of its downstream projects, > checked the "Build after other projects are built" for each of them. The > reverse build trigger was already activated, the projects listed. I save > the project even though there actually was no changes. This time the > reverse build trigger worked when an upstream project was build all its > downstream projects got triggered. > > Why did I have to manually go into each downstream project and save it? My > groovy script does that. > > > #!/usr/bin/env groovy > > import jenkins.triggers.ReverseBuildTrigger > import hudson.model.Result > > def jenkinsInstance = jenkins.model.Jenkins.getInstance() > def developmentView = jenkinsInstance.getView("Development") > developmentView.getItems().each { project -> > > def upstreamProjects = null > if (project.name.equals("project3")) { > upstreamProjects = "project1, project2 " > } > > if (upstreamProjects != null) { > def trigger = new ReverseBuildTrigger(upstreamProjects, > Result.SUCCESS) > project.addTrigger(trigger) > project.save() > } > } > > jenkinsInstance.rebuildDependencyGraph() > It contains only one for simplicity. My if-else contains aprox 100 > projects. > > -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/52c26b21-181e-4344-a66a-4e37e33108c9%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.