From 1ef40ac230fd4acdf3183357b19f393dc297e788 Mon Sep 17 00:00:00 2001 From: Erik Arvstedt Date: Fri, 10 Dec 2021 14:07:58 +0100 Subject: [PATCH] ci: add flake test - Check flake - Check nixos-search doc generation --- .cirrus.yml | 7 +++++++ test/nixos-search/ci-test.sh | 23 +++++++++++++++++++++++ test/nixos-search/flake.nix | 4 ++++ 3 files changed, 34 insertions(+) create mode 100755 test/nixos-search/ci-test.sh diff --git a/.cirrus.yml b/.cirrus.yml index 294b910..2dff4ac 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -29,3 +29,10 @@ task: - echo "sandbox = true" >> /etc/nix/nix.conf - export NIX_PATH="nixpkgs=$(nix eval --raw -f pkgs/nixpkgs-pinned.nix nixpkgs)" - nix run -f '' bash coreutils cachix -c ./test/ci/build.sh + + - name: flake + container: + image: nixpkgs/nix-flakes + build_script: + - nix flake check + - ./test/nixos-search/ci-test.sh diff --git a/test/nixos-search/ci-test.sh b/test/nixos-search/ci-test.sh new file mode 100755 index 0000000..e719fb4 --- /dev/null +++ b/test/nixos-search/ci-test.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -euo pipefail + +cd "${BASH_SOURCE[0]%/*}" + +# Use cachix to cache the `flake-info` build +cachixCache=nix-bitcoin + +nix run .#cachix -- use $cachixCache + +# We're running in a basic, unprivileged container that doesn't support sandboxing. +# Sandboxing is unnneeded because we're only building the 3rd-party `flake-info` tool. +echo "sandbox = false" >> /etc/nix/nix.conf +export PATH=$(nix shell -L .#flake-info .#cachix -c sh -c 'echo $PATH') + +if [[ ${CACHIX_SIGNING_KEY:-} ]]; then + cachix push $cachixCache $(type -P flake-info); +fi + +# flake-info requires '' +export NIX_PATH=nixpkgs=$(nix eval --raw .#nixpkgsPath) +echo "Running flake-info (nixos-search)" +flake-info flake ./. diff --git a/test/nixos-search/flake.nix b/test/nixos-search/flake.nix index f92bf29..76eb49e 100644 --- a/test/nixos-search/flake.nix +++ b/test/nixos-search/flake.nix @@ -5,5 +5,9 @@ inputs.nixos-search.url = "github:nixos/nixos-search"; outputs = { self, nixos-search }: { inherit (nixos-search) packages; + + # Used by ./ci-test.sh + inherit (nixos-search.inputs.nixpkgs) legacyPackages; + nixpkgsPath = toString nixos-search.inputs.nixpkgs; }; }