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[@]}"
|
14
.github/workflows/haskell.yml
vendored
14
.github/workflows/haskell.yml
vendored
|
@ -4,16 +4,12 @@ on: [push]
|
|||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Install dependencies
|
||||
run: cabal install --only-dependencies --enable-tests
|
||||
- name: Build
|
||||
run: |
|
||||
cabal configure --enable-tests
|
||||
cabal build
|
||||
- name: Run tests
|
||||
run: cabal test
|
||||
- name: Nix Build
|
||||
with:
|
||||
args: default.nix
|
||||
uses: ./.github/actions/nix-build
|
||||
|
|
Loading…
Reference in a new issue