Claude Runner Extension Tests #19
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: Claude Runner Extension Tests | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main, develop ] | |
| workflow_dispatch: | |
| jobs: | |
| test-without-claude: | |
| name: "Test Extension without Claude CLI" | |
| runs-on: ubuntu-hosted | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '23' | |
| - name: Install system dependencies | |
| run: make setup-ci | |
| - name: Setup project | |
| run: make setup | |
| - name: Build and validate extension | |
| run: | | |
| make lint | |
| make build-vsix | |
| - name: Run tests without Claude CLI | |
| run: | | |
| make setup-test-env | |
| make test-ci-without-claude | |
| timeout-minutes: 60 | |
| - name: Upload VSIX artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: claude-runner.vsix | |
| path: dist/*.vsix | |
| retention-days: 1 | |
| test-with-claude: | |
| name: "Test Extension with Claude CLI" | |
| runs-on: ubuntu-hosted | |
| needs: test-without-claude | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '23' | |
| - name: Install system dependencies | |
| run: make setup-ci | |
| - name: Setup project | |
| run: make setup | |
| - name: Download VSIX artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: claude-runner.vsix | |
| path: dist/ | |
| - name: Build extension for testing | |
| run: make build | |
| - name: Install and configure Claude CLI | |
| run: | | |
| make install-claude-cli | |
| make setup-claude-config | |
| - name: Run tests with Claude CLI | |
| run: | | |
| make setup-test-env | |
| make test-ci-with-claude | |
| timeout-minutes: 60 | |
| test-report: | |
| name: "Generate Test Report" | |
| runs-on: ubuntu-hosted | |
| needs: [test-without-claude, test-with-claude] | |
| if: always() | |
| steps: | |
| - name: Generate Test Summary | |
| run: | | |
| echo "Claude Runner Extension Test Results" >> $GITHUB_STEP_SUMMARY | |
| echo "=====================================" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| if [ "${{ needs.test-without-claude.result }}" == "success" ]; then | |
| echo "Extension tests without Claude CLI - PASSED" >> $GITHUB_STEP_SUMMARY | |
| else | |
| echo "Extension tests without Claude CLI - FAILED" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| if [ "${{ needs.test-with-claude.result }}" == "success" ]; then | |
| echo "Extension tests with Claude CLI - PASSED" >> $GITHUB_STEP_SUMMARY | |
| else | |
| echo "Extension tests with Claude CLI - FAILED" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "Test Coverage:" >> $GITHUB_STEP_SUMMARY | |
| echo "- Unit Tests" >> $GITHUB_STEP_SUMMARY | |
| echo "- Main Window Loading Tests" >> $GITHUB_STEP_SUMMARY | |
| echo "- Claude CLI Detection Tests" >> $GITHUB_STEP_SUMMARY | |
| echo "- Claude CLI Integration Tests" >> $GITHUB_STEP_SUMMARY | |
| echo "- End-to-End Workflow Tests" >> $GITHUB_STEP_SUMMARY |