diff --git a/default.nix b/default.nix index f3f0f0c..bdf5a7c 100644 --- a/default.nix +++ b/default.nix @@ -13,7 +13,7 @@ let nic_bus = callPackage ./pkgs/nic_bus { }; }); nova = callPackage ./NOVA { }; - solo5 = callPackage ./solo5 { }; + solo5 = callPackage ./pkgs/solo5 { }; }; toolchainOverlay = import ./toolchain-overlay; diff --git a/hydra/hydra.json b/hydra/jobsets.json similarity index 70% rename from hydra/hydra.json rename to hydra/jobsets.json index 2ab15c4..352e97a 100644 --- a/hydra/hydra.json +++ b/hydra/jobsets.json @@ -1,13 +1,13 @@ { "enabled": 1, - "hidden": false, - "description": "Genode packages collection", + "hidden": true, + "description": ".jobsets", "nixexprinput": "genodepkgs", "nixexprpath": "hydra/jobsets.nix", "checkinterval": 300, "schedulingshares": 100, "enableemail": false, - "emailoverride": "", + "emailoverride": "ehmry@posteo.net", "keepnr": 3, "inputs": { "genodepkgs": { @@ -19,6 +19,11 @@ "type": "git", "value": "https://gitea.c3d2.de/ehmry/nixpkgs.git hybrid-19.09", "emailresponsible": false + }, + "solo5PullRequests": { + "type": "githubpulls", + "value": "solo5 solo5", + "emailresponsible": false } } } diff --git a/hydra/jobsets.nix b/hydra/jobsets.nix index d7b5396..6284bcd 100644 --- a/hydra/jobsets.nix +++ b/hydra/jobsets.nix @@ -1,5 +1,6 @@ { genodepkgs ? ../default.nix , nixpkgs ? import ../nixpkgs.nix +, solo5PullRequests }: let @@ -17,7 +18,9 @@ let keepnr = 8; }; - jobsets = { + solo5 = import ./solo5-jobs.nix { pullRequests = solo5PullRequests; }; + + jobsets = ({ trunk = mkJobSet { description = "Genodepkgs master branch"; @@ -65,6 +68,6 @@ let }; }; - }; + } // solo5); in { jobsets = pkgs.writeText "jobsets.json" (builtins.toJSON jobsets); } diff --git a/hydra/solo5-jobs.nix b/hydra/solo5-jobs.nix new file mode 100644 index 0000000..3c33f6f --- /dev/null +++ b/hydra/solo5-jobs.nix @@ -0,0 +1,61 @@ +# SPDX-FileCopyrightText: Emery Hemingway +# +# SPDX-License-Identifier: LicenseRef-Hippocratic-1.1 + +{ pullRequests }: + +with builtins; + +let + pullRequests' = fromJSON (readFile pullRequests); + + prToJob = pr: + { + name = "solo5-${toString pr.number}"; + value = { + + description = pr.title; + nixexprpath = "hydra/solo5.nix"; + enabled = 1; + hidden = false; + nixexprinput = "genodepkgs"; + checkinterval = 300; + schedulingshares = 100; + enableemail = false; + emailoverride = ""; + keepnr = 8; + + inputs = { + + prSrc = { + type = "git"; + value = "${pr.head.repo.clone_url} ${pr.head.ref}"; + emailresponsible = false; + }; + + genodepkgs = { + type = "git"; + value = "https://gitea.c3d2.de/ehmry/genodepkgs.git master"; + emailresponsible = false; + }; + + nixpkgs = { + type = "git"; + value = "https://gitea.c3d2.de/ehmry/nixpkgs.git hybrid-19.09"; + emailresponsible = false; + }; + + nim-overlay = { + type = "git"; + value = "https://git.sr.ht/~ehmry/nim-overlay"; + emailresponsible = false; + }; + + }; + + }; + }; + + jobs = map prToJob (attrValues pullRequests'); + +in listToAttrs jobs diff --git a/hydra/solo5.nix b/hydra/solo5.nix new file mode 100644 index 0000000..a00b818 --- /dev/null +++ b/hydra/solo5.nix @@ -0,0 +1,20 @@ +# SPDX-FileCopyrightText: Emery Hemingway +# +# SPDX-License-Identifier: LicenseRef-Hippocratic-1.1 + +{ genodepkgs, nixpkgs, nim-overlay, prSrc }: + +let pkgs = import genodepkgs { inherit nixpkgs nim-overlay; }; +in { + build.x86_64.solo5 = pkgs.solo5.overrideAttrs (attrs: { + src = prSrc; + preeConfigure = '' + cat <include/solo5/solo5_version.h.distrib + #ifndef __VERSION_H__ + #define __VERSION_H__ + #define SOLO5_VERSION "pull-request-test" + #endif + EOM + ''; + }); +} diff --git a/solo5/default.nix b/pkgs/solo5/default.nix similarity index 83% rename from solo5/default.nix rename to pkgs/solo5/default.nix index 0ef1550..2b8c226 100644 --- a/solo5/default.nix +++ b/pkgs/solo5/default.nix @@ -20,14 +20,20 @@ in stdenv.mkDerivation { enableParallelBuilding = true; - configurePhase = "HOSTCC=${buildPackages.stdenv.cc}/bin/cc sh configure.sh"; + configurePhase = '' + runHook preConfigure + HOSTCC=${buildPackages.stdenv.cc}/bin/cc sh configure.sh + runHook postConfigure + ''; installPhase = '' + runHook preInstall mkdir -p $out/bin $tests/bin make install-opam-genode PREFIX=$out for test in tests/*/*.genode; do cp $test $tests/bin/solo5-`basename $test .genode` done + runHook postInstall ''; meta = with stdenv.lib; { diff --git a/solo5/genode.patch b/pkgs/solo5/genode.patch similarity index 100% rename from solo5/genode.patch rename to pkgs/solo5/genode.patch