Skip to content

CI: Recipes about ChangeLog regularly fail in Linux+mingw builds #2510

@jimklimov

Description

@jimklimov

Over the past months there have been several efforts and PRs to improve the NUT recipes (e.g. #2366, #2360), and in particular the generation of ChangeLog file (but only if it is older than Git metadata) and subsequent parsing into ChangeLog.adoc and HTML/PDF variants. On weaker CI systems the cycle can take 10 minutes, so a number of hoops are jumped through to avoid needless rebuilds of these files (and also aiding nut-website builds which generate its deliverables).

Currently this is handled by Makefile.am (to allow make ChangeLog in the root dir) and docs/Makefile.am (to handle PDF/HTML renditions and their prerequisites up the chain), and hoping for interaction between copies of make implementations that have a "job server" support to avoid parallel attempts to build the thing. There were earlier mishaps with several copies of a parser script writing into the same file, causing invalid content and markup; now the writes should go into temporary files and then be atomically renamed, to avoid at least that failure mode.

In the recent weeks, NUT CI farm occasionally fails the Linux+mingw builds (only them, and not always) indicating that the interim ChangeLog.xml (from asciidoc) did not pass structural xmllint checks. Either something misfires about not-writing to same file from several builds (job server issue?) or we indeed have some invalid characters in section titles (was a problem earlier) or whatever; but then it would fail every time?..

...
Using still-valid ChangeLog file generated earlier from same revision of Git source metadata in '.git'
a2x: ERROR: "xmllint" --nonet --noout --valid "/dev/shm/jenkins-nutci/nut_nut_PR-2480@2/scripts/Windows/nut_build/docs/tmp/html-single.ChangeLog.html.983992/ChangeLog.xml" returned non-zero exit status 4

mv: cannot stat './tmp/html-single.ChangeLog.html.983992/ChangeLog.html': No such file or directory
make[2]: *** [Makefile:1389: ChangeLog.html] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:979: all-recursive] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:802: all-recursive] Error 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    CIEntries related to continuous integration infrastructure (here CI = tools + scripts + recipes)Windowsdocumentationimpacts-release-2.8.2Issues reported against NUT release 2.8.2 (maybe vanilla or with minor packaging tweaks)packagingportabilityWe want NUT to build and run everywhere possible

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions