Skip to content

fix status of Delve suport (currently implementing) #6

fix status of Delve suport (currently implementing)

fix status of Delve suport (currently implementing) #6

Workflow file for this run

name: E2E Tests
on:
push:
branches: [master, main]
pull_request:
branches: [master, main]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
e2e-tests:
name: E2E Tests (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
adapter: lldb-dap
- os: macos-latest
adapter: lldb-dap
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Cache Cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-
- name: Build debugger CLI
run: cargo build --release
- name: Install LLDB (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y lldb
- name: Install Python and debugpy
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install debugpy
run: pip install debugpy
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: Install Delve
run: go install github.com/go-delve/delve/cmd/dlv@latest
- name: Install GCC (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get install -y gcc
- name: Verify debug adapters
run: |
echo "=== Checking installed debug adapters ==="
which lldb-dap || which lldb-vscode || echo "lldb-dap not found in PATH"
python -c "import debugpy; print(f'debugpy installed at {debugpy.__file__}')"
dlv version
gcc --version
rustc --version
go version
- name: Setup debug adapters via CLI
run: |
./target/release/debugger setup --check || true
./target/release/debugger setup lldb --dry-run || true
- name: Compile test fixtures
run: |
# Compile C test files
gcc -g tests/e2e/hello_world.c -o tests/e2e/test_c || true
gcc -g tests/fixtures/simple.c -o tests/fixtures/test_simple_c || true
# Compile Rust test files
rustc -g tests/e2e/hello_world.rs -o tests/e2e/test_rs || true
rustc -g tests/fixtures/simple.rs -o tests/fixtures/test_simple_rs || true
# Compile Go test files (disable optimizations for debugging)
go build -gcflags='all=-N -l' -o tests/e2e/test_go tests/e2e/hello_world.go || true
go build -gcflags='all=-N -l' -o tests/fixtures/test_simple_go tests/fixtures/simple.go || true
- name: Run C Hello World E2E Test
run: |
./target/release/debugger test tests/scenarios/hello_world_c.yml --verbose
continue-on-error: true
- name: Run Rust Hello World E2E Test
run: |
./target/release/debugger test tests/scenarios/hello_world_rust.yml --verbose
continue-on-error: true
- name: Run Python Hello World E2E Test
run: |
./target/release/debugger test tests/scenarios/hello_world_python.yml --verbose
continue-on-error: true
- name: Run Go Hello World E2E Test
run: |
./target/release/debugger test tests/scenarios/hello_world_go.yml --verbose
continue-on-error: true
- name: Run Go Complex E2E Test
run: |
./target/release/debugger test tests/scenarios/complex_go.yml --verbose
continue-on-error: true
- name: Run Complex Verification E2E Test
run: |
./target/release/debugger test tests/scenarios/complex_verification.yml --verbose
continue-on-error: true
- name: Cleanup daemon
if: always()
run: |
# Kill any lingering daemon processes
pkill -f "debugger daemon" || true
- name: Upload test logs
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-logs-${{ matrix.os }}
path: |
~/.local/share/debugger/logs/
~/.cache/debugger/
# Summary job to report overall status
e2e-summary:
name: E2E Test Summary
needs: e2e-tests
runs-on: ubuntu-latest
if: always()
steps:
- name: Check test results
run: |
if [ "${{ needs.e2e-tests.result }}" == "success" ]; then
echo "✅ All E2E tests passed!"
exit 0
else
echo "⚠️ Some E2E tests failed or were skipped"
echo "Check individual job logs for details"
exit 0 # Don't fail the workflow while tests are being stabilized
fi