name: CI on: pull_request: push: jobs: matrix: name: Generate matrix runs-on: ubuntu-latest outputs: matrix: ${{ steps.gen-matrix.outputs.matrix }} steps: - name: Checkout repo uses: actions/checkout@v4 - name: Install Nix uses: DeterminateSystems/nix-installer-action@v10 - name: Genrate matrix id: gen-matrix run: | echo "matrix=$(nix eval --impure --json --expr '(import ./constants.nix).ghcVersions')" \ >> $GITHUB_OUTPUT nix-build-packages: needs: matrix runs-on: macos-latest strategy: fail-fast: false matrix: ghc: ${{ fromJson(needs.matrix.outputs.matrix) }} name: Nix build (${{ matrix.ghc }}) steps: - name: Checkout repo uses: actions/checkout@v3 - name: Install Nix uses: DeterminateSystems/nix-installer-action@v10 - name: Setup cache uses: DeterminateSystems/magic-nix-cache-action@main - name: Build and test run: | NAME=$(nix eval --impure --raw --expr '(import ./constants.nix).name')-${{ matrix.ghc }} nix -L build .#$NAME nix run .#$NAME -- domains nix-build-devshell: name: Nix build devshell runs-on: macos-latest steps: - name: Checkout repo uses: actions/checkout@v4 - name: Install Nix uses: DeterminateSystems/nix-installer-action@v10 - name: Setup cache uses: DeterminateSystems/magic-nix-cache-action@main - name: Build and test run: | nix -L develop . --command echo "OK" stack-build: name: Stack build runs-on: macos-latest steps: - name: Checkout repo uses: actions/checkout@v4 - name: Build and test run: | stack run -- domains