1
0
Fork 0
mirror of https://github.com/LnL7/nix-darwin.git synced 2024-12-14 11:57:34 +00:00
nix-darwin/release.nix

115 lines
3.6 KiB
Nix
Raw Normal View History

2017-01-15 00:05:55 +00:00
{ nixpkgs ? <nixpkgs>
, supportedSystems ? [ "x86_64-darwin" ]
, scrubJobs ? true
}:
let
inherit (release) mapTestOn packagePlatforms pkgs all linux darwin;
mapPlatforms = systems: pkgs.lib.mapAttrs (n: v: systems);
2017-01-15 00:05:55 +00:00
genExample = configuration: pkgs.lib.genAttrs [ "x86_64-darwin" ] (system:
(import ./. { inherit nixpkgs configuration system; }).system
2017-01-15 00:05:55 +00:00
);
2017-03-11 09:03:37 +00:00
makeTest = test:
2017-11-05 21:55:16 +00:00
let
configuration =
{ config, lib, pkgs, ... }:
with lib;
2018-01-14 20:08:28 +00:00
{
imports = [ test ];
2017-03-11 09:03:37 +00:00
2017-11-05 21:55:16 +00:00
options = {
out = mkOption {
type = types.package;
};
2017-03-11 09:03:37 +00:00
2017-11-05 21:55:16 +00:00
test = mkOption {
type = types.lines;
2017-03-11 09:03:37 +00:00
};
2017-11-05 21:55:16 +00:00
};
2017-03-11 09:03:37 +00:00
2017-11-05 21:55:16 +00:00
config = {
2018-01-17 21:04:48 +00:00
system.build.run-test = pkgs.runCommand "darwin-test"
2018-01-14 20:08:28 +00:00
{ allowSubstitutes = false; preferLocalBuild = true; }
2017-11-05 21:55:16 +00:00
''
#! ${pkgs.stdenv.shell}
set -e
2017-03-11 09:03:37 +00:00
2018-01-14 20:08:28 +00:00
echo >&2 "running tests for system ${config.out}"
echo >&2
2017-11-05 21:55:16 +00:00
${config.test}
2018-01-14 20:08:28 +00:00
echo >&2 ok
2017-11-05 21:55:16 +00:00
touch $out
'';
2017-03-11 09:03:37 +00:00
2017-11-05 21:55:16 +00:00
out = config.system.build.toplevel;
2017-03-11 09:03:37 +00:00
};
2017-11-05 21:55:16 +00:00
};
2018-01-14 20:08:28 +00:00
2017-11-05 21:55:16 +00:00
system = "x86_64-darwin";
in
(import ./. { inherit nixpkgs configuration system; }).config.system.build.run-test;
2017-03-11 09:03:37 +00:00
2017-01-15 00:05:55 +00:00
release = import <nixpkgs/pkgs/top-level/release-lib.nix> {
inherit supportedSystems scrubJobs;
packageSet = import nixpkgs;
};
packageSet = {
inherit (pkgs)
2017-02-19 15:25:51 +00:00
stdenv bash zsh nix nix-repl
tmux reattach-to-user-namespace
nano emacs vim;
2017-01-15 00:05:55 +00:00
};
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
2017-02-19 15:25:51 +00:00
jobs.nix-repl.x86_64-darwin
2018-01-14 20:08:28 +00:00
jobs.reattach-to-user-namespace.x86_64-darwin
jobs.tmux.x86_64-darwin
jobs.nano.x86_64-darwin
jobs.vim.x86_64-darwin
jobs.emacs.x86_64-darwin
2017-07-17 21:43:24 +00:00
jobs.examples.hydra.x86_64-darwin
2017-01-15 00:26:36 +00:00
jobs.examples.lnl.x86_64-darwin
jobs.examples.simple.x86_64-darwin
2017-01-15 00:05:55 +00:00
];
2018-01-14 20:08:28 +00:00
meta.description = "Release-critical builds for the darwin channel";
2017-01-15 00:05:55 +00:00
};
2017-07-17 21:43:24 +00:00
examples.hydra = genExample ./modules/examples/hydra.nix;
2017-01-15 00:05:55 +00:00
examples.lnl = genExample ./modules/examples/lnl.nix;
examples.simple = genExample ./modules/examples/simple.nix;
tests.activation-scripts = makeTest ./tests/activation-scripts.nix;
tests.environment-path = makeTest ./tests/environment-path.nix;
tests.launchd-setenv = makeTest ./tests/launchd-setenv.nix;
tests.networking-hostname = makeTest ./tests/networking-hostname.nix;
tests.networking-networkservices = makeTest ./tests/networking-networkservices.nix;
2018-01-06 23:06:53 +00:00
tests.nixpkgs-overlays = makeTest ./tests/nixpkgs-overlays.nix;
2018-01-20 22:00:24 +00:00
tests.programs-zsh = makeTest ./tests/programs-zsh.nix;
2017-05-13 23:19:07 +00:00
tests.services-activate-system = makeTest ./tests/services-activate-system.nix;
2017-05-13 23:00:29 +00:00
tests.system-defaults-write = makeTest ./tests/system-defaults-write.nix;
tests.system-keyboard-mapping = makeTest ./tests/system-keyboard-mapping.nix;
2017-03-11 09:03:37 +00:00
tests.system-packages = makeTest ./tests/system-packages.nix;
2017-03-11 21:28:51 +00:00
tests.system-path-bash = makeTest ./tests/system-path-bash.nix;
tests.system-path-fish = makeTest ./tests/system-path-fish.nix;
2017-12-13 22:05:46 +00:00
tests.system-shells = makeTest ./tests/system-shells.nix;
tests.users-groups = makeTest ./tests/users-groups.nix;
2018-02-26 18:19:22 +00:00
tests.buildkite-agent = makeTest ./tests/buildkite-agent.nix;
2017-03-11 09:03:37 +00:00
2017-01-15 00:05:55 +00:00
}
2017-02-19 15:40:32 +00:00
// (mapTestOn (packagePlatforms packageSet));
2017-01-15 00:05:55 +00:00
in
jobs