[
https://issues.jenkins-ci.org/browse/JENKINS-13758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=162731#comment-162731
]
Stephan Pauxberger commented on JENKINS-13758:
----------------------------------------------
Created Pull Request #472, that should fix it.
I replaced UnbuiltModuleAction with a shorter and IMHO safer construct.
Each incremental build records its changedModules in a ChangedModuleAction.
When calculating the changed modules, last build's changedModules are added (if
last build was not successful).
The should solve all possible after-build actions problems (as mentioned in
related Issues) without the need for some specific workarounds.
For example: Now all modules that have been built (and not deployed) or MIGHT
have been built since last successful build are build again and deployed during
post-build deploy step.
> Incremental Builds: If a build is aborted right after a failed one, not all
> necessary modules are build
> -------------------------------------------------------------------------------------------------------
>
> Key: JENKINS-13758
> URL: https://issues.jenkins-ci.org/browse/JENKINS-13758
> Project: Jenkins
> Issue Type: Bug
> Components: maven
> Environment: Jenkins 1.443, Linux, 64bit
> Reporter: Stephan Pauxberger
>
> This is related to JENKINS-5764.
> We had the following scenario:
> {code}
> A->B->C (All Modules)
> X->Y
> {code}
> Now, we introduce a change in A which breaks C (changed an interface in our
> case). (#1)
> Now, something completely different is changed in X, which additionally
> breaks Y (#2)
> Since the last build failed, A,B,C are built as well. Before the build
> reaches C, it already fails due to failure of Y. In that moment, the
> developer realizes a mistake and aborts the build.
> Now he fixes his error in X,Y and commits. (#3)
> Incremental build only builds X,Y, i.e. the build succeeds. Expected would be
> to build A,B,C as well as X,Y.
> The next time someone changes something in C (no code, in our case), the
> build suddenly fails (two days after the "bad commit"!) (#10)
> Proposed solutions:
> Easiest, but most expansive:
> After an aborted build, always do a full build (not incremental)
> Better solution:
> For a new build:
> - The list of modules to build includes all modules changed since last commit
> - go back in history until (not including) the last successful build, for all
> builds that are NOT successful, include those run's changed modules as well
> - if there are no successful builds in the build history, always do a full
> build.
> That way, the problem above would not happen, because commit #3 would result
> in a previously affected modules since the last successful build to build
> rebuild as well (resulting in a breaking build for C).
> Note that this bug should also affect a couple of other fixed bugs (like
> JENKINS-5121)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira