forked from Jovian-Experiments/Jovian-NixOS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
flake.nix
51 lines (44 loc) · 1.39 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{
description = "NixOS on the Steam Deck";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nix-github-actions = {
url = "github:zhaofengli/nix-github-actions/matrix-name";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, nix-github-actions }: let
inherit (nixpkgs) lib;
supportedSystems = [ "x86_64-linux" ];
eachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [ self.overlays.default ];
};
in f pkgs);
in {
legacyPackages = eachSupportedSystem (pkgs: pkgs);
nixosModules = rec {
default = jovian;
jovian = ./modules;
};
overlays = rec {
# TODO: Minimize diff while making `nix flake check` pass
default = jovian;
jovian = final: prev: import ./overlay.nix final prev;
};
checks = eachSupportedSystem (pkgs: let
overlayContents = builtins.attrNames (import ./overlay.nix {} {})
++ [ "steam" ];
jobs = lib.foldl (ret: f: f ret) overlayContents [
(map (attr: lib.nameValuePair attr pkgs.${attr}))
(builtins.filter (job: lib.isDerivation job.value))
builtins.listToAttrs
];
in jobs);
githubActions = nix-github-actions.lib.mkGithubMatrix {
inherit (self) checks;
};
};
}