diff options
-rw-r--r-- | .travis.yml | 4 | ||||
-rw-r--r-- | ci-builds.nix | 17 | ||||
-rw-r--r-- | default.nix | 22 | ||||
-rw-r--r-- | read-tree.nix | 4 |
4 files changed, 21 insertions, 26 deletions
diff --git a/.travis.yml b/.travis.yml index 6a47fc1d704d..2ab57adb5906 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,4 @@ before_script: - nix-env -f '<nixpkgs>' -iA third_party.cachix - cachix use tazjin script: - # All of my own tools are under the top-level 'tazjin' attribute - # set, this command will build all of them. - - nix-build -A ciProjects | cachix push tazjin + - nix-build ci-builds.nix | cachix push tazjin diff --git a/ci-builds.nix b/ci-builds.nix new file mode 100644 index 000000000000..916317ea56f0 --- /dev/null +++ b/ci-builds.nix @@ -0,0 +1,17 @@ +# This file is invoked by the CI build and recursively filters the +# package set for attributes that should be built automatically. +# +# Packages can be opted-in to being built by CI by setting +# `meta.enableCI = true`. +# +# TODO(tazjin): Actually implement the above. + +let + pkgs = import ./default.nix; +in with pkgs; [ + services.tazblog + services.nixcon-demo + tools.kms_pass + tools.blog_cli +] + diff --git a/default.nix b/default.nix index 6652d7834da8..f69c96ab4cc9 100644 --- a/default.nix +++ b/default.nix @@ -12,15 +12,6 @@ let # package set is not available here. fix = f: let x = f x; in x; - # Derivations that have `meta.enableCI` set to `true` should be - # built by the CI system on every commit. This code implements - # filtering of all derivations in the local sets against this - # condition. - filterCI = lib: pkgs: let - inherit (lib) collect isDerivation filterAttrsRecursive; - ciCondition = _: x: (!isDerivation x) || ((x ? meta.enableCI) && (x.meta.enableCI)); - in collect isDerivation (filterAttrsRecursive ciCondition pkgs); - # Global configuration that all packages are called with. config = pkgs: { inherit pkgs; @@ -45,19 +36,6 @@ in fix(self: { # Elevate 'lib' from nixpkgs lib = import (self.third_party.nixpkgsSrc + "/lib"); - - # Collect all projects that should be built by CI - # ciProjects = (filterCI self.lib self.services) - # ++ (filterCI super.lib self.tools) - # ++ (filterCI super.lib self.third_party); - # TODO(tazjin): re-enable automatic filtering for this, requires - # read-tree fixes - ciProjects = with self; [ - services.tazblog - services.nixcon-demo - tools.kms_pass - tools.blog_cli - ]; } # Add local packages as structured by readTree diff --git a/read-tree.nix b/read-tree.nix index 2e182dfbdeef..8aa504efc21a 100644 --- a/read-tree.nix +++ b/read-tree.nix @@ -1,5 +1,7 @@ -# TODO(tazjin): if there's a default.nix, keep traversing but don't import .nix files? # TODO(tazjin): avoid {} by only calling functions *after* checking what they are +# TODO(tazjin): add an attribute to derivations that have children to +# indicate that traversal should continue for ... traversal use-cases +# (such as CI package filtering) args: initPath: |