nix-super/tests
regnat 7c5596734f
Add a post-build-hook
Passing `--post-build-hook /foo/bar` to a nix-* command will cause
`/foo/bar` to be executed after each build with the following
environment variables set:

    DRV_PATH=/nix/store/drv-that-has-been-built.drv
    OUT_PATHS=/nix/store/...build /nix/store/...build-bin /nix/store/...build-dev

This can be useful in particular to upload all the builded artifacts to
the cache (including the ones that don't appear in the runtime closure
of the final derivation or are built because of IFD).

This new feature prints the stderr/stdout output to the `nix-build`
and `nix build` client, and the output is printed in a Nix 2
compatible format:

    [nix]$ ./inst/bin/nix-build ./test.nix
    these derivations will be built:
      /nix/store/ishzj9ni17xq4hgrjvlyjkfvm00b0ch9-my-example-derivation.drv
    building '/nix/store/ishzj9ni17xq4hgrjvlyjkfvm00b0ch9-my-example-derivation.drv'...
    hello!
    bye!
    running post-build-hook '/home/grahamc/projects/github.com/NixOS/nix/post-hook.sh'...
    post-build-hook: + sleep 1
    post-build-hook: + echo 'Signing paths' /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation
    post-build-hook: Signing paths /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation
    post-build-hook: + sleep 1
    post-build-hook: + echo 'Uploading paths' /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation
    post-build-hook: Uploading paths /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation
    post-build-hook: + sleep 1
    post-build-hook: + printf 'very important stuff'
    /nix/store/qr213vjmibrqwnyp5fw678y7whbkqyny-my-example-derivation

    [nix-shell:~/projects/github.com/NixOS/nix]$ ./inst/bin/nix build -L -f ./test.nix
    my-example-derivation> hello!
    my-example-derivation> bye!
    my-example-derivation (post)> + sleep 1
    my-example-derivation (post)> + echo 'Signing paths' /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation
    my-example-derivation (post)> Signing paths /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation
    my-example-derivation (post)> + sleep 1
    my-example-derivation (post)> + echo 'Uploading paths' /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation
    my-example-derivation (post)> Uploading paths /nix/store/c263gzj2kb2609mz8wrbmh53l14wzmfs-my-example-derivation
    my-example-derivation (post)> + sleep 1
    my-example-derivation (post)> + printf 'very important stuff'
    [1 built, 0.0 MiB DL]

Co-authored-by: Graham Christensen <graham@grahamc.com>
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2019-08-02 10:48:15 -04:00
..
lang Fix abort in fromTOML 2019-06-24 17:09:09 +02:00
plugins Modularize config settings 2018-05-30 13:28:01 +02:00
add.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
binary-cache.sh Don't require --fallback to recover from disappeared binary cache NARs 2018-06-05 16:04:41 +02:00
brotli.sh Require libbrotli 2018-08-06 14:06:54 +02:00
build-dry.sh Fix test failures when $TMPDIR changes 2019-06-15 16:36:33 +02:00
build-hook.nix build-remote: Add a basic test 2017-05-02 15:46:10 +02:00
build-remote.sh Check requiredSystemFeatures for local builds 2018-09-28 16:10:27 +02:00
case-hack.sh Fix tests 2014-08-21 21:50:19 +02:00
case.nar Handle case collisions on case-insensitive systems 2014-07-16 16:02:05 +02:00
check-refs.nix Add disallowedReferences / disallowedRequisites 2014-08-28 18:57:13 +02:00
check-refs.sh Restore old (dis)allowedRequisites behaviour for self-references 2018-10-27 15:41:53 +02:00
check-reqs.nix Restore old (dis)allowedRequisites behaviour for self-references 2018-10-27 15:41:53 +02:00
check-reqs.sh Restore old (dis)allowedRequisites behaviour for self-references 2018-10-27 15:41:53 +02:00
check.nix build: add tests for --check status codes 2019-07-02 00:12:38 +02:00
check.sh build: replace 100 offset for build exit codes 2019-07-02 00:12:38 +02:00
common.sh.in Restore --init calls in tests 2019-03-04 18:27:45 +08:00
config.nix Pass lists/attrsets to bash as (associative) arrays 2017-10-25 13:01:50 +02:00
dependencies.builder0.sh Test executables in NARs 2014-02-26 18:59:01 +01:00
dependencies.builder1.sh * Purify `make check'. 2006-07-21 13:21:43 +00:00
dependencies.builder2.sh * Purify `make check'. 2006-07-21 13:21:43 +00:00
dependencies.nix Add a post-build-hook 2019-08-02 10:48:15 -04:00
dependencies.sh * Refactoring: remove unnecessary variables from the tests. 2011-10-10 21:32:34 +00:00
dump-db.sh Remove $NIX_DB_DIR 2016-08-10 18:05:35 +02:00
export-graph.nix Support quoted attribute names in -A 2013-11-18 10:21:12 +00:00
export-graph.sh Support quoted attribute names in -A 2013-11-18 10:21:12 +00:00
export.sh Fix #1762 2018-02-13 14:26:19 +00:00
fetchGit.sh fetchGit: use a better caching scheme 2018-08-17 11:27:34 -04:00
fetchMercurial.sh Add pure evaluation mode 2018-01-16 19:23:18 +01:00
fetchurl.sh Fix segfault in builtin fetchurl with hashed mirrors + SRI hashes 2019-06-01 15:27:43 +02:00
filter-source.nix Use shorter daemon socket path in tests 2016-03-24 14:45:55 +01:00
filter-source.sh Fix tests 2014-08-21 21:50:19 +02:00
fixed.builder1.sh * Test the impureEnvVars feature. 2007-09-11 13:32:04 +00:00
fixed.builder2.sh * Test case to show that parallel builds of different fixed-output 2007-08-28 09:21:47 +00:00
fixed.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
fixed.sh Remove nix-build --hash 2018-02-03 10:08:05 +01:00
gc-concurrent.builder.sh * Increase the sleep periods a bit to make the test less likely to 2008-08-14 09:26:30 +00:00
gc-concurrent.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
gc-concurrent.sh Fix tests 2014-08-21 21:50:19 +02:00
gc-concurrent2.builder.sh * Increase the sleep periods a bit to make the test less likely to 2008-08-14 09:26:30 +00:00
gc-runtime.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
gc-runtime.sh Fix gc-runtime test 2016-09-12 13:40:07 +02:00
gc.sh Update tests to the new --roots format 2019-03-10 01:50:33 +01:00
hash-check.nix * Purify `make check'. 2006-07-21 13:21:43 +00:00
hash.sh Support SRI hashes 2018-12-13 14:30:52 +01:00
import-derivation.nix * Add a test for importing derivations. 2012-01-26 13:04:50 +00:00
import-derivation.sh Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
init.sh Restore --init calls in tests 2019-03-04 18:27:45 +08:00
install-darwin.sh Rename PINCH_ME_IM_SILLY to ALLOW_PREEXISTING_INSTALLATION 2017-07-14 12:11:33 -04:00
lang.sh Fix tests 2014-08-21 21:50:19 +02:00
linux-sandbox.sh build: add test for sandboxed --check 2019-05-12 16:46:21 +02:00
local.mk Add a post-build-hook 2019-08-02 10:48:15 -04:00
logging.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
misc.sh Improve filtering of ANSI escape sequences in build logs 2018-02-07 15:23:57 +01:00
multiple-outputs.nix Don't put results symlinks in the tests directory 2012-09-11 19:14:15 -04:00
multiple-outputs.sh nix-shell/nix-build: Support .drv files again 2017-11-24 18:08:35 +01:00
nar-access.nix Rename tests/nar-index -> tests/nar-access 2017-11-14 13:27:40 +01:00
nar-access.sh Fix #1762 2018-02-13 14:26:19 +00:00
nix-build.sh nix-shell/nix-build: Support .drv files again 2017-11-24 18:08:35 +01:00
nix-channel.sh Fix tests 2017-10-02 23:45:27 -04:00
nix-copy-closure.nix dsa -> ed25519 2018-02-08 13:46:23 +01:00
nix-copy-ssh.sh Fix test failures when $TMPDIR changes 2019-06-15 16:36:33 +02:00
nix-profile.sh Fix nix-profile test in a chroot 2016-05-31 13:07:24 +02:00
nix-shell.sh Fix test failures when $TMPDIR changes 2019-06-15 16:36:33 +02:00
optimise-store.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
parallel.builder.sh Drop dependency on ‘expr’ 2014-02-06 13:51:57 +01:00
parallel.nix * Make this test a bit more robust. It's still timing dependent 2009-03-23 15:16:36 +00:00
parallel.sh Add support for ‘make installcheck’ 2013-11-25 18:47:03 +01:00
pass-as-file.sh Use $<attr>Path instead of $<attr> for passAsFile 2015-02-17 16:42:54 +01:00
placeholders.sh Fix test failures when $TMPDIR changes 2019-06-15 16:36:33 +02:00
plugins.sh Allow plugins to define new settings. 2018-02-13 14:43:32 -05:00
post-hook.sh Add a post-build-hook 2019-08-02 10:48:15 -04:00
pure-eval.nix Add pure evaluation mode 2018-01-16 19:23:18 +01:00
pure-eval.sh Add pure evaluation mode 2018-01-16 19:23:18 +01:00
push_to_store.sh Add a post-build-hook 2019-08-02 10:48:15 -04:00
referrers.sh Remove $NIX_DB_DIR 2016-08-10 18:05:35 +02:00
remote-builds.nix Prefer 'remote builder' over 'slave' 2018-09-10 18:57:46 +02:00
remote-store.sh Remove $NIX_DB_DIR 2016-08-10 18:05:35 +02:00
repair.sh Test: Replace --option with the corresponding flag 2017-11-20 17:50:49 +01:00
restricted.nix Add pure evaluation mode 2018-01-16 19:23:18 +01:00
restricted.sh Fix symlink leak in restricted eval mode 2018-08-03 06:46:43 +02:00
run.nix Add tests for "nix run" 2017-11-20 18:36:36 +01:00
run.sh Fix tests using user namespaces on kernels that don't have it 2018-01-13 19:08:41 +02:00
search.nix tests: test nix search behavior 2018-02-25 16:40:05 -06:00
search.sh tests/search.sh: minor fix to unbreak tests after search ux merge 2018-07-03 15:37:06 -05:00
secure-drv-outputs.nix * On FreeBSD, ‘touch’ is not in the test $PATH, so don't use it. 2011-08-08 14:08:38 +00:00
secure-drv-outputs.sh Remove manifest support 2016-04-11 16:20:15 +02:00
setuid.nix release.nix: Use fetchTarball and fetchGit 2017-12-22 11:35:32 +01:00
shell.nix Adds nix-shell test for special-cased ruby interpreter. 2018-04-08 00:45:28 -04:00
shell.shebang.rb Hardcodes nix-shell instead of /usr/bin/env nix-shell... 2018-04-09 09:36:54 -04:00
shell.shebang.sh Rename "use-substitutes" to "substitute" 2018-01-04 16:58:39 +01:00
signing.sh Add a test for signed content-addressed paths 2018-09-25 22:18:52 -04:00
simple.builder.sh * Fix the tests. 2007-08-13 13:15:02 +00:00
simple.nix * Refactoring: renamed *.nix.in to *.nix. 2009-03-17 17:11:55 +00:00
simple.sh Handle $TMPDIR ending with a slash 2016-10-19 15:19:38 +02:00
structured-attrs.nix exportReferencesGraph: Allow exporting a list of store paths 2017-10-25 15:18:49 +02:00
structured-attrs.sh Pass lists/attrsets to bash as (associative) arrays 2017-10-25 13:01:50 +02:00
tarball.sh Fix test failure 2016-09-08 18:22:28 +02:00
timeout.nix Replace Unicode quotes in user-facing strings by ASCII 2017-07-30 12:32:45 +01:00
timeout.sh timeout: test for error code 2019-07-02 11:18:36 -04:00
user-envs.builder.sh Test priorities 2012-12-04 14:47:50 +01:00
user-envs.nix Test priorities 2012-12-04 14:47:50 +01:00
user-envs.sh nix-env: Fix parsing of --system 2018-02-08 15:25:03 +01:00