diff --git a/.gitlab-ci.dhall b/.gitlab-ci.dhall deleted file mode 100644 index 2e8b36a6c276aa1ab4b19bc6bcaeb279152e39ef..0000000000000000000000000000000000000000 --- a/.gitlab-ci.dhall +++ /dev/null @@ -1,26 +0,0 @@ -let Prelude = - env:DHALL_PRELUDE - ? https://raw.githubusercontent.com/dhall-lang/dhall-lang/v20.1.0/Prelude/package.dhall - sha256:26b0ef498663d269e4dc6a82b0ee289ec565d683ef4c00d0ebdd25333a5a3c98 - -let H = ./horizon-spec.dhall - -let Step = { script : List Text } - -let toStep - : ∀(id : Text) → ∀(prefix : Text) → ∀(x : Text) → H.Attr Step - = λ(id : Text) → - λ(prefix : Text) → - λ(x : Text) → - { mapKey = id, mapValue.script = [ "nix build -L .#${prefix}.${x}" ] } - -let input = Prelude.Map.keys Text H.HaskellPackage.Type (./horizon.dhall).packages - -let packages = - Prelude.List.map - Text - (H.Attr Step) - (λ(x : Text) → toStep "Package ${x}" "packages.x86_64-linux" x) - (input : List Text) - -in packages diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 46f22a0ae677a42b3cf6021534ab3f89b10e11b8..768515efe582ff22dccd5ac83828479dc2495db8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,19 +1,15 @@ stages: - generate -- eval - check +- impure generate-flake-ci: stage: generate - script: nix run ".#horizon-gen-gitlab-ci" > flake-ci.yml + script: nix run "git+https://gitlab.homotopic.tech/haskell/flake-to-gitlab-ci" > flake-ci.yml artifacts: paths: - flake-ci.yml -eval-flake: - stage: eval - script: nix flake show - flake-ci: stage: check trigger: @@ -21,3 +17,12 @@ flake-ci: - artifact: flake-ci.yml job: generate-flake-ci strategy: depend + +impure-tests: + stage: impure + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: manual + allow_failure: true + script: + - nix run .#run-impure-tests diff --git a/flake.lock b/flake.lock index 7ec8c7800bf62acab1743370778d4aa80260156f..b7c767adfe9984b1ee6109b9000b0b69b4d3d618 100644 --- a/flake.lock +++ b/flake.lock @@ -67,11 +67,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1655192403, - "narHash": "sha256-XyKDvRGDh8VXA6zN8DUTnDaTMrk0MxMKg70MaAX1A2Y=", + "lastModified": 1669815989, + "narHash": "sha256-yDE8uxa/O633VeRBlJKSY5q9JtzoBoMANvgupdI42YI=", "ref": "refs/heads/master", - "rev": "a7ae54afdc4c05a5aabf202d5a76d02705eb6147", - "revCount": 28, + "rev": "5b97bd76dd6756dfc29a32d25a5c78c0522bac10", + "revCount": 39, "type": "git", "url": "https://gitlab.homotopic.tech/nix/lint-utils" }, diff --git a/flake.nix b/flake.nix index bc3b44baf694df63767b77824707d0cf2032f1d0..91cfe5492365ff361dd264a6f640e0ebc529fa99 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,7 @@ in with pkgs.lib; with pkgs.writers; + with lint-utils.writers.${system}; let horizon-gen-nix-app = get-flake horizon-gen-nix; @@ -52,6 +53,23 @@ horizon-gen-gitlab-ci = writeBashBin "gen-gitlab-ci" "${pkgs.dhall-json}/bin/dhall-to-yaml --file .gitlab-ci.dhall"; + run-impure-tests = writePorcelainOrDieBin { + name = "run-impure-tests"; + src = ./.; + command = '' + export PATH=$PATH:${pkgs.nix-prefetch-git}/bin:${pkgs.cabal-install}/bin + cabal update + rm pkgs -rf && nix run .#horizon-gen-nix make-package-set; + nixpkgs-fmt pkgs/* + ''; + advice = "Try removing the offending packages from pkgs/ and running nix run .#horizon-gen-nix make-package-set"; + }; + + run-impure-tests-app = { + type = "app"; + program = "${run-impure-tests}/bin/run-impure-tests"; + }; + in { @@ -64,11 +82,12 @@ program = "${horizon-gen-gitlab-ci}/bin/gen-gitlab-ci"; }; + run-impure-tests = run-impure-tests-app; }; checks = { - dhall-format = lint-utils.outputs.linters.${system}.dhall-format ./.; - nixpkgs-fmt = lint-utils.outputs.linters.${system}.nixpkgs-fmt ./.; + dhall-format = lint-utils.outputs.linters.${system}.dhall-format { src = ./. }; + nixpkgs-fmt = lint-utils.outputs.linters.${system}.nixpkgs-fmt { src = ./. }; }; inherit legacyPackages; diff --git a/horizon-spec.dhall b/horizon-spec.dhall deleted file mode 100644 index 7a3627deadc7ee259edd2fca6a5a9300af2438ed..0000000000000000000000000000000000000000 --- a/horizon-spec.dhall +++ /dev/null @@ -1,2 +0,0 @@ -https://gitlab.homotopic.tech/horizon/horizon-spec/-/raw/0.2.1/dhall/package.dhall - sha256:cfa9ee0679c61d8ac9daef43581b8edd61219afbbea9b74627057e33fe5d1abb diff --git a/horizon.dhall b/horizon.dhall index 421c8b9def5be4920aee2c748551a3e36fe6713b..e3b7fa19a0c2a99a71adbd6d4d6551fac90a9d44 100644 --- a/horizon.dhall +++ b/horizon.dhall @@ -1,4 +1,5 @@ -let H = ./horizon-spec.dhall +let H = https://gitlab.homotopic.tech/horizon/horizon-spec/-/raw/0.2.1/dhall/package.dhall + sha256:cfa9ee0679c61d8ac9daef43581b8edd61219afbbea9b74627057e33fe5d1abb let callHorizonAdopted : H.Name → H.Revision → H.Attr H.HaskellPackage.Type