name: Nix on: schedule: - cron: '0 2 * * *' push: paths-ignore: - 'demo/**' - 'docker/**' - 'Dockerfile' - '.dockerignore' - '.ghci' - '.gitignore' - 'images/**' - 'notebooks/**' - 'stack/**' - 'README.md' - '*.yaml' pull_request: paths-ignore: - 'demo/**' - 'docker/**' - 'Dockerfile' - '.dockerignore' - '.ghci' - '.gitignore' - 'images/**' - 'notebooks/**' - 'stack/**' - 'README.md' - '*.yaml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: if: (github.event_name != 'pull_request' && ! github.event.pull_request.head.repo.fork) || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork) runs-on: ubuntu-latest strategy: fail-fast: false matrix: env: - ihaskell-env-ghc96 - ihaskell-env-ghc98 - ihaskell-env-ghc910 - ihaskell-env-display-ghc96 - ihaskell-env-display-ghc98 # - ihaskell-env-display-ghc910 steps: - uses: actions/checkout@v3 - uses: cachix/install-nix-action@v22 with: install_url: https://releases.nixos.org/nix/nix-2.22.1/install - uses: cachix/cachix-action@v14 with: name: ihaskell signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' - name: Build environment ${{matrix.env}} run: | nix build .#${{matrix.env}} - name: Check acceptance test for ${{matrix.env}} # Don't bother running it with the display envs since we already run it # with the basic envs, and it doesn't test any display stuff. if: ${{ !(contains(matrix.env, fromJSON('"display"'))) }} run: | nix build .#checks.x86_64-linux.${{matrix.env}} -L