about summary refs log tree commit diff
path: root/overlays/patches/emacs/overlay/hydra
diff options
context:
space:
mode:
Diffstat (limited to 'overlays/patches/emacs/overlay/hydra')
-rw-r--r--overlays/patches/emacs/overlay/hydra/default.nix99
-rw-r--r--overlays/patches/emacs/overlay/hydra/emacsen-cross.nix25
-rw-r--r--overlays/patches/emacs/overlay/hydra/emacsen.nix16
-rw-r--r--overlays/patches/emacs/overlay/hydra/packages-gcc.nix4
-rw-r--r--overlays/patches/emacs/overlay/hydra/packages-git.nix4
-rw-r--r--overlays/patches/emacs/overlay/hydra/packages-unstable.nix4
-rw-r--r--overlays/patches/emacs/overlay/hydra/packages.nix4
-rw-r--r--overlays/patches/emacs/overlay/hydra/pkgs.nix18
-rw-r--r--overlays/patches/emacs/overlay/hydra/spec.json25
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
+    }
+  }
+}