chore: stabilize media integration and docs #88
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: Test | |
| on: | |
| push: | |
| branches: [main, master, develop] | |
| pull_request: | |
| branches: [main, master, develop] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| quality: | |
| name: Quality gates | |
| runs-on: windows-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js 24.x | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24.x | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci --prefer-online | |
| - name: Run static quality checks | |
| run: npm run quality | |
| - name: Build web target | |
| run: npm run build:web | |
| test: | |
| name: Coverage shard ${{ matrix.shard }}/2 | |
| runs-on: windows-latest | |
| timeout-minutes: 30 | |
| strategy: | |
| matrix: | |
| shard: [1, 2] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js 24.x | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24.x | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci --prefer-online | |
| - name: Run coverage tests | |
| env: | |
| LUO_TEST_INCLUDE_NATIVE: "1" | |
| run: > | |
| npm run test:coverage -- --shard=${{ matrix.shard }}/2 | |
| --reporter=default | |
| --reporter=blob | |
| --coverage.reporter=json | |
| --coverage.thresholds.lines=0 | |
| --coverage.thresholds.functions=0 | |
| --coverage.thresholds.branches=0 | |
| --coverage.thresholds.statements=0 | |
| - name: Upload Vitest blob report | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: vitest-blob-${{ matrix.shard }} | |
| path: .vitest-reports/*.json | |
| if-no-files-found: error | |
| include-hidden-files: true | |
| retention-days: 1 | |
| coverage: | |
| name: Merge coverage | |
| needs: test | |
| runs-on: windows-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js 24.x | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24.x | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci --ignore-scripts --prefer-online | |
| - name: Download Vitest blob reports | |
| uses: actions/download-artifact@v4 | |
| with: | |
| pattern: vitest-blob-* | |
| path: .vitest-reports | |
| merge-multiple: true | |
| - name: Merge coverage reports | |
| run: > | |
| npm run vitest -- | |
| --merge-reports .vitest-reports | |
| -c .config/vitest.config.ts | |
| --coverage | |
| --coverage.reporter=lcov | |
| --coverage.reporter=json | |
| - name: Upload coverage report to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| files: ./coverage/lcov.info | |
| flags: unittests | |
| name: codecov-umbrella | |
| fail_ci_if_error: false | |
| verbose: true | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |