build(deps): bump i18next from 26.0.3 to 26.0.4 #6905
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: | |
| workflow_dispatch: | |
| # Limit the permissions of the GITHUB_TOKEN | |
| permissions: | |
| contents: read | |
| jobs: | |
| # Setup job: Install dependencies and cache them for parallel jobs | |
| setup: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| cache-key: ${{ steps.cache-key.outputs.key }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Generate cache key | |
| id: cache-key | |
| run: echo "key=node-modules-${{ hashFiles('package-lock.json') }}" >> $GITHUB_OUTPUT | |
| - name: Cache node_modules | |
| id: cache-node-modules | |
| uses: actions/cache@v5 | |
| with: | |
| path: node_modules | |
| key: ${{ steps.cache-key.outputs.key }} | |
| - name: Install dependencies | |
| if: steps.cache-node-modules.outputs.cache-hit != 'true' | |
| run: npm ci | |
| # Build job: Build the project and cache artifacts | |
| build: | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Restore node_modules cache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: node_modules | |
| key: ${{ needs.setup.outputs.cache-key }} | |
| - name: Cache build artifacts | |
| id: cache-build | |
| uses: actions/cache@v5 | |
| with: | |
| path: dist | |
| key: build-${{ github.sha }} | |
| - name: Generate i18n translations | |
| if: steps.cache-build.outputs.cache-hit != 'true' | |
| run: npm run i18n:generate | |
| - name: Build | |
| if: steps.cache-build.outputs.cache-hit != 'true' | |
| run: npx vite build | |
| # Lint job: Run ESLint (parallel with other checks) | |
| lint: | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Restore node_modules cache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: node_modules | |
| key: ${{ needs.setup.outputs.cache-key }} | |
| - name: Lint | |
| run: npm run lint:check | |
| # Format job: Run Prettier check (parallel with other checks) | |
| format: | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Restore node_modules cache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: node_modules | |
| key: ${{ needs.setup.outputs.cache-key }} | |
| - name: Format check | |
| run: npm run format:check | |
| # TypeScript job: Run type checking (parallel with other checks) | |
| typecheck: | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Restore node_modules cache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: node_modules | |
| key: ${{ needs.setup.outputs.cache-key }} | |
| - name: TypeScript check | |
| run: npm run tsc | |
| # Endpoint inventory job: Verify derived inventory is up to date (parallel with other checks) | |
| endpoints: | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Restore node_modules cache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: node_modules | |
| key: ${{ needs.setup.outputs.cache-key }} | |
| - name: Verify endpoint inventory | |
| run: npm run endpoints:verify | |
| # Test job: Run tests with coverage (parallel with other checks) | |
| test: | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Restore node_modules cache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: node_modules | |
| key: ${{ needs.setup.outputs.cache-key }} | |
| - name: Test with coverage | |
| run: npm run test:ci | |
| # E2E job: Run Playwright e2e tests (parallel with other checks) | |
| e2e: | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Restore node_modules cache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: node_modules | |
| key: ${{ needs.setup.outputs.cache-key }} | |
| - name: Cache Playwright browsers | |
| id: playwright-cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: playwright-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} | |
| restore-keys: | | |
| playwright-${{ runner.os }}- | |
| - name: Install Playwright browsers | |
| if: steps.playwright-cache.outputs.cache-hit != 'true' | |
| run: npx playwright install --with-deps chromium | |
| - name: Install Playwright system dependencies only | |
| if: steps.playwright-cache.outputs.cache-hit == 'true' | |
| run: npx playwright install-deps chromium | |
| - name: Initialize MSW | |
| run: npx msw init e2e/public --save=false | |
| - name: Run e2e tests | |
| run: npm run test:e2e | |
| - name: Upload test results | |
| if: ${{ !cancelled() }} | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: playwright-report | |
| path: playwright-report/ | |
| retention-days: 7 | |
| # E2E Demo job: Run Playwright e2e tests against the live demo environment | |
| e2e-demo: | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Restore node_modules cache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: node_modules | |
| key: ${{ needs.setup.outputs.cache-key }} | |
| - name: Cache Playwright browsers | |
| id: playwright-cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: playwright-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} | |
| restore-keys: | | |
| playwright-${{ runner.os }}- | |
| - name: Install Playwright browsers | |
| if: steps.playwright-cache.outputs.cache-hit != 'true' | |
| run: npx playwright install --with-deps chromium | |
| - name: Install Playwright system dependencies only | |
| if: steps.playwright-cache.outputs.cache-hit == 'true' | |
| run: npx playwright install-deps chromium | |
| - name: Run e2e tests against demo environment | |
| run: npm run test:e2e:demo | |
| - name: Upload demo test results | |
| if: ${{ !cancelled() }} | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: playwright-report-demo | |
| path: playwright-report/ | |
| retention-days: 7 |