#726 Report AsciiDoc source problems at end of the build
- Best to review per commit.
- There are no end-user visible changes.
- This branch prevents AsciiDoc source problem checks from stopping the build early. Instead, they are collected at the end of the build and reported in a report HTML file that is attached as artifact to the Maven build. Only for unsuccessful build is the project added. If the build fails earlier and there is no report, it is not attached.
- Design:
- I had to make two separate projects, one to define the new Maven plugin and one to use it. I couldn't put that in the same project, as it would lead to a self-dependency cycle, which is not allowed.
- I set up the problem reporter plugin to be extensible. We'll see how well other kinds of problems fit when we add them.
- I spent at least 12 hours trying to figure out how to get it all to work, in the development environment and during the build. This required quite some changes to project setups and metadata.
- There was a new restricted dependency, that I submitted and got auto-approved: eclipsefdn/emo-team/iplab#19065 (closed).
- I also fixed/improved a few plugin
Bundle-Name
s that I encountered. - There are some open issues:
- When you open a problem report HTML file attached to the build, directly from the Jenkins server, security policies of the Jenkins server prevent loading the CSS of the report. The content is there, but the fonts etc are not so nice. More annoying is the position on the line is not highlighted then. There is no way around it (that I can see), as we don't control the server and the HTTP response headers it sends. Instead, just download the file to your computer and then open it in the browser. The CSS then works as expected.
- The documentation plugins don't fail anymore on AsciiDoc source problems (that was the whole aim of this branch). If you do a documentation only build of for instance CIF, and there are such problems, then the build will thus succeed. For the full build, there is problem reporter project at the end that reports the problems and makes the build fail, but other sub-builds don't have that. I don't think we should add problem reporter projects for every sub-build, as that would lead to many projects. Instead, I think I can make the
failBuild
option of the AsciiDoc source checker overridable. Then we can override it in the documentation sub-build to still fail the build there, but not in the full build. In the documentation build, the documentation project is the last project anyway, so continuing is not really needed there. I'll look into this for a next merge request.
- Example output: build-problems-report.html
Addresses #726