test(analytics): fix stddev boundary assertion broken by .NET 11 Math… #6
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
| # CI for the v2.1 preview branch: builds and tests the multi-targeted (net10.0;net11.0) | |
| # core + tests on both target frameworks. Kept separate from ci.yml so the net10-only | |
| # master pipeline is never affected by the .NET 11 RC SDK pin in this branch's global.json. | |
| name: CI v2.1 Preview (.NET 11) | |
| on: | |
| push: | |
| branches: [ 'release/v2.1.0.0-*' ] | |
| pull_request: | |
| branches: [ 'release/v2.1.0.0-*' ] | |
| workflow_dispatch: | |
| inputs: | |
| reason: | |
| description: 'Reason for manual publish' | |
| required: false | |
| default: 'Manual v2.1 RC publish' | |
| permissions: | |
| contents: read | |
| env: | |
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
| DOTNET_CLI_TELEMETRY_OPTOUT: true | |
| DOTNET_NOLOGO: true | |
| CI_TEST_FILTER: 'Category!=Debug&Category!=Manual&Category!=Performance' | |
| jobs: | |
| build-test: | |
| name: Build + Test (${{ matrix.framework }}) | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 45 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ ubuntu-latest, windows-latest ] | |
| framework: [ net10.0, net11.0 ] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| # The branch's global.json pins the .NET 11 RC SDK, so install both SDKs. The RC SDK | |
| # builds the net10.0 target as well (SDKs are backwards compatible). | |
| - name: Setup .NET 10 | |
| uses: actions/setup-dotnet@v6 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Setup .NET 11 (RC) | |
| uses: actions/setup-dotnet@v6 | |
| with: | |
| dotnet-version: '11.0.100-rc.1.26425.128' | |
| include-prerelease: true | |
| - name: Display .NET info | |
| run: dotnet --info | |
| - name: Restore dependencies | |
| run: dotnet restore tests/SharpCoreDB.Tests/SharpCoreDB.Tests.csproj --configfile NuGet.Config | |
| - name: Build (${{ matrix.framework }}) | |
| run: dotnet build tests/SharpCoreDB.Tests/SharpCoreDB.Tests.csproj --configuration Release --framework ${{ matrix.framework }} --no-restore | |
| # MTP (xunit.v3) test hosts no longer support `dotnet test`'s VSTest flags; run the | |
| # MTP executable directly, which understands the same VSTest filter expression and writes TRX. | |
| - name: Test (${{ matrix.framework }}) | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| mkdir -p ./TestResults/SharpCoreDB.Tests/${{ matrix.framework }} | |
| tests/SharpCoreDB.Tests/bin/Release/${{ matrix.framework }}/SharpCoreDB.Tests \ | |
| -filterVSTest "${{ env.CI_TEST_FILTER }}" \ | |
| -result-trx "./TestResults/SharpCoreDB.Tests/${{ matrix.framework }}/SharpCoreDB.Tests.trx" | |
| timeout-minutes: 30 | |
| env: | |
| CI: "true" | |
| GITHUB_ACTIONS: "true" | |
| # Manual publish to NuGet.org (only via workflow_dispatch, using the repo's | |
| # NUGET_API_KEY secret). Packs the net10.0;net11.0 core at the version pinned in the csproj. | |
| publish: | |
| name: Pack + Publish to NuGet.org | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'workflow_dispatch' | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup .NET 10 | |
| uses: actions/setup-dotnet@v6 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Setup .NET 11 (RC) | |
| uses: actions/setup-dotnet@v6 | |
| with: | |
| dotnet-version: '11.0.100-rc.1.26425.128' | |
| include-prerelease: true | |
| - name: Pack SharpCoreDB core | |
| run: dotnet pack src/SharpCoreDB/SharpCoreDB.csproj --configuration Release --output ./artifacts --configfile NuGet.Config | |
| - name: Push to NuGet.org | |
| shell: bash | |
| env: | |
| NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} | |
| run: | | |
| set -euo pipefail | |
| for pkg in ./artifacts/SharpCoreDB.*.nupkg; do | |
| [ -f "$pkg" ] || continue | |
| echo " Pushing $(basename "$pkg")" | |
| dotnet nuget push "$pkg" \ | |
| --api-key "$NUGET_API_KEY" \ | |
| --source https://api.nuget.org/v3/index.json \ | |
| --skip-duplicate | |
| done |