Optimize comprehensive E2E and mobile tests: run only on main branch … #3
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: Build Web Application | |
| on: | |
| push: | |
| branches: [ main, develop, 'feature/*', 'fix/*', 'copilot/*' ] | |
| paths-ignore: | |
| - 'docs/**' | |
| - '*.md' | |
| pull_request: | |
| branches: [ main, develop ] | |
| paths-ignore: | |
| - 'docs/**' | |
| - '*.md' | |
| workflow_dispatch: | |
| jobs: | |
| build-web: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.nvmrc' | |
| cache: 'yarn' | |
| - name: Install dependencies | |
| run: | | |
| for i in 1 2 3; do | |
| yarn install --frozen-lockfile && break || sleep 10 | |
| done | |
| - name: Build web application | |
| run: ./scripts/build-web.sh | |
| - name: Upload web artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: web-build-${{ github.sha }} | |
| path: deploy_*/ | |
| retention-days: 30 | |
| build-extensions: | |
| runs-on: ubuntu-latest | |
| needs: build-web | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.nvmrc' | |
| cache: 'yarn' | |
| - name: Install dependencies | |
| run: | | |
| for i in 1 2 3; do | |
| yarn install --frozen-lockfile && break || sleep 10 | |
| done | |
| - name: Build browser extensions | |
| run: ./scripts/build-extensions.sh | |
| - name: Upload extension artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: browser-extensions-${{ github.sha }} | |
| path: | | |
| extension/*.zip | |
| extension/extension-build-info.txt | |
| retention-days: 30 | |
| test: | |
| runs-on: ubuntu-latest | |
| needs: build-web | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.nvmrc' | |
| cache: 'yarn' | |
| - name: Install dependencies | |
| run: | | |
| for i in 1 2 3; do | |
| yarn install --frozen-lockfile && break || sleep 10 | |
| done | |
| - name: Download web build artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: web-build-${{ github.sha }} | |
| path: deploy_latest | |
| - name: Run tests | |
| run: yarn test --watchAll=false --coverage | |
| - name: Install Playwright | |
| run: yarn playwright:install | |
| - name: Run E2E tests | |
| run: yarn test:e2e | |
| env: | |
| # Use local build for E2E tests if needed | |
| PLAYWRIGHT_BASE_URL: http://localhost:3000 | |
| - name: Upload test results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: test-results-${{ github.sha }} | |
| path: | | |
| coverage/ | |
| playwright-report/ | |
| retention-days: 7 |