fix: default MWA config to use a relative icon path. #159
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 - Tests and Coverage | |
| on: | |
| push: | |
| branches: [main, pkg-upgrades] | |
| pull_request: | |
| branches: [main, pkg-upgrades] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| actions: read | |
| jobs: | |
| build-and-test: | |
| name: Build and Test Packages | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 'lts/*' | |
| registry-url: 'https://registry.npmjs.org' | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v2 | |
| with: | |
| version: 9.12.3 | |
| - name: Setup pnpm cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.pnpm-store | |
| key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pnpm- | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Build all packages | |
| run: pnpm build | |
| - name: Type check | |
| run: pnpm type-check | |
| - name: Lint (skip for now) | |
| run: echo "Skipping lint - will fix in separate PR" | |
| - name: Run tests with coverage (skip for now) | |
| run: echo "Skipping tests - will add in separate PR" | |
| - name: Upload coverage reports | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-reports | |
| path: | | |
| packages/*/coverage/ | |
| retention-days: 30 | |
| - name: Show failure logs | |
| if: failure() | |
| uses: ./.github/actions/show-failure-logs | |
| with: | |
| test-type: 'Package build and test' | |
| coverage-report: | |
| name: Generate Coverage Report | |
| needs: [build-and-test] | |
| if: always() # Run even if tests fail | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| - name: Download coverage reports | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: coverage-reports | |
| path: coverage-artifacts/ | |
| continue-on-error: true | |
| - name: List coverage artifacts for debugging | |
| run: | | |
| echo "📁 Listing all coverage artifacts:" | |
| find coverage-artifacts/ -name "*.json" -o -name "*.lcov" -o -name "*.xml" 2>/dev/null || echo "No coverage artifacts found" | |
| - name: Post coverage comment on PR | |
| if: github.event_name == 'pull_request' | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| const comment = `## 📊 Coverage Report | |
| **ConnectorKit Packages Test Results** | |
| Coverage reports have been generated for all packages. | |
| <details> | |
| <summary>📁 View Coverage Artifacts</summary> | |
| Coverage reports have been generated for all packages: | |
| - [Combined Coverage Report](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) | |
| - Individual package coverage artifacts available in workflow runs | |
| </details>`; | |
| // Find existing coverage comment | |
| const { data: comments } = await github.rest.issues.listComments({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: context.issue.number, | |
| }); | |
| const botComment = comments.find(comment => | |
| comment.user.type === 'Bot' && | |
| comment.body.includes('## 📊 Coverage Report') | |
| ); | |
| if (botComment) { | |
| await github.rest.issues.updateComment({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| comment_id: botComment.id, | |
| body: comment | |
| }); | |
| console.log('Updated existing coverage comment'); | |
| } else { | |
| await github.rest.issues.createComment({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: context.issue.number, | |
| body: comment | |
| }); | |
| console.log('Created new coverage comment'); | |
| } | |
| - name: Upload coverage report | |
| if: success() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: combined-coverage-report | |
| path: coverage-artifacts/ | |
| retention-days: 30 |