summaryrefslogtreecommitdiff
path: root/release.nix
diff options
context:
space:
mode:
authorMike Vink <59492084+ivi-vink@users.noreply.github.com>2025-01-16 22:22:34 +0100
committerGitHub <noreply@github.com>2025-01-16 22:22:34 +0100
commit8e7bd91f353caacc0bc4105f573eb3e17f09e03a (patch)
treec5059edcbebd9644290cad7c653c49a36d593021 /release.nix
parent6bd39d420578aacf7c0bab7de3e7027b952115ae (diff)
parentbd921223ba7cdac346477d7ea5204d6f4736fcc6 (diff)
Merge branch 'LnL7:master' into masterHEADmaster
Diffstat (limited to 'release.nix')
-rw-r--r--release.nix178
1 files changed, 77 insertions, 101 deletions
diff --git a/release.nix b/release.nix
index 98a58e7..b3e2df7 100644
--- a/release.nix
+++ b/release.nix
@@ -1,21 +1,16 @@
{ nixpkgs ? <nixpkgs>
-, supportedSystems ? [ "x86_64-darwin" ]
+# Adapted from https://github.com/NixOS/nixpkgs/blob/e818264fe227ad8861e0598166cf1417297fdf54/pkgs/top-level/release.nix#L11
+, nix-darwin ? { }
+, system ? builtins.currentSystem
+, supportedSystems ? [ "x86_64-darwin" "aarch64-darwin" ]
, scrubJobs ? true
}:
let
- inherit (release) mapTestOn packagePlatforms pkgs all linux darwin;
-
- system = "x86_64-darwin";
-
- mapPlatforms = systems: pkgs.lib.mapAttrs (n: v: systems);
-
buildFromConfig = configuration: sel: sel
(import ./. { inherit nixpkgs configuration system; }).config;
- makeSystem = configuration: pkgs.lib.genAttrs [ system ] (system:
- buildFromConfig configuration (config: config.system.build.toplevel)
- );
+ makeSystem = configuration: buildFromConfig configuration (config: config.system.build.toplevel);
makeTest = test:
let
@@ -40,6 +35,8 @@ let
};
config = {
+ system.stateVersion = lib.mkDefault config.system.maxStateVersion;
+
system.build.run-test = pkgs.runCommand "darwin-test-${testName}"
{ allowSubstitutes = false; preferLocalBuild = true; }
''
@@ -59,97 +56,76 @@ let
in
buildFromConfig configuration (config: config.system.build.run-test);
- release = import <nixpkgs/pkgs/top-level/release-lib.nix> {
- inherit supportedSystems scrubJobs;
- packageSet = import nixpkgs;
- };
-
- packageSet = {
- inherit (pkgs)
- stdenv bash zsh nix
- 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.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
- jobs.examples.hydra.x86_64-darwin
- jobs.examples.lnl.x86_64-darwin
- jobs.examples.simple.x86_64-darwin
- ];
- meta.description = "Release-critical builds for the darwin channel";
- };
-
- manualHTML = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manualHTML);
- manpages = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manpages);
- options = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.optionsJSON);
-
- examples.hydra = makeSystem ./modules/examples/hydra.nix;
- examples.lnl = makeSystem ./modules/examples/lnl.nix;
- examples.simple = makeSystem ./modules/examples/simple.nix;
+ manual = buildFromConfig ({ lib, config, ... }: {
+ system.stateVersion = lib.mkDefault config.system.maxStateVersion;
- tests.activation-scripts = makeTest ./tests/activation-scripts.nix;
- tests.autossh = makeTest ./tests/autossh.nix;
- tests.checks-nix-gc = makeTest ./tests/checks-nix-gc.nix;
- tests.environment-path = makeTest ./tests/environment-path.nix;
- tests.environment-terminfo = makeTest ./tests/environment-terminfo.nix;
- tests.homebrew = makeTest ./tests/homebrew.nix;
- tests.launchd-daemons = makeTest ./tests/launchd-daemons.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;
- tests.nixpkgs-overlays = makeTest ./tests/nixpkgs-overlays.nix;
- tests.programs-ssh = makeTest ./tests/programs-ssh.nix;
- tests.programs-tmux = makeTest ./tests/programs-tmux.nix;
- tests.programs-zsh = makeTest ./tests/programs-zsh.nix;
- tests.programs-ssh-empty-known-hosts = makeTest ./tests/programs-ssh-empty-known-hosts.nix;
- tests.security-pki = makeTest ./tests/security-pki.nix;
- tests.services-activate-system = makeTest ./tests/services-activate-system.nix;
- tests.services-activate-system-changed-label-prefix = makeTest ./tests/services-activate-system-changed-label-prefix.nix;
- tests.services-buildkite-agent = makeTest ./tests/services-buildkite-agent.nix;
- tests.services-github-runners = makeTest ./tests/services-github-runners.nix;
- tests.services-lorri = makeTest ./tests/services-lorri.nix;
- tests.services-nix-daemon = makeTest ./tests/services-nix-daemon.nix;
- tests.sockets-nix-daemon = makeTest ./tests/sockets-nix-daemon.nix;
- tests.services-dnsmasq = makeTest ./tests/services-dnsmasq.nix;
- tests.services-eternal-terminal = makeTest ./tests/services-eternal-terminal.nix;
- tests.services-nix-gc = makeTest ./tests/services-nix-gc.nix;
- tests.services-nix-optimise = makeTest ./tests/services-nix-optimise.nix;
- tests.services-nextdns = makeTest ./tests/services-nextdns.nix;
- tests.services-ofborg = makeTest ./tests/services-ofborg.nix;
- tests.services-offlineimap = makeTest ./tests/services-offlineimap.nix;
- tests.services-privoxy = makeTest ./tests/services-privoxy.nix;
- tests.services-redis = makeTest ./tests/services-redis.nix;
- tests.services-skhd = makeTest ./tests/services-skhd.nix;
- tests.services-spacebar = makeTest ./tests/services-spacebar.nix;
- tests.services-spotifyd = makeTest ./tests/services-spotifyd.nix;
- tests.services-synapse-bt = makeTest ./tests/services-synapse-bt.nix;
- tests.services-synergy = makeTest ./tests/services-synergy.nix;
- tests.services-yabai = makeTest ./tests/services-yabai.nix;
- tests.system-defaults-write = makeTest ./tests/system-defaults-write.nix;
- tests.system-environment = makeTest ./tests/system-environment.nix;
- tests.system-keyboard-mapping = makeTest ./tests/system-keyboard-mapping.nix;
- tests.system-packages = makeTest ./tests/system-packages.nix;
- tests.system-path = makeTest ./tests/system-path.nix;
- tests.system-shells = makeTest ./tests/system-shells.nix;
- tests.users-groups = makeTest ./tests/users-groups.nix;
- tests.users-packages = makeTest ./tests/users-packages.nix;
- tests.fonts = makeTest ./tests/fonts.nix;
+ system.darwinVersionSuffix = let
+ shortRev = nix-darwin.shortRev or nix-darwin.dirtyShortRev or null;
+ in
+ lib.mkIf (shortRev != null) ".${shortRev}";
+ system.darwinRevision = let
+ rev = nix-darwin.rev or nix-darwin.dirtyRev or null;
+ in
+ lib.mkIf (rev != null) rev;
+ }) (config: config.system.build.manual);
- }
- // (mapTestOn (packagePlatforms packageSet));
+in {
+ docs = {
+ inherit (manual) manualHTML manpages optionsJSON;
+ };
-in
- jobs
+ examples.hydra = makeSystem ./modules/examples/hydra.nix;
+ examples.lnl = makeSystem ./modules/examples/lnl.nix;
+ examples.simple = makeSystem ./modules/examples/simple.nix;
+
+ tests.activation-scripts = makeTest ./tests/activation-scripts.nix;
+ tests.autossh = makeTest ./tests/autossh.nix;
+ tests.checks-nix-gc = makeTest ./tests/checks-nix-gc.nix;
+ tests.environment-path = makeTest ./tests/environment-path.nix;
+ tests.environment-terminfo = makeTest ./tests/environment-terminfo.nix;
+ tests.homebrew = makeTest ./tests/homebrew.nix;
+ tests.launchd-daemons = makeTest ./tests/launchd-daemons.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;
+ tests.nixpkgs-overlays = makeTest ./tests/nixpkgs-overlays.nix;
+ tests.programs-ssh = makeTest ./tests/programs-ssh.nix;
+ tests.programs-tmux = makeTest ./tests/programs-tmux.nix;
+ tests.programs-zsh = makeTest ./tests/programs-zsh.nix;
+ tests.programs-ssh-empty-known-hosts = makeTest ./tests/programs-ssh-empty-known-hosts.nix;
+ tests.security-pki = makeTest ./tests/security-pki.nix;
+ tests.services-activate-system = makeTest ./tests/services-activate-system.nix;
+ tests.services-activate-system-changed-label-prefix = makeTest ./tests/services-activate-system-changed-label-prefix.nix;
+ tests.services-buildkite-agent = makeTest ./tests/services-buildkite-agent.nix;
+ tests.services-github-runners = makeTest ./tests/services-github-runners.nix;
+ tests.services-lorri = makeTest ./tests/services-lorri.nix;
+ tests.services-nix-daemon = makeTest ./tests/services-nix-daemon.nix;
+ tests.sockets-nix-daemon = makeTest ./tests/sockets-nix-daemon.nix;
+ tests.services-aerospace = makeTest ./tests/services-aerospace.nix;
+ tests.services-dnsmasq = makeTest ./tests/services-dnsmasq.nix;
+ tests.services-eternal-terminal = makeTest ./tests/services-eternal-terminal.nix;
+ tests.services-nix-gc = makeTest ./tests/services-nix-gc.nix;
+ tests.services-nix-optimise = makeTest ./tests/services-nix-optimise.nix;
+ tests.services-nextdns = makeTest ./tests/services-nextdns.nix;
+ tests.services-netdata = makeTest ./tests/services-netdata.nix;
+ tests.services-ofborg = makeTest ./tests/services-ofborg.nix;
+ tests.services-offlineimap = makeTest ./tests/services-offlineimap.nix;
+ tests.services-privoxy = makeTest ./tests/services-privoxy.nix;
+ tests.services-redis = makeTest ./tests/services-redis.nix;
+ tests.services-skhd = makeTest ./tests/services-skhd.nix;
+ tests.services-spacebar = makeTest ./tests/services-spacebar.nix;
+ tests.services-spotifyd = makeTest ./tests/services-spotifyd.nix;
+ tests.services-synapse-bt = makeTest ./tests/services-synapse-bt.nix;
+ tests.services-synergy = makeTest ./tests/services-synergy.nix;
+ tests.services-yabai = makeTest ./tests/services-yabai.nix;
+ tests.services-jankyborders = makeTest ./tests/services-jankyborders.nix;
+ tests.system-defaults-write = makeTest ./tests/system-defaults-write.nix;
+ tests.system-environment = makeTest ./tests/system-environment.nix;
+ tests.system-keyboard-mapping = makeTest ./tests/system-keyboard-mapping.nix;
+ tests.system-packages = makeTest ./tests/system-packages.nix;
+ tests.system-path = makeTest ./tests/system-path.nix;
+ tests.system-shells = makeTest ./tests/system-shells.nix;
+ tests.users-groups = makeTest ./tests/users-groups.nix;
+ tests.users-packages = makeTest ./tests/users-packages.nix;
+ tests.fonts = makeTest ./tests/fonts.nix;
+}