The autopkg tests have the ability to collect some information in artifacts, collected in a tarball. That kind of feature could be useful for builds as well, both for failing and succeeding builds.
- A common artifact for failing builds is the config.log file,
dumped to stdout by debhelper. Same for some cmake logs.
- A reproducible compiler error (ICE) produces a /tmp/cc*.out
containing the preprocessed source. This is used to trim down
the source to a test case to be submitted upstream. It's
extra work to setup a local build for the target arch, and
re-running the build. The current approach is to dump this
file to stdout and hoping that we don't run too much in
parallel ending up in garbled output.
OpenJDK has a similar feature which produces hs_err dump
files.
- Verbose build logs usually are not included in any package,
but help diagnosing the problems without needing to do a
local build. Many Gnome(?) builds have a verbose build log
which has more information about the test runs. dejagnu
based test suites produce *.sum and *.log files which contain
all stdout/stderr output for a failing test case.
Work around for dejagnu (e.g. GCC) is to have a separate
binary package holding all the test results. Not ideal as
it costs archive space, and the logs have the same lifetime
as the binary packages.
- For a test rebuild, I want to compare the config.h files
generated by autoconf and look at the diff for each package
(baseline build and test build).
The trigger what to include in these artifacts is sometime the package itself (test logs), sometimes another package used for the build (e.g. GCC), or even specific to the build (maybe only for the test rebuild).
The autopkg tests have the ability to collect some information in artifacts, collected in a tarball. That kind of feature could be useful for builds as well, both for failing and succeeding builds.
- A common artifact for failing builds is the config.log file,
dumped to stdout by debhelper. Same for some cmake logs.
- A reproducible compiler error (ICE) produces a /tmp/cc*.out
containing the preprocessed source. This is used to trim down
the source to a test case to be submitted upstream. It's
extra work to setup a local build for the target arch, and
re-running the build. The current approach is to dump this
file to stdout and hoping that we don't run too much in
parallel ending up in garbled output.
OpenJDK has a similar feature which produces hs_err dump
files.
- Verbose build logs usually are not included in any package,
but help diagnosing the problems without needing to do a
local build. Many Gnome(?) builds have a verbose build log
which has more information about the test runs. dejagnu
based test suites produce *.sum and *.log files which contain
all stdout/stderr output for a failing test case.
Work around for dejagnu (e.g. GCC) is to have a separate
binary package holding all the test results. Not ideal as
it costs archive space, and the logs have the same lifetime
as the binary packages.
- For a test rebuild, I want to compare the config.h files
generated by autoconf and look at the diff for each package
(baseline build and test build).
The trigger what to include in these artifacts is sometime the package itself (test logs), sometimes another package used for the build (e.g. GCC), or even specific to the build (maybe only for the test rebuild).