Use nix-build in github-actions
This commit is contained in:
parent
05da490185
commit
272ff5b3e6
3 changed files with 52 additions and 9 deletions
23
.github/actions/nix-build/Dockerfile
vendored
Normal file
23
.github/actions/nix-build/Dockerfile
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
FROM lnl7/nix:2.1.2
|
||||
|
||||
LABEL name="Nix Build for GitHub Actions"
|
||||
LABEL version="1.0"
|
||||
LABEL repository="http://github.com/glittershark/xanthous"
|
||||
LABEL homepage="http://github.com/glittershark/xanthous"
|
||||
LABEL maintainer="Griffin Smith <root at gws dot fyi>"
|
||||
|
||||
LABEL "com.github.actions.name"="Nix Build"
|
||||
LABEL "com.github.actions.description"="Runs 'nix-build'"
|
||||
LABEL "com.github.actions.icon"="cpu"
|
||||
LABEL "com.github.actions.color"="purple"
|
||||
|
||||
RUN nix-env -iA \
|
||||
nixpkgs.gnutar nixpkgs.gzip \
|
||||
nixpkgs.gnugrep nixpkgs.git && \
|
||||
mkdir -p /etc/nix && \
|
||||
(echo "binary-caches = https://cache.nixos.org/" | tee -a /etc/nix/nix.conf) && \
|
||||
(echo "trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" | tee -a /etc/nix/nix.conf)
|
||||
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
ENTRYPOINT [ "/entrypoint.sh" ]
|
||||
CMD [ "--help" ]
|
||||
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