Use nix-build in github-actions
This commit is contained in:
parent
05da490185
commit
272ff5b3e6
3 changed files with 52 additions and 9 deletions
24
.github/actions/nix-build/entrypoint.sh
vendored
Executable file
24
.github/actions/nix-build/entrypoint.sh
vendored
Executable file
|
|
@ -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[@]}"
|
||||
Loading…
Add table
Add a link
Reference in a new issue