readme #13
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: Coverage | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - master | |
| - "codex/**" | |
| pull_request: | |
| jobs: | |
| coverage-matrix: | |
| name: Coverage Matrix | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.matrix.outputs.matrix }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| - id: matrix | |
| run: echo "matrix=$(node SDK/scripts/runtime-matrix.mjs --coverage --compact)" >> "$GITHUB_OUTPUT" | |
| coverage: | |
| name: Coverage ${{ matrix.runtime.language }} | |
| needs: coverage-matrix | |
| runs-on: ${{ matrix.runtime.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runtime: ${{ fromJson(needs.coverage-matrix.outputs.matrix) }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - if: matrix.runtime.setup == 'node' || matrix.runtime.setup == 'dotnet' | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| - if: matrix.runtime.setup == 'dotnet' | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: 10.0.x | |
| - if: matrix.runtime.setup == 'dart' | |
| uses: dart-lang/setup-dart@v1 | |
| - if: matrix.runtime.setup == 'java' | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: '17' | |
| - if: matrix.runtime.setup == 'node' | |
| run: npm ci --prefix SDK/js | |
| - if: matrix.runtime.setup == 'dotnet' | |
| run: dotnet restore SDK/dotnet/ManagedCode.Tps.slnx | |
| - run: ${{ matrix.runtime.build }} | |
| - run: ${{ matrix.runtime.coverage }} | |
| - name: Coverage Policy | |
| run: | | |
| { | |
| echo "## Coverage Policy" | |
| echo "" | |
| echo "- TypeScript: minimum 90% statements, branches, functions, and lines" | |
| echo "- JavaScript: minimum 90% statements, branches, functions, and lines" | |
| echo "- C#: minimum 90% line, branch, and method coverage" | |
| echo "- Flutter: minimum 90% line coverage for SDK source files" | |
| echo "- Swift: minimum 90% line coverage for SDK source files" | |
| echo "- Java: minimum 90% line coverage for SDK source files" | |
| } >> "$GITHUB_STEP_SUMMARY" |