New network transport library based on QUIC #157
Workflow file for this run
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: Continuous integration | |
| on: | |
| push: | |
| branches: ['master'] | |
| paths-ignore: | |
| - 'README.md' | |
| - 'CONTRIBUTING.md' | |
| pull_request: | |
| branches: ['master'] | |
| jobs: | |
| continuous-integration: | |
| # You can skip continuous integration by writing '[ci skip]' or '[skip ci]' in a commit message, | |
| # which is useful to preserve computing resources | |
| # | |
| # For example: | |
| # > git commit -am "[skip ci] fixed x y z" | |
| if: contains(toJson(github.event.commits), '[ci skip]') == false && contains(toJson(github.event.commits), '[skip ci]') == false | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - ghc-version: "8.10.7" | |
| cabal-flags: "" | |
| - ghc-version: "9.0.2" | |
| cabal-flags: "" | |
| - ghc-version: "9.2.8" | |
| cabal-flags: "" | |
| - ghc-version: "9.4.8" | |
| cabal-flags: "" | |
| - ghc-version: "9.6.7" | |
| cabal-flags: "" | |
| - ghc-version: "9.8.4" | |
| cabal-flags: "" | |
| - ghc-version: "9.10.3" | |
| cabal-flags: "" | |
| - ghc-version: "9.12.2" | |
| cabal-flags: "" | |
| runs-on: "ubuntu-latest" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install cabal/ghc | |
| uses: haskell-actions/setup@v2 | |
| id: setup-haskell | |
| with: | |
| ghc-version: ${{ matrix.ghc-version }} | |
| cabal-version: '3.16.0.0' | |
| - name: Generate freeze file | |
| run: | | |
| # Note that the 'ci' flag is important to skip some tests | |
| # which are known to be failing in CI | |
| cabal configure --enable-tests --test-show-details=direct --flags ci | |
| cabal freeze ${{matrix.cabal-flags}} --minimize-conflict-set | |
| cat cabal.project.freeze | |
| - name: Cache cabal work | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| dist-newstyle | |
| ${{ steps.setup-haskell.outputs.cabal-store }} | |
| # We are using the hash of 'cabal.project.local' so that different levels | |
| # of optimizations are cached separately | |
| key: ${{ runner.os }}-${{ hashFiles('cabal.project', 'cabal.project.local') }}-cabal-install | |
| - name: Build dependencies only | |
| run: cabal build all --only-dependencies ${{matrix.cabal-flags}} | |
| - name: Build all packages | |
| run: cabal build all ${{matrix.cabal-flags}} | |
| - name: Run all tests | |
| # We have seen in the past some tests hang for hours, wasting resources. | |
| # The timeout below should be plenty | |
| timeout-minutes: 10 | |
| # We run each test suite one-by-one to better observe problems. | |
| run: cabal test all -j1 ${{matrix.cabal-flags}} | |