Merge pull request #659 from cluesmith/spir/0602-vscode-extension #850
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: Tests | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| jobs: | |
| unit: | |
| name: Unit Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| working-directory: packages/codev | |
| run: npm install | |
| - name: Copy skeleton for unit tests | |
| working-directory: packages/codev | |
| run: npm run copy-skeleton | |
| - name: Run unit tests with coverage | |
| working-directory: packages/codev | |
| run: | | |
| # Vitest forks pool has a known issue where the worker process crashes | |
| # during cleanup after all tests pass (native module teardown). | |
| # Capture the output and check if all test files passed. | |
| npx vitest run --coverage 2>&1 | tee /tmp/vitest-output.txt; VITEST_EXIT=$? | |
| if [ $VITEST_EXIT -ne 0 ]; then | |
| # Check if all test files actually passed despite the exit code | |
| if grep -q "Test Files.*passed" /tmp/vitest-output.txt && ! grep -q "failed" /tmp/vitest-output.txt; then | |
| echo "::warning::Vitest worker crashed during cleanup but all tests passed" | |
| else | |
| exit $VITEST_EXIT | |
| fi | |
| fi | |
| integration: | |
| name: Tower Integration Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| working-directory: packages/codev | |
| run: npm install | |
| - name: Build package | |
| working-directory: packages/codev | |
| run: npm run build | |
| - name: Run tower integration tests | |
| working-directory: packages/codev | |
| run: npx vitest run --config vitest.e2e.config.ts --exclude 'src/commands/porch/__tests__/e2e/**' | |
| cli: | |
| name: CLI Integration Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| working-directory: packages/codev | |
| run: npm install | |
| - name: Build package | |
| working-directory: packages/codev | |
| run: npm run build | |
| - name: Run CLI integration tests | |
| working-directory: packages/codev | |
| run: npx vitest run --config vitest.cli.config.ts | |
| package: | |
| name: Package Install Verification | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| working-directory: packages/codev | |
| run: npm install | |
| - name: Build package | |
| working-directory: packages/codev | |
| run: npm run build | |
| - name: Pack tarball | |
| working-directory: packages/codev | |
| run: npm pack | |
| - name: Verify install from tarball | |
| working-directory: packages/codev | |
| run: node scripts/verify-install.mjs cluesmith-codev-*.tgz | |