Skip to content

Custom Debug Visualisations #320

Custom Debug Visualisations

Custom Debug Visualisations #320

Workflow file for this run

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