name: Test on: pull_request: schedule: - cron: "30 2 * * *" jobs: tests: strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v31 with: # TODO: Adjust uninstall to not need channel nix_path: nixpkgs=channel:nixos-25.05 extra_nix_config: | experimental-features = nix-command flakes - run: | if grep -R --exclude stdlib-extended.nix literalExample modules ; then echo "Error: literalExample should be replaced by literalExpression" > /dev/stderr exit 1 fi - run: nix build --show-trace .#docs-jsonModuleMaintainers - run: ./format --ci - name: Test init --switch with locked inputs run: | # Copy lock file to home directory for consistent testing mkdir -p ~/.config/home-manager cp flake.lock ~/.config/home-manager/ nix run .#home-manager -- init --switch --override-input home-manager . # FIXME: nix broken on darwin if: matrix.os != 'macos-latest' - run: yes | nix run . -- uninstall # FIXME: nix broken on darwin if: matrix.os != 'macos-latest' - name: Run tests run: nix build -j auto --show-trace --option allow-import-from-derivation false --reference-lock-file flake.lock "./tests#test-all-no-big" env: GC_INITIAL_HEAP_SIZE: 4294967296 - name: Run tests (with IFD) run: nix build -j auto --show-trace --reference-lock-file flake.lock "./tests#test-all-no-big" env: GC_INITIAL_HEAP_SIZE: 4294967296