Initial release.
This commit is contained in:
parent
699b3a0760
commit
72bd841f05
8 changed files with 335 additions and 0 deletions
59
release.nix
Normal file
59
release.nix
Normal file
|
@ -0,0 +1,59 @@
|
|||
# This file is heavily inspired by <nixpkgs/nixos/release.nix>
|
||||
{ nixpkgs ? <nixpkgs> # builtins.fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-20.03.tar.gz
|
||||
, targetSystem ? builtins.currentSystem
|
||||
, speak ? ./. #builtins.fetchGit ./.
|
||||
, configuration ? ./extra/exampleConfig.nix #{ imports = [ (speak + builtins.toPath "/options/espeak.nix") ]; config.speak.enable = true; config.sound.enable = true; }
|
||||
}:
|
||||
|
||||
with builtins;
|
||||
with import (nixpkgs + (toPath "/lib"));
|
||||
|
||||
let
|
||||
pkgs = import nixpkgs { system = targetSystem; };
|
||||
tarball = pkgs.releaseTools.sourceTarball {
|
||||
name = "speak-tarball";
|
||||
src = speak;
|
||||
};
|
||||
modulePath = (nixpkgs + (toPath "/nixos/modules"));
|
||||
makeTarget = target:
|
||||
with import nixpkgs { system = targetSystem; };
|
||||
((import (nixpkgs + (toPath "/nixos/lib/eval-config.nix")) {
|
||||
system = targetSystem;
|
||||
modules = target.modules ++ [ configuration ];
|
||||
}).config.system.build);
|
||||
makeSubTargets = target: {
|
||||
isoImage = hydraJob (makeTarget (mergeAttrsConcatenateValues target {
|
||||
modules = [
|
||||
{ isoImage.isoBaseName = "nixos-${target.name}"; }
|
||||
];
|
||||
})).isoImage;
|
||||
tarball = hydraJob (makeTarget (mergeAttrsConcatenateValues target {
|
||||
modules = [ (modulePath + toPath "/installer/cd-dvd/system-tarball.nix") ];
|
||||
})).tarball;
|
||||
vm = (makeTarget (mergeAttrsConcatenateValues target {
|
||||
modules = [ (modulePath + toPath "/virtualisation/qemu-vm.nix") { config.virtualisation.qemu.options = [ "-soundhw hda" ]; } ];
|
||||
})).vm;
|
||||
};
|
||||
targets = rec {
|
||||
minimal = {
|
||||
name = "minimal";
|
||||
modules = [
|
||||
(modulePath + (toPath "/installer/cd-dvd/installation-cd-minimal.nix"))
|
||||
(modulePath + (toPath "/installer/cd-dvd/channel.nix"))
|
||||
];
|
||||
};
|
||||
mate = {
|
||||
name = "mate";
|
||||
modules = [
|
||||
(modulePath + (toPath "/installer/cd-dvd/installation-cd-graphical-base.nix"))
|
||||
./modules/mate.nix
|
||||
(modulePath + (toPath "/installer/cd-dvd/channel.nix"))
|
||||
];
|
||||
};
|
||||
};
|
||||
allTargets = mapAttrs (name: value: (makeSubTargets value)) targets;
|
||||
in {
|
||||
inherit tarball;
|
||||
image = allTargets;
|
||||
pkgs.espeakup = hydraJob (pkgs.callPackage ./pkgs/espeakup.nix {});
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue