Repository navigation
feat(multi): add a four-way collection difference for bags and dictio… #15
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: Multi.Tests | |
| # `paths` is kept identical between `push` and `pull_request`, and always lists | |
| # `build/**`: every src project imports build/common.props, which in turn pulls in | |
| # build/version.props, build/package.props and build/misc.props, so a change under | |
| # build/ changes what this job builds. Leaving it out would let a props-only change | |
| # silently skip this workflow. | |
| on: | |
| push: | |
| branches: [ dev, master ] | |
| paths: | |
| - 'src/DotNetCore.Collections.Multi/**' | |
| - 'tests/DotNetCore.Collections.Multi.Tests/**' | |
| - 'tests/DotNetCore.Collections.Multi.NetFxTests/**' | |
| - 'performance/DotNetCore.Collections.Multi.Benchmarks/**' | |
| - 'build/**' | |
| - '.github/workflows/multi-tests.yml' | |
| pull_request: | |
| paths: | |
| - 'src/DotNetCore.Collections.Multi/**' | |
| - 'tests/DotNetCore.Collections.Multi.Tests/**' | |
| - 'tests/DotNetCore.Collections.Multi.NetFxTests/**' | |
| - 'performance/DotNetCore.Collections.Multi.Benchmarks/**' | |
| - 'build/**' | |
| - '.github/workflows/multi-tests.yml' | |
| # Declared at the workflow level, matching paginable-tests.yml, so both workflows | |
| # share one shape instead of each job re-declaring the same two variables. | |
| env: | |
| DOTNET_CLI_TELEMETRY_OPTOUT: 1 | |
| DOTNET_NOLOGO: 1 | |
| jobs: | |
| test: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # SourceLink needs full history for deterministic build | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: 10.0.x | |
| - name: Build (11 TFMs) | |
| # DocumentationFile is isolated per TFM by build/common.props, so parallel | |
| # per-TFM builds no longer race on a shared project-root file (no CS0016). | |
| run: dotnet build src/DotNetCore.Collections.Multi/DotNetCore.Collections.Multi.csproj -c Release | |
| - name: Pack | |
| run: dotnet pack src/DotNetCore.Collections.Multi/DotNetCore.Collections.Multi.csproj -c Release --no-build | |
| - name: Test (net8.0) | |
| run: dotnet test tests/DotNetCore.Collections.Multi.Tests/DotNetCore.Collections.Multi.Tests.csproj -c Release | |
| - name: Test (.NET Framework regression, F6-24) | |
| # net462: the lowest .NET Framework target the xunit runner stack executes. Pins the | |
| # IReadOnlyCollection exposure at runtime on the affected generation (the framework's | |
| # HashSet<T> / SortedSet<T> do not declare the interface on net451/net461 reference | |
| # assemblies or 4.5.1/4.6.1-era runtimes), which a net8.0-only run can never see. | |
| run: dotnet test tests/DotNetCore.Collections.Multi.NetFxTests/DotNetCore.Collections.Multi.NetFxTests.csproj -c Release |