diff options
Diffstat (limited to 'overlays/patches/emacs/overlay/hydra')
9 files changed, 199 insertions, 0 deletions
diff --git a/overlays/patches/emacs/overlay/hydra/default.nix b/overlays/patches/emacs/overlay/hydra/default.nix new file mode 100644 index 000000000000..97d015f8ed4d --- /dev/null +++ b/overlays/patches/emacs/overlay/hydra/default.nix @@ -0,0 +1,99 @@ +{ nixpkgs, declInput }: +let + pkgs = import nixpkgs {}; + + mkJobset = { + nixpkgsRelease + , nixFile + , descriptionNote + }: { + enabled = 1; + hidden = false; + description = "Emacs-overlay jobset for nixpkgs branch ${nixpkgsRelease} (${descriptionNote})"; + nixexprinput = "src"; + nixexprpath = "hydra/${nixFile}"; + checkinterval = 1800; + schedulingshares = 100; + enableemail = false; + emailoverride = ""; + keepnr = 3; + type = 0; # Non-flake (legacy) + inputs = { + src = { + type = "git"; + value = "https://github.com/nix-community/emacs-overlay.git"; + emailresponsible = false; + }; + nixpkgs = { + type = "git"; + value = "https://github.com/NixOS/nixpkgs.git ${nixpkgsRelease}"; + emailresponsible = false; + }; + }; + }; + + jobsets = { + + unstable = mkJobset { + nixpkgsRelease = "nixos-unstable"; + nixFile = "emacsen.nix"; + descriptionNote = "emacs"; + }; + + stable = mkJobset { + nixpkgsRelease = "nixos-22.05"; + nixFile = "emacsen.nix"; + descriptionNote = "emacs"; + }; + + unstable-cross = mkJobset { + nixpkgsRelease = "nixos-unstable"; + nixFile = "emacsen-cross.nix"; + descriptionNote = "emacs cross builds"; + }; + + stable-cross = mkJobset { + nixpkgsRelease = "nixos-22.05"; + nixFile = "emacsen-cross.nix"; + descriptionNote = "emacs cross builds"; + }; + + unstable-pkgs = mkJobset { + nixpkgsRelease = "nixos-unstable"; + nixFile = "packages.nix"; + descriptionNote = "emacs packages"; + }; + + unstable-rc-pkgs = mkJobset { + nixpkgsRelease = "nixos-unstable"; + nixFile = "packages-unstable.nix"; + descriptionNote = "emacs packages (pre-release)"; + }; + + unstable-git-pkgs = mkJobset { + nixpkgsRelease = "nixos-unstable"; + nixFile = "packages-git.nix"; + descriptionNote = "emacs packages (git)"; + }; + + unstable-gcc-pkgs = mkJobset { + nixpkgsRelease = "nixos-unstable"; + nixFile = "packages-gcc.nix"; + descriptionNote = "emacs packages (native-comp)"; + }; + + }; + +in { + jobsets = pkgs.runCommand "spec.json" {} '' + cat <<EOF + ${builtins.toXML declInput} + EOF + cat > spec.json <<EOF + ${builtins.toJSON jobsets} + EOF + + cat spec.json | ${pkgs.jq}/bin/jq -r . > $out + + ''; +} diff --git a/overlays/patches/emacs/overlay/hydra/emacsen-cross.nix b/overlays/patches/emacs/overlay/hydra/emacsen-cross.nix new file mode 100644 index 000000000000..a3be23ab2bad --- /dev/null +++ b/overlays/patches/emacs/overlay/hydra/emacsen-cross.nix @@ -0,0 +1,25 @@ +{ nixpkgs }: +let + crossTargets = [ "aarch64-multiplatform" ]; + pkgs = import nixpkgs { + overlays = [ + (import ../default.nix) + ]; + }; + inherit (pkgs) lib; +in +lib.fold lib.recursiveUpdate { } + (builtins.map + (target: + let + targetPkgs = pkgs.pkgsCross.${target}; + in + lib.mapAttrs' (name: job: lib.nameValuePair "${name}-${target}" job) + ({ + inherit (targetPkgs) emacsUnstable emacsUnstable-nox; + inherit (targetPkgs) emacsGit emacsGit-nox; + inherit (targetPkgs) emacsPgtk; + } // lib.optionalAttrs (lib.hasAttr "libgccjit" targetPkgs) { + inherit (targetPkgs) emacsNativeComp emacsGitNativeComp emacsPgtkNativeComp; + })) + crossTargets) diff --git a/overlays/patches/emacs/overlay/hydra/emacsen.nix b/overlays/patches/emacs/overlay/hydra/emacsen.nix new file mode 100644 index 000000000000..d5278f13e80e --- /dev/null +++ b/overlays/patches/emacs/overlay/hydra/emacsen.nix @@ -0,0 +1,16 @@ +{ nixpkgs }: +let + pkgs = import nixpkgs { + overlays = [ + (import ../default.nix) + ]; + }; + inherit (pkgs) lib; + +in { + inherit (pkgs) emacsUnstable emacsUnstable-nox; + inherit (pkgs) emacsGit emacsGit-nox; + inherit (pkgs) emacsPgtk; +} // lib.optionalAttrs (lib.hasAttr "libgccjit" pkgs) { + inherit (pkgs) emacsNativeComp emacsGitNativeComp emacsPgtkNativeComp; +} diff --git a/overlays/patches/emacs/overlay/hydra/packages-gcc.nix b/overlays/patches/emacs/overlay/hydra/packages-gcc.nix new file mode 100644 index 000000000000..4a9648d552d8 --- /dev/null +++ b/overlays/patches/emacs/overlay/hydra/packages-gcc.nix @@ -0,0 +1,4 @@ +{ nixpkgs }: +let + pkgs = import ./pkgs.nix nixpkgs; +in pkgs.mkEmacsSet pkgs.emacsGcc diff --git a/overlays/patches/emacs/overlay/hydra/packages-git.nix b/overlays/patches/emacs/overlay/hydra/packages-git.nix new file mode 100644 index 000000000000..04f773636617 --- /dev/null +++ b/overlays/patches/emacs/overlay/hydra/packages-git.nix @@ -0,0 +1,4 @@ +{ nixpkgs }: +let + pkgs = import ./pkgs.nix nixpkgs; +in pkgs.mkEmacsSet pkgs.emacsGit diff --git a/overlays/patches/emacs/overlay/hydra/packages-unstable.nix b/overlays/patches/emacs/overlay/hydra/packages-unstable.nix new file mode 100644 index 000000000000..f43287adc557 --- /dev/null +++ b/overlays/patches/emacs/overlay/hydra/packages-unstable.nix @@ -0,0 +1,4 @@ +{ nixpkgs }: +let + pkgs = import ./pkgs.nix nixpkgs; +in pkgs.mkEmacsSet pkgs.emacsUnstable diff --git a/overlays/patches/emacs/overlay/hydra/packages.nix b/overlays/patches/emacs/overlay/hydra/packages.nix new file mode 100644 index 000000000000..ebe89666185e --- /dev/null +++ b/overlays/patches/emacs/overlay/hydra/packages.nix @@ -0,0 +1,4 @@ +{ nixpkgs }: +let + pkgs = import ./pkgs.nix nixpkgs; +in pkgs.mkEmacsSet pkgs.emacs diff --git a/overlays/patches/emacs/overlay/hydra/pkgs.nix b/overlays/patches/emacs/overlay/hydra/pkgs.nix new file mode 100644 index 000000000000..c926f6654165 --- /dev/null +++ b/overlays/patches/emacs/overlay/hydra/pkgs.nix @@ -0,0 +1,18 @@ +nixpkgs: + +import nixpkgs { + overlays = [ + (import ../default.nix) + (self: super: let + inherit (self) lib; + in { + # Build package sets and remove merged root-level packages since they are + # both present in each respective sub set and in the top-level + mkEmacsSet = emacs: super.recurseIntoAttrs ( + lib.filterAttrs + (n: v: builtins.typeOf v == "set" && ! lib.isDerivation v) + (self.emacsPackagesFor emacs) + ); + }) + ]; +} diff --git a/overlays/patches/emacs/overlay/hydra/spec.json b/overlays/patches/emacs/overlay/hydra/spec.json new file mode 100644 index 000000000000..6c3a62461f27 --- /dev/null +++ b/overlays/patches/emacs/overlay/hydra/spec.json @@ -0,0 +1,25 @@ +{ + "enabled": 1, + "hidden": false, + "description": "Emacs-overlay jobsets", + "nixexprinput": "src", + "nixexprpath": "hydra/default.nix", + "checkinterval": 1800, + "schedulingshares": 100, + "enableemail": false, + "emailoverride": "", + "keepnr": 3, + "type": 0, + "inputs": { + "src": { + "type": "git", + "value": "https://github.com/nix-community/emacs-overlay.git master", + "emailresponsible": false + }, + "nixpkgs": { + "type": "git", + "value": "https://github.com/NixOS/nixpkgs.git nixos-unstable", + "emailresponsible": false + } + } +} |