Instruments:
Jenkins ver. 1.470
Maven 2
Subversion
Environment
Suppose my build has a number of AD projects. A dependency graph exists as shown. That is: B depends on the classes in A, C depends on the classes in B, D depends on the classes in A. We create jenkins assemblies so that they call the dependencies that depend on them, like the post-build action.
a
| β B β C
| β D
Every night we run a full build in Jenkins (A builds, triggers B (triggers C), triggers D). This is done fairly easily, telling A to build the night, and the rest of the cascades.
Problem
However, when fixing, we want to build projects that were fixed once.
Situation 1: We conduct a survey of the repository (or use hook fixes , it does not matter) and find that there was a commit on B, then B will build and C will build. Success!
Situation 2: We polled the repository and found that B and C were committed in the same commit, then Jenkins will try to build B (run build C) and build C (second build). Renouncement. . What's happening? C was built twice, taking up valuable construction time. Store assembly fast!
Does anyone know how to run only the highest project in each stream pipeline?
I believe that one solution will be a complex SVN hook that defines the highest project in every pipeline ...
- Case 3: Fix BC and D in one commit. The SVN hook believes that C depends on B. The hook calls up links to specific projects to start assembling for B and D.
Traps: A very complex SVN capture. Keep to support piping in the SVN hook.
I feel that this is a problem that others are facing. Is there a Jenkins plugin that helps with this?
source share