.github
datadog
doc
examples
foreman
src
t
Event
Hydra
input-types
jobs
declarative
dependencies
aggregate.nix
api-test.nix
basic.nix
broken-constituent.nix
build-output-as-input.nix
build-product-simple.sh
build-product-with-spaces.sh
build-products.nix
bzr-checkout-input.nix
bzr-checkout-update.sh
bzr-input.nix
bzr-update.sh
config.nix.in
darcs-input.nix
darcs-update.sh
deepgit-builder.sh
deepgit-input.nix
default-machine-file.nix
empty-dir-builder.sh
fail.sh
git-input.nix
git-rev-input.nix
git-rev-update.sh
git-update.sh
hg-input.nix
hg-update.sh
hydra-eval-notifications.nix
nested-attributes.nix
notifications.nix
one-job.nix
runcommand.nix
scm-builder.sh
server.py
succeed-with-failed.sh
svn-checkout-input.nix
svn-checkout-update.sh
svn-input.nix
svn-update.sh
lib
queue-runner
scripts
Makefile.am
api-test.t
build-products.t
evaluate-basic.t
evaluate-dependent-jobsets.t
perlcritic.pl
s3-backup-test.config
s3-backup-test.pl
setup-notifications-jobset.pl
test.pl
.editorconfig
.gitignore
.perlcriticrc
.yath.rc
COPYING
INSTALL
Makefile.am
Procfile
README.md
bootstrap
configure.ac
default.nix
flake.lock
flake.nix
hydra-api.yaml
hydra-module.nix
shell.nix
version.txt
At the moment, aggregate jobs can easily break and cause the entire evaluation to fail, which is not ideal. For Nixpkgs, we do have some important aggregate jobs (like `tested`), but for debugging and building purposes it's still useful to get a partial result even if the channel won't actually advance. This commit changes the behaviour of hydra-eval-jobs such that it aggregates any errors found during the construction of an aggregate, and will instead annotate the job with the evaluation failure such that it shows up in a "cleaner" way. There are really two types of failure that we care about: one is where the attribute just ends up missing altogether in the final output, and also where the attribute is in the output but fails to evaluate. Both are handled here. Note that this does mean that the same error message may be output multiple times, but this aids debuggability because it'll be much clearer what's blocking the job from being created.
17 lines
288 B
Nix
17 lines
288 B
Nix
with import ./config.nix;
|
|
{
|
|
broken = mkDerivation {
|
|
name = "broken";
|
|
_hydraAggregate = true;
|
|
constituents = [
|
|
"does-not-exist"
|
|
"does-not-evaluate"
|
|
];
|
|
builder = ./fail.sh;
|
|
};
|
|
|
|
# does-not-exist doesn't exist.
|
|
|
|
does-not-evaluate = assert false; {};
|
|
}
|