diff --git a/flake.nix b/flake.nix index a70df5c..3f983fb 100644 --- a/flake.nix +++ b/flake.nix @@ -53,5 +53,37 @@ # For `nix flake check`, and Hydra checks = self.packages; + + hydraJobs = + with self.lib; + let + exportFileWrapper = pkg: + hydraJob ( + nixpkgs.legacyPackages.${system}.runCommand "${pkg.name}-exported" { + src = pkg; + } '' + NAME="${pkg.name}" + mkdir -p $out/nix-support + ln -s ${pkg} $out/$NAME + echo file source-dist $out/$NAME >> $out/nix-support/hydra-build-products + '' + ); + wrappers = { + "all-device-scripts" = pkg: + hydraJob pkg; + + "export-config" = exportFileWrapper; + ".*-pillar" = exportFileWrapper; + "switch-.*" = exportFileWrapper; + "ap.*" = exportFileWrapper; + }; + in + builtins.mapAttrs (name: pkg: + builtins.foldl' (result: wrapperName: + if builtins.match wrapperName name != null + then wrappers.${wrapperName} pkg + else result + ) pkg (builtins.attrNames wrappers) + ) self.packages.${system}; }; }