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 [email protected].
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.