Repository navigation
Bump nixpkgs pins #4181
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "Run tests with ghc967" | |
| on: | |
| pull_request: | |
| branches: | |
| - master | |
| push: | |
| branches: | |
| - master | |
| defaults: | |
| run: | |
| shell: bash | |
| # do we really want nixos-unstable? | |
| env: | |
| NIX_PATH: "nixpkgs=channel:nixos-unstable" | |
| # These jobs used to run on `[self-hosted, linux]` runners that had Nix | |
| # preinstalled. Those runners went away, so every run just queued until | |
| # GitHub cancelled it at the 24h timeout. They now run on GitHub-hosted | |
| # runners and install Nix themselves via the shared composite action in | |
| # `.github/actions/install-nix`. | |
| jobs: | |
| nix-build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Running the nix-build tests..." | |
| run: "./test/tests.sh ghc967 nix-build" | |
| unit-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Running the unit tests..." | |
| run: "./test/tests.sh ghc967 unit-tests" | |
| runghc: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking that a nix-shell works for runghc..." | |
| run: "./test/tests.sh ghc967 runghc" | |
| cabal: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking that a nix-shell works for cabal..." | |
| run: "./test/tests.sh ghc967 cabal" | |
| cabal-doExactConfig: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking that a nix-shell works for cabal (doExactConfig component)..." | |
| run: "./test/tests.sh ghc967 cabal-doExactConfig" | |
| tests-benchmarks: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking that a nix-shell works for a project with test-suite build-tools and benchmarks..." | |
| run: "./test/tests.sh ghc967 tests-benchmarks" | |
| multi-target: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking that a nix-shell works for a multi-target project..." | |
| run: "./test/tests.sh ghc967 multi-target" | |
| shellFor-single-package: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking shellFor works for a cabal project, multiple packages..." | |
| run: "./test/tests.sh ghc967 shellFor-single-package" | |
| shellFor-multiple-package: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking shellFor works for a cabal project, single package...y" | |
| run: "./test/tests.sh ghc967 shellFor-multiple-package" | |
| shellFor-hoogle: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking shellFor works for a cabal project, single package..." | |
| run: "./test/tests.sh ghc967 shellFor-hoogle" | |
| shellFor-not-depends: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking shellFor does not depend on given packages...y" | |
| run: "./test/tests.sh ghc967 shellFor-not-depends" | |
| maintainer-scripts: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking the maintainer scripts...y" | |
| run: "./test/tests.sh ghc967 maintainer-scripts" | |
| plan-extra-hackages: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking that plan construction works with extra Hackages..." | |
| run: "./test/tests.sh ghc967 plan-extra-hackages" | |
| build-extra-hackages: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: Checking that package with extra Hackages can be build..." | |
| run: "./test/tests.sh ghc967 build-extra-hackages" | |
| hix: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Run tests with ghc967: End-2-end test of hix project initialization and flakes development shell ..." | |
| run: "./test/tests.sh ghc967 hix" | |
| # template: | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - uses: ./.github/actions/install-nix | |
| # - name: "Run tests with ghc967: End-2-end test of hix project initialization and flakes development shell ..." | |
| # run: "./test/tests.sh ghc967 template" | |
| docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Test examples in documentation ..." | |
| run: "./test/tests.sh ghc967 docs" | |
| # The `timeout-minutes` on the hydra-ifdLevel jobs were tuned for | |
| # self-hosted runners with a warm Nix store. A GitHub-hosted runner starts | |
| # empty and has fewer cores, so it spends a large part of the job just | |
| # fetching substitutes; the limits are raised accordingly. | |
| hydra-ifdLevel-0-and-1: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Check that jobset will evaluate in Hydra at ifdLevel 0 and 1" | |
| run: | | |
| nix-build build.nix -A maintainer-scripts.check-hydra -o check-hydra.sh | |
| sed -i 's/runningHydraEvalTest = false;/runningHydraEvalTest = true;/' flake.nix | |
| sed -i 's/evalSystem = builtins.currentSystem or "aarch64-darwin";/evalSystem = "x86_64-linux";/' flake.nix | |
| test "$(grep -Ec '^[[:space:]]*evalSystem = "x86_64-linux";$' flake.nix)" -eq 1 | |
| sed -i 's/ifdLevel = 3;/ifdLevel = 0;/' flake.nix | |
| ./check-hydra.sh | |
| sed -i 's/ifdLevel = 0;/ifdLevel = 1;/' flake.nix | |
| ./check-hydra.sh | |
| hydra-ifdLevel-2: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Check that jobset will evaluate in Hydra at ifdLevel 2" | |
| run: | | |
| nix-build build.nix -A maintainer-scripts.check-hydra -o check-hydra.sh | |
| sed -i 's/runningHydraEvalTest = false;/runningHydraEvalTest = true;/' flake.nix | |
| sed -i 's/evalSystem = builtins.currentSystem or "aarch64-darwin";/evalSystem = "x86_64-linux";/' flake.nix | |
| test "$(grep -Ec '^[[:space:]]*evalSystem = "x86_64-linux";$' flake.nix)" -eq 1 | |
| sed -i 's/ifdLevel = 3;/ifdLevel = 2;/' flake.nix | |
| ./check-hydra.sh | |
| # Disabled for now: full-IFD evaluation does not fit a GitHub-hosted runner. | |
| # It was cancelled at the 120 minute limit still inside its single | |
| # `nix-eval-jobs` call, having never reached check-hydra's "OK" line, so the | |
| # duration it actually needs is unknown and may exceed GitHub's 6 hour job | |
| # cap. For scale, `hydra-ifdLevel-2` completes in ~18 minutes on the same | |
| # runner. ifdLevel 0/1/2 above still cover evaluation regressions cheaply, | |
| # and Hydra continues to run the full ifdLevel 3 evaluation on machines with | |
| # the darwin builders and warm store it was designed for. | |
| # hydra-ifdLevel-3: | |
| # runs-on: ubuntu-latest | |
| # timeout-minutes: 120 | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - uses: ./.github/actions/install-nix | |
| # - name: "Check that jobset will evaluate in Hydra at ifdLevel 3" | |
| # run: | | |
| # nix-build build.nix -A maintainer-scripts.check-hydra -o check-hydra.sh | |
| # sed -i 's/runningHydraEvalTest = false;/runningHydraEvalTest = true;/' flake.nix | |
| # sed -i 's/evalSystem = builtins.currentSystem or "aarch64-darwin";/evalSystem = "x86_64-linux";/' flake.nix | |
| # test "$(grep -Ec '^[[:space:]]*evalSystem = "x86_64-linux";$' flake.nix)" -eq 1 | |
| # ./check-hydra.sh | |
| closure-size: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Check closure size with ghc967" | |
| run: | | |
| nix-build build.nix -A maintainer-scripts.check-closure-size --argstr compiler-nix-name ghc967 -o check-closure-size.sh | |
| echo "+++ Closure size (MB)" | |
| ./check-closure-size.sh | |
| update-docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| # `update-docs.sh` does `git checkout gh-pages`, so it needs that branch. | |
| # actions/checkout defaults to a shallow, single-branch fetch, whose | |
| # refspec is only the branch under test -- the script's `git fetch origin` | |
| # would not bring `gh-pages` and the checkout would fail with | |
| # "pathspec 'gh-pages' did not match any file(s) known to git". | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Update docs" | |
| run: | | |
| nix-build build.nix -A maintainer-scripts.update-docs -o update-docs.sh | |
| ./update-docs.sh | |
| check-materialization-concurrency: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Make sure materialize function does not limit concurrency" | |
| run: | | |
| nix-build build.nix -A maintainer-scripts.check-materialization-concurrency -o check-materialization-concurrency.sh | |
| ./check-materialization-concurrency.sh | |
| check-path-support: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Make sure non store paths like can be used as src" | |
| run: | | |
| nix-build build.nix -A maintainer-scripts.check-path-support --argstr compiler-nix-name ghc967 -o check-path-support.sh | |
| ./check-path-support.sh | |
| haskell-nix-roots-do-not-require-IFDs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Check that the haskell.nix roots do not require IFDs" | |
| run: nix build .#roots.x86_64-linux --accept-flake-config --option allow-import-from-derivation false | |
| # These two evaluated `requiredJobs.x86_64-darwin.…`, which cannot work on a | |
| # linux runner: evaluating a darwin jobset needs its import-from-derivation | |
| # inputs built for darwin, and `--builders ''` deliberately forbids farming | |
| # that out (that is the property being tested). The darwin outputs are not | |
| # in cache.iog.io or cache.zw3rk.com either, so there is nothing to | |
| # substitute. Evaluate the linux jobsets instead, so the check runs on the | |
| # same platform as the runner. | |
| hydra-without-remote-builders-ghc967: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Check that evaluation of hydra jobs works without using remote builders for GHC 9.6.7" | |
| run: | | |
| sed -i 's/runningHydraEvalTest = true;/runningHydraEvalTest = false;/' flake.nix | |
| sed -i 's/evalSystem = builtins.currentSystem or "aarch64-darwin";/evalSystem = "x86_64-linux";/' flake.nix | |
| test "$(grep -Ec '^[[:space:]]*evalSystem = "x86_64-linux";$' flake.nix)" -eq 1 | |
| nix path-info --derivation .#requiredJobs.x86_64-linux.required-unstable-ghc967-native --show-trace --builders '' | |
| # Was `ghc9102`, but the 9.10 entry in the CI matrix is now `ghc9103`, so | |
| # `requiredJobs.….required-unstable-ghc9102-native` no longer exists and this | |
| # job could only fail on a missing attribute. That went unnoticed because | |
| # the workflow has not run since the self-hosted runners disappeared. | |
| hydra-without-remote-builders-ghc9103: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Check that evaluation of hydra jobs works without using remote builders for GHC 9.10.3" | |
| run: | | |
| sed -i 's/runningHydraEvalTest = true;/runningHydraEvalTest = false;/' flake.nix | |
| sed -i 's/evalSystem = builtins.currentSystem or "aarch64-darwin";/evalSystem = "x86_64-linux";/' flake.nix | |
| test "$(grep -Ec '^[[:space:]]*evalSystem = "x86_64-linux";$' flake.nix)" -eq 1 | |
| nix path-info --derivation .#requiredJobs.x86_64-linux.required-unstable-ghc9103-native --show-trace --builders '' | |
| hix-cabal: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - name: "Check hix -- run github:haskell/cabal/3.10#cabal-install:exe:cabal -- --version" | |
| run: "HIX_DIR=$(mktemp -d) nix run .#hix --accept-flake-config -- run github:haskell/cabal/3.10#cabal-install:exe:cabal --accept-flake-config --override-input haskellNix . -- --version" | |
| check-nix-tools: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/install-nix | |
| - run: nix build ./nix-tools#checks.x86_64-linux.truncate-index --accept-flake-config |