diff options
author | Griffin Smith <root@gws.fyi> | 2019-09-29T15·10-0400 |
---|---|---|
committer | Griffin Smith <root@gws.fyi> | 2019-09-29T15·14-0400 |
commit | 272ff5b3e606cd95aedaa4889ff38906c0e0bf03 (patch) | |
tree | 4f253f4c795240843397d3f9b2830189a053aed5 /.github/actions/nix-build/entrypoint.sh | |
parent | 05da490185e970b2cfdf6c61f69932fa373993f6 (diff) |
Use nix-build in github-actions
Diffstat (limited to '.github/actions/nix-build/entrypoint.sh')
-rwxr-xr-x | .github/actions/nix-build/entrypoint.sh | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/.github/actions/nix-build/entrypoint.sh b/.github/actions/nix-build/entrypoint.sh new file mode 100755 index 000000000000..4499660edd32 --- /dev/null +++ b/.github/actions/nix-build/entrypoint.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +# Entrypoint that runs nix-build and, optionally, copies Docker image tarballs +# to real files. The reason this is necessary is because once a Nix container +# exits, you must copy out the artifacts to the working directory before exit. + +[ "$DEBUG" = "1" ] && set -x +[ "$QUIET" = "1" ] && QUIET_ARG="-Q" + +set -e + +# file to build (e.g. release.nix) +file="$1" + +[ "$file" = "" ] && echo "No .nix file to build specified!" && exit 1 +[ ! -e "$file" ] && echo "File $file not exist!" && exit 1 + +echo "Building all attrs in $file..." +nix-build --no-link ${QUIET_ARG} "$file" + +echo "Copying build closure to $(pwd)/store..." +mapfile -t storePaths < <(nix-build ${QUIET_ARG} --no-link "$file" | grep -v cache-deps) +printf '%s\n' "${storePaths[@]}" > store.roots +nix copy --to "file://$(pwd)/store" "${storePaths[@]}" |