Custom Debug Visualisations #320
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
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: {} | |
| workflow_call: {} | |
| env: | |
| haskellDebuggerViewVersion: 0.1.0.0 | |
| haskellDebuggerVersion: 0.10.0.0 | |
| name: Debugger CI | |
| jobs: | |
| build-vscode-extension: | |
| name: Build VSCode Extension | |
| runs-on: ubuntu-latest # or macOS-latest, or windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: cachix/install-nix-action@v31 | |
| with: | |
| nix_path: nixpkgs=channel:nixos-unstable | |
| - name: Build extension | |
| run: | | |
| cd vscode-extension/ | |
| nix-build | |
| - name: Upload extension artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Haskell Debugger Extension | |
| path: vscode-extension/result/haskell-debugger-extension*.vsix | |
| sdist-haskell-debugger: | |
| name: Sdist | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: haskell-actions/setup@v2 | |
| - name: Package hdb | |
| run: cabal sdist | |
| - name: Package haskell-debugger-view | |
| run: cabal sdist haskell-debugger-view | |
| - name: Upload haskell-debugger source distribution | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Haskell Debugger Source Distribution | |
| # This will catch both haskell-debugger and haskell-debugger-view | |
| path: dist-newstyle/sdist/haskell-debugger*.tar.gz | |
| # Building and testing are done on the distributed sdist: not on the full git repo. | |
| build-n-test-haskell-debugger: | |
| name: Build and Run Integration Tests | |
| needs: sdist-haskell-debugger | |
| runs-on: ubuntu-latest | |
| continue-on-error: true # Run all jobs in the matrix to the end | |
| strategy: | |
| matrix: | |
| version: [9.14.0.20251007] #, latest-nightly] disable nightly while its broken | |
| include: | |
| # - channel: https://ghc.gitlab.haskell.org/ghcup-metadata/ghcup-nightlies-0.0.7.yaml | |
| # version: latest-nightly | |
| - channel: https://raw.githubusercontent.com/haskell/ghcup-metadata/refs/heads/develop/ghcup-prereleases-0.0.9.yaml | |
| version: 9.14.0.20251007 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| # Cabal store cache (main speed-up) | |
| - uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ~/.cabal/store | |
| key: ${{ runner.os }}-integration-ghc-${{ matrix.version }}-cabal-${{ hashFiles('**/*.cabal', 'cabal.project*') }} | |
| restore-keys: | | |
| ${{ runner.os }}-integration-ghc-${{ matrix.version }}-cabal- | |
| - uses: haskell-actions/setup@v2 | |
| with: | |
| ghc-version: ${{ matrix.version }} | |
| cabal-version: 3.14 | |
| ghcup-release-channel: ${{ matrix.channel }} | |
| - uses: cachix/install-nix-action@v31 | |
| with: | |
| nix_path: nixpkgs=channel:nixos-unstable | |
| - name: Download hdb source dist | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: Haskell Debugger Source Distribution | |
| path: ${{ runner.temp }}/dist | |
| - name: Build and Run integration tests | |
| run: | | |
| echo "Running DAP Integration Testsuite now..." | |
| (cd ${{ runner.temp }}/dist && for f in *.tar.gz; do tar xzf "$f"; done) | |
| (cd ${{ runner.temp }}/dist && cd haskell-debugger-${{env.haskellDebuggerVersion}} && echo 'packages: . ../haskell-debugger-view-${{env.haskellDebuggerViewVersion}}' > cabal.project) | |
| (cd ${{ runner.temp }}/dist && cd haskell-debugger-${{env.haskellDebuggerVersion}} && cabal build exe:hdb --enable-executable-dynamic --allow-newer=ghc-bignum,containers,time,ghc,base,template-haskell) | |
| export DEBUGGER=$(cd ${{ runner.temp }}/dist/haskell-debugger-${{env.haskellDebuggerVersion}} && cabal list-bin exe:hdb --enable-executable-dynamic --allow-newer=ghc-bignum,containers,time,ghc,base,template-haskell) | |
| echo "DEBUGGER: $DEBUGGER" | |
| cd test/integration-tests/ | |
| make clean | |
| make node_modules | |
| make test | |
| # Golden+Haskell tests are run on the git checkout | |
| build-n-more-test-haskell-debugger: | |
| name: Build and Run Haskell Tests | |
| runs-on: ubuntu-latest | |
| continue-on-error: true # Run all jobs in the matrix to the end | |
| strategy: | |
| matrix: | |
| version: [9.14.0.20251007] #, latest-nightly] disable nightly while its broken | |
| include: | |
| # - channel: https://ghc.gitlab.haskell.org/ghcup-metadata/ghcup-nightlies-0.0.7.yaml | |
| # version: latest-nightly | |
| - channel: https://raw.githubusercontent.com/haskell/ghcup-metadata/refs/heads/develop/ghcup-prereleases-0.0.9.yaml | |
| version: 9.14.0.20251007 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| # Cabal store cache (main speed-up) | |
| - uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ~/.cabal/store | |
| key: ${{ runner.os }}-ghc-${{ matrix.version }}-cabal-${{ hashFiles('**/*.cabal', 'cabal.project*') }} | |
| restore-keys: | | |
| ${{ runner.os }}-ghc-${{ matrix.version }}-cabal- | |
| - uses: haskell-actions/setup@v2 | |
| with: | |
| ghc-version: ${{ matrix.version }} | |
| cabal-version: 3.14 | |
| ghcup-release-channel: ${{ matrix.channel }} | |
| - uses: cachix/install-nix-action@v31 | |
| with: | |
| nix_path: nixpkgs=channel:nixos-unstable | |
| - name: Build and Run integration tests | |
| run: | | |
| echo "Running Haskell Testsuite now..." | |
| cabal run haskell-debugger-test --enable-executable-dynamic --allow-newer=ghc-bignum,containers,time,ghc,base,template-haskell |