diff --git a/.cachix.dhall b/.cachix.dhall new file mode 100644 index 0000000000000000000000000000000000000000..be21b7ae3b912cd83ea146557b55aaec644ec4c7 --- /dev/null +++ b/.cachix.dhall @@ -0,0 +1,34 @@ +let Prelude = + env:DHALL_PRELUDE + ? https://raw.githubusercontent.com/dhall-lang/dhall-lang/v20.1.0/Prelude/package.dhall + sha256:26b0ef498663d269e4dc6a82b0ee289ec565d683ef4c00d0ebdd25333a5a3c98 + +let H = + https://gitlab.horizon-haskell.net/dhall/horizon-spec/-/raw/0.6/dhall/package.dhall + sha256:9a80164572526dc5350f105c8db0790fdf36634629b4cf03402ba14fd173d121 + +let toStep + : Text → Text + = λ(x : Text) → + "nix build --json .#${x} | jq -r '.[].outputs | to_entries[].value' | cachix push horizon" + +let input = + Prelude.Map.keys + Text + H.HaskellPackage.Type + ( merge + { MakePackageSet = + λ(x : H.PackageSetExportSettings) → x.packageSet.packages + , MakeOverlay = λ(x : H.OverlayExportSettings) → x.overlay.packages + } + ./horizon.dhall + ) + +let packages = Prelude.List.map Text Text toStep (input : List Text) + +in Prelude.List.fold + Text + packages + Text + (λ(x : Text) → λ(y : Text) → x ++ "\n" ++ y) + "" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 926dac62bfb764ebbc04b5bb19dd078b5bd875c8..4f8c637c465b8fa248bd0e1e25e629ab55977e3e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ stages: - generate - check +- cache generate-flake-ci: stage: generate @@ -16,3 +17,10 @@ flake-ci: - artifact: flake-ci.yml job: generate-flake-ci strategy: depend + +cachix: + stage: cache + only: + refs: + - master + script: dhall --file .cachix.dhall | dhall text | bash