{ nixpkgs ? , supportedSystems ? [ "x86_64-darwin" ] , scrubJobs ? true }: let inherit (release) mapTestOn packagePlatforms pkgs all linux darwin; mapPlatforms = systems: pkgs.lib.mapAttrs (n: v: systems); genExample = configuration: pkgs.lib.genAttrs [ "x86_64-darwin" ] (system: (import ./. { inherit nixpkgs configuration system; }).system ); makeTest = test: pkgs.lib.genAttrs [ "x86_64-darwin" ] (system: let configuration = { config, lib, pkgs, ... }: with lib; { imports = [ test ]; options = { out = mkOption { type = types.package; }; test = mkOption { type = types.lines; }; }; config = { system.build.run-test = pkgs.runCommand "run-darwin-test" { allowSubstitutes = false; preferLocalBuild = true; } '' #! ${pkgs.stdenv.shell} set -e ${config.test} echo ok | tee $out >&2 ''; out = config.system.build.toplevel; }; }; system = "x86_64-darwin"; in (import ./. { inherit nixpkgs configuration system; }).config.system.build.run-test ); release = import { inherit supportedSystems scrubJobs; packageSet = import nixpkgs; }; packageSet = { inherit (pkgs) stdenv bash zsh nix nix-repl tmux reattach-to-user-namespace nano emacs vim; }; jobs = { unstable = pkgs.releaseTools.aggregate { name = "darwin-${pkgs.lib.nixpkgsVersion}"; constituents = [ jobs.stdenv.x86_64-darwin jobs.bash.x86_64-darwin jobs.zsh.x86_64-darwin jobs.nix.x86_64-darwin jobs.nix-repl.x86_64-darwin # jobs.reattach-to-user-namespace.x86_64-darwin license? jobs.tmux.x86_64-darwin jobs.nano.x86_64-darwin jobs.vim.x86_64-darwin jobs.emacs.x86_64-darwin jobs.examples.lnl.x86_64-darwin jobs.examples.simple.x86_64-darwin ]; meta.description = "Release-critical builds for the darwin unstable channel"; }; examples.lnl = genExample ./modules/examples/lnl.nix; examples.simple = genExample ./modules/examples/simple.nix; tests.services-activate-system = makeTest ./tests/services-activate-system.nix; tests.system-defaults-write = makeTest ./tests/system-defaults-write.nix; tests.system-packages = makeTest ./tests/system-packages.nix; tests.system-path-bash = makeTest ./tests/system-path-bash.nix; tests.system-path-fish = makeTest ./tests/system-path-fish.nix; tests.system-path-zsh = makeTest ./tests/system-path-zsh.nix; tests.launchd-setenv = makeTest ./tests/launchd-setenv.nix; } // (mapTestOn (packagePlatforms packageSet)); in jobs