Fix - Under load and during topology changes, thread saturation can occur, causing a lockup #2503
This file contains 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: Build and test PRs | |
on: [pull_request] | |
env: | |
DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: 1 | |
TERM: xterm | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
services: | |
redis: | |
image: redis | |
ports: | |
- 6379/tcp | |
options: --entrypoint redis-server | |
mongodb: | |
image: mongo | |
ports: | |
- 27017/tcp | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: | | |
8.0.x | |
7.0.x | |
6.0.x | |
- name: Build | |
run: dotnet build ProtoActor.sln -c Release | |
test-slow: # slow tests that should run in parallel | |
runs-on: ubuntu-latest | |
services: | |
redis: | |
image: redis | |
ports: | |
- 6379/tcp | |
options: --entrypoint redis-server | |
strategy: | |
matrix: | |
dotnet: | |
- net8.0 | |
- net7.0 | |
- net6.0 | |
test: | |
- "tests/Proto.Cluster.Tests/*.csproj" | |
- "tests/Proto.Cluster.PartitionIdentity.Tests/*.csproj" | |
- "tests/Proto.Cluster.RedisIdentity.Tests/*.csproj" | |
- "tests/Proto.Cluster.PubSub.Tests/*.csproj" | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: | | |
8.0.x | |
7.0.x | |
6.0.x | |
- name: Run tests ${{ matrix.test }} | |
timeout-minutes: 15 | |
env: | |
ConnectionStrings__Redis: localhost:${{ job.services.redis.ports[6379] }},syncTimeout=10000 | |
run: | | |
dotnet test ${{ matrix.test }} -c Release -f ${{ matrix.dotnet }} --logger GitHubActions | |
test-fast: # fast tests where setting up a parallel job run is more overhead than just running the tests side by side | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
test: | |
- "tests/Proto.Actor.Tests/*.csproj" | |
- "tests/Proto.Remote.Tests/*.csproj" | |
# "tests/Proto.Persistence.Tests/*.csproj" | |
- "tests/Proto.OpenTelemetry.Tests/*.csproj" | |
- "tests/Proto.Cluster.CodeGen.Tests/*.csproj" | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: | | |
8.0.x | |
7.0.x | |
6.0.x | |
- name: Run tests ${{ matrix.test }} | |
timeout-minutes: 15 | |
run: | | |
dotnet test ${{ matrix.test }} -c Release --logger GitHubActions |