feat(parser): add Shelley (exe.dev) agent support #2169
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 | |
| with: | |
| go-version-file: go.mod | |
| - name: Install lint tools | |
| run: | | |
| make lint-tools | |
| echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH" | |
| - name: Run Go linters | |
| run: make lint-ci | |
| frontend: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: "24" | |
| - name: Install frontend dependencies | |
| run: npm ci | |
| working-directory: frontend | |
| - name: Type-check (svelte-check) | |
| run: npm run check | |
| working-directory: frontend | |
| - name: Run frontend tests | |
| run: npm test | |
| working-directory: frontend | |
| frontend-node-25: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: "25" | |
| - name: Install frontend dependencies | |
| run: npm ci | |
| working-directory: frontend | |
| - name: Run frontend tests | |
| run: npm test | |
| working-directory: frontend | |
| test: | |
| name: Go Test (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 | |
| with: | |
| go-version-file: go.mod | |
| - name: Setup MinGW (Windows) | |
| if: runner.os == 'Windows' | |
| id: setup_mingw | |
| continue-on-error: true | |
| uses: msys2/setup-msys2@e9898307ac31d1a803454791be09ab9973336e1c # v2 | |
| with: | |
| msystem: MINGW64 | |
| update: false | |
| install: mingw-w64-x86_64-gcc | |
| path-type: inherit | |
| - name: Setup MinGW (Windows, retry on transient failure) | |
| if: runner.os == 'Windows' && steps.setup_mingw.outcome == 'failure' | |
| uses: msys2/setup-msys2@e9898307ac31d1a803454791be09ab9973336e1c # v2 | |
| with: | |
| msystem: MINGW64 | |
| update: false | |
| install: mingw-w64-x86_64-gcc | |
| path-type: inherit | |
| - name: Run Go tests | |
| run: go test -tags "fts5" ./... -v -count=1 | |
| env: | |
| CGO_ENABLED: "1" | |
| - name: Run Go tests (race detector) | |
| if: runner.os == 'Linux' | |
| run: | | |
| go test -tags "fts5" ./internal/duckdb -count=1 | |
| go test -tags "fts5" -race $(go list ./... | grep -v '/internal/duckdb$') -count=1 | |
| env: | |
| CGO_ENABLED: "1" | |
| desktop-windows-unit: | |
| name: Desktop Unit Tests (Windows) | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - name: Prepare placeholder sidecar resource | |
| shell: pwsh | |
| run: | | |
| $hostTriple = (rustc -vV | Select-String '^host: ').ToString() -replace '^host:\s+', '' | |
| if (-not $hostTriple) { | |
| throw "could not determine Rust host triple" | |
| } | |
| New-Item -ItemType Directory -Force desktop/src-tauri/binaries | Out-Null | |
| New-Item -ItemType File -Force "desktop/src-tauri/binaries/agentsview-$hostTriple.exe" | Out-Null | |
| - name: Run Windows desktop update tests | |
| run: cargo test --manifest-path desktop/src-tauri/Cargo.toml --lib install_downloaded_update | |
| coverage: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 | |
| with: | |
| go-version-file: go.mod | |
| - name: Test with coverage | |
| run: go test -tags "fts5" -coverprofile=coverage.out ./... | |
| env: | |
| CGO_ENABLED: "1" | |
| - name: Upload coverage | |
| id: codecov | |
| uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1 | |
| with: | |
| files: coverage.out | |
| continue-on-error: true | |
| - name: Warn on coverage upload failure | |
| if: steps.codecov.outcome == 'failure' | |
| run: echo "::warning::Codecov upload failed" | |
| integration: | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:18-alpine | |
| env: | |
| POSTGRES_USER: agentsview_test | |
| POSTGRES_PASSWORD: agentsview_test_password | |
| POSTGRES_DB: agentsview_test | |
| ports: | |
| - 5433:5432 | |
| options: >- | |
| --health-cmd "pg_isready -U agentsview_test -d agentsview_test" | |
| --health-interval 2s | |
| --health-timeout 5s | |
| --health-retries 10 | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 | |
| with: | |
| go-version-file: go.mod | |
| - name: Run PostgreSQL integration tests | |
| run: make test-postgres-ci | |
| env: | |
| CGO_ENABLED: "1" | |
| TEST_PG_URL: postgres://agentsview_test:agentsview_test_password@localhost:5433/agentsview_test?sslmode=disable | |
| - name: Build SSH test container | |
| run: docker build -t agentsview-sshd -f testdata/ssh/Dockerfile . | |
| - name: Start SSH test container | |
| run: | | |
| docker run -d --name sshd-test -p 2222:22 agentsview-sshd | |
| for i in $(seq 1 10); do nc -z localhost 2222 && break || sleep 1; done | |
| docker cp sshd-test:/tmp/test_ssh_key testdata/ssh/test_key | |
| chmod 600 testdata/ssh/test_key | |
| - name: Verify SSH connectivity | |
| run: | | |
| echo "=== Key file ===" | |
| ls -la testdata/ssh/test_key | |
| head -1 testdata/ssh/test_key | |
| echo "=== Container sshd_config ===" | |
| docker exec sshd-test cat /etc/ssh/sshd_config | |
| echo "=== Container authorized_keys ===" | |
| docker exec sshd-test cat /home/testuser/.ssh/authorized_keys | |
| echo "=== Test SSH connection ===" | |
| ssh -v -i testdata/ssh/test_key -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 testuser@localhost echo "SSH works" 2>&1 || true | |
| - name: Run SSH integration tests | |
| run: make test-ssh-ci | |
| env: | |
| CGO_ENABLED: "1" | |
| TEST_SSH_HOST: localhost | |
| TEST_SSH_PORT: "2222" | |
| TEST_SSH_USER: testuser | |
| TEST_SSH_KEY: ${{ github.workspace }}/testdata/ssh/test_key | |
| e2e: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 | |
| with: | |
| go-version-file: go.mod | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: "24" | |
| - name: Install frontend dependencies | |
| run: npm ci | |
| working-directory: frontend | |
| - name: Build frontend | |
| run: npm run build | |
| working-directory: frontend | |
| - name: Embed frontend in Go source tree | |
| run: | | |
| rm -rf internal/web/dist | |
| cp -r frontend/dist internal/web/dist | |
| - name: Pre-build Go binaries | |
| run: | | |
| CGO_ENABLED=1 go build -tags "fts5,kit_posthog_disabled" \ | |
| -o /tmp/testfixture ./cmd/testfixture | |
| CGO_ENABLED=1 go build -tags "fts5,kit_posthog_disabled" \ | |
| -o /tmp/agentsview ./cmd/agentsview | |
| env: | |
| CGO_ENABLED: "1" | |
| - name: Install Playwright browsers | |
| run: npx playwright install --with-deps chromium webkit | |
| working-directory: frontend | |
| - name: Run E2E tests | |
| run: npx playwright test --reporter=list | |
| working-directory: frontend | |
| env: | |
| E2E_PREBUILT_FIXTURE: /tmp/testfixture | |
| E2E_PREBUILT_SERVER: /tmp/agentsview |