Skip to content

chore(deps-dev): bump minimatch from 3.1.2 to 3.1.5 in /src/Dashboard… #5524

chore(deps-dev): bump minimatch from 3.1.2 to 3.1.5 in /src/Dashboard…

chore(deps-dev): bump minimatch from 3.1.2 to 3.1.5 in /src/Dashboard… #5524

Workflow file for this run

name: .NET CI
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
branches:
- main
merge_group:
types:
- checks_requested
permissions:
contents: read
env:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
jobs:
build:
name: Build
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup Node.js
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
with:
node-version: '20.x'
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Build
run: dotnet build -bl
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: build_log_${{ matrix.os }}
retention-days: 1
path: |
**/*.binlog
test-redis:
name: Redis provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
provider: ["Redis"]
framework: ["net8.0", "net10.0"]
services:
redis:
image: redis
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test
run: dotnet test
--framework ${{ matrix.framework }}
--filter "Category=${{ matrix.provider }}&(Category=BVT|Category=SlowBVT|Category=Functional)"
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
env:
ORLEANSREDISCONNECTIONSTRING: "localhost:6379,ssl=False,abortConnect=False"
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-cassandra:
name: Cassandra provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
provider: ["Cassandra"]
dbversion: ["4.0", "4.1", "5.0"]
framework: ["net8.0", "net10.0"]
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test
run: dotnet test
--framework ${{ matrix.framework }}
--filter "Category=${{ matrix.provider }}&(Category=BVT|Category=SlowBVT|Category=Clustering)"
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.dbversion }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
env:
CASSANDRAVERSION: ${{ matrix.dbversion }}
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.dbversion }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-postgres:
name: PostgreSQL provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
provider: ["PostgreSql"]
framework: ["net8.0", "net10.0"]
services:
postgres:
image: postgres
env:
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="False positive")]
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test
run: dotnet test
--framework ${{ matrix.framework }}
--filter "Category=${{ matrix.provider }}&(Category=BVT|Category=SlowBVT|Category=Functional)"
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
env:
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="False positive")]
ORLEANSPOSTGRESCONNECTIONSTRING: "Server=127.0.0.1;Port=5432;Pooling=false;User Id=postgres;Password=postgres;SSL Mode=Disable"
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-mariadb:
name: MariaDB/MySQL provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
provider: ["MySql"]
framework: ["net8.0", "net10.0"]
services:
mariadb:
image: mariadb:10.6
ports:
- 3306:3306
env:
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="False positive")]
MARIADB_ROOT_PASSWORD: "mariadb"
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test
run: dotnet test
--framework ${{ matrix.framework }}
--filter "Category=${{ matrix.provider }}&(Category=BVT|Category=SlowBVT|Category=Functional)"
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
env:
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
ORLEANSMYSQLCONNECTIONSTRING: "Server=127.0.0.1;Port=3306;UId=root;Pwd=mariadb;"
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-sqlserver:
name: Microsoft SQL Server provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
provider: ["SqlServer"]
framework: ["net8.0", "net10.0"]
services:
mssql:
image: mcr.microsoft.com/mssql/server:latest
ports:
- 1433:1433
env:
ACCEPT_EULA: "Y"
MSSQL_PID: "Developer"
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="False positive")]
SA_PASSWORD: "yourWeak(!)Password"
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test
run: dotnet test
--framework ${{ matrix.framework }}
--filter "Category=${{ matrix.provider }}&(Category=BVT|Category=SlowBVT|Category=Functional)"
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
env:
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
ORLEANSMSSQLCONNECTIONSTRING: "Server=127.0.0.1,1433;User Id=SA;Password=yourWeak(!)Password;TrustServerCertificate=True;"
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-azure-storage:
name: Azure Storage provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
framework: ["net8.0", "net10.0"]
provider: ["AzureStorage"]
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Start Azurite
run: |
docker run -d --name azurite \
-p 10000:10000 \
-p 10001:10001 \
-p 10002:10002 \
mcr.microsoft.com/azure-storage/azurite:latest \
azurite --blobHost 0.0.0.0 --queueHost 0.0.0.0 --tableHost 0.0.0.0 --skipApiVersionCheck
- name: Wait for Azurite
run: |
echo "Waiting for Azurite to be ready..."
timeout 60 bash -c 'until nc -z localhost 10000 && nc -z localhost 10001 && nc -z localhost 10002; do sleep 1; done'
echo "Azurite is ready"
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test
run: dotnet test
--filter "Category=${{ matrix.provider }}&(Category=BVT|Category=SlowBVT|Category=Functional)"
--framework ${{ matrix.framework }}
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
env:
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
# [SuppressMessage("Microsoft.Security", "CSCAN0090:ConfigFile", Justification="Not a secret")]
# [SuppressMessage("Microsoft.Security", "CSCAN0220:DefaultPasswordContexts", Justification="Not a secret")]
ORLEANSDATACONNECTIONSTRING: "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;"
- name: Clean up Azurite
if: always()
run: docker rm -f azurite
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-azure-eventhubs:
name: Azure Event Hubs provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
framework: ["net8.0", "net10.0"]
provider: ["EventHub"]
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Start Azurite
run: |
docker run -d --name azurite \
-p 10000:10000 \
-p 10001:10001 \
-p 10002:10002 \
mcr.microsoft.com/azure-storage/azurite:latest \
azurite --blobHost 0.0.0.0 --queueHost 0.0.0.0 --tableHost 0.0.0.0 --skipApiVersionCheck
- name: Wait for Azurite
run: |
echo "Waiting for Azurite to be ready..."
timeout 60 bash -c 'until nc -z localhost 10000 && nc -z localhost 10001 && nc -z localhost 10002; do sleep 1; done'
echo "Azurite is ready"
- name: Start Event Hubs emulator
run: |
docker run -d --name eventhubs-emulator \
-v ${{ github.workspace }}/.github/eventhubs-emulator/Config.json:/Eventhubs_Emulator/ConfigFiles/Config.json \
-p 5672:5672 \
-e BLOB_SERVER=host.docker.internal \
-e METADATA_SERVER=host.docker.internal \
-e ACCEPT_EULA=Y \
--add-host=host.docker.internal:host-gateway \
mcr.microsoft.com/azure-messaging/eventhubs-emulator:latest
- name: Wait for Event Hubs emulator
run: |
echo "Waiting for Event Hubs emulator to be ready..."
timeout 60 bash -c 'until nc -z localhost 5672; do sleep 1; done'
echo "Event Hubs emulator is ready"
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test
run: dotnet test
--filter "Category=${{ matrix.provider }}&(Category=BVT|Category=SlowBVT|Category=Functional|Category=Streaming)"
--framework ${{ matrix.framework }}
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
env:
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
# [SuppressMessage("Microsoft.Security", "CSCAN0090:ConfigFile", Justification="Not a secret")]
# [SuppressMessage("Microsoft.Security", "CSCAN0220:DefaultPasswordContexts", Justification="Not a secret")]
ORLEANSEVENTHUBCONNECTIONSTRING: "Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
ORLEANSDATACONNECTIONSTRING: "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;"
- name: Clean up Event Hubs emulator
if: always()
run: docker rm -f eventhubs-emulator
- name: Clean up Azurite
if: always()
run: docker rm -f azurite
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-azure-cosmosdb:
name: Azure Cosmos DB provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
framework: ["net8.0", "net10.0"]
provider: ["Cosmos"]
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Start Azure Cosmos DB emulator
run: |
docker run -d --name cosmosdb-emulator \
-p 8081:8081 \
-e PROTOCOL=https \
-e ENABLE_EXPLORER=false \
-e ENABLE_TELEMETRY=false \
-e LOG_LEVEL=warn \
mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview
- name: Wait for Azure Cosmos DB emulator
run: |
endpoint="https://localhost:8081/"
echo "Waiting for Azure Cosmos DB emulator to be ready..."
for i in {1..60}; do
if curl --silent --show-error --insecure "${endpoint}" > /dev/null; then
echo "Azure Cosmos DB emulator is ready"
echo "ORLEANSCOSMOSDBACCOUNTENDPOINT=${endpoint}" >> "$GITHUB_ENV"
exit 0
fi
if [ "$i" -eq 60 ]; then
docker logs --tail 200 cosmosdb-emulator
echo "Azure Cosmos DB emulator did not become ready in time."
exit 1
fi
sleep 2
done
- name: Test
run: |
cosmos_filter='Category=${{ matrix.provider }}&Category!=Performance&Category!=Stress'
# The Linux vNext emulator still misses a narrow set of ETag/version concurrency semantics.
cosmos_filter+='&FullyQualifiedName!=Tester.Cosmos.Clustering.CosmosMembershipTableTests.MembershipTable_Cosmos_ReadRow_Insert_Read'
cosmos_filter+='&FullyQualifiedName!=Tester.Cosmos.Clustering.CosmosMembershipTableTests.MembershipTable_Cosmos_UpdateRow'
cosmos_filter+='&FullyQualifiedName!=Tester.Cosmos.Clustering.CosmosMembershipTableTests.MembershipTable_Cosmos_UpdateRowInParallel'
cosmos_filter+='&FullyQualifiedName!~Tester.Cosmos.Persistence.PersistenceProviderTests_Cosmos.PersistenceProvider_Azure_ChangeWriteFormat'
for attempt in 1 2; do
logger_name="test_results_${{ matrix.provider }}_${{ matrix.framework }}_attempt${attempt}.trx"
extra_args=()
if [ "$attempt" -gt 1 ]; then
echo "Cosmos tests failed on attempt $((attempt - 1)); retrying once with the same filter."
extra_args+=(--no-build)
fi
if dotnet test \
test/Extensions/Orleans.Cosmos.Tests/Orleans.Cosmos.Tests.csproj \
--framework ${{ matrix.framework }} \
--filter "${cosmos_filter}" \
--blame-hang-timeout 10m \
--blame-crash-dump-type full \
--blame-hang-dump-type full \
--logger "trx;LogFileName=${logger_name}" \
"${extra_args[@]}" \
-- \
-parallel none -noshadow; then
exit 0
fi
done
exit 1
env:
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
#ORLEANSCOSMOSDBACCOUNTENDPOINT: "https://localhost:8081/"
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
ORLEANSCOSMOSDBACCOUNTKEY: "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
- name: Clean up Azure Cosmos DB emulator
if: always()
run: docker rm -f cosmosdb-emulator || true
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-consul:
name: Consul provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
provider: ["Consul"]
framework: ["net8.0", "net10.0"]
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test
run: dotnet test
--framework ${{ matrix.framework }}
--filter "Category=${{ matrix.provider }}&(Category=BVT|Category=SlowBVT|Category=Functional)"
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-zookeeper:
name: ZooKeeper provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
provider: ["ZooKeeper"]
framework: ["net8.0", "net10.0"]
services:
zookeeper:
image: zookeeper:3.9
ports:
- 2181:2181
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test
run: dotnet test
--framework ${{ matrix.framework }}
--filter "Category=${{ matrix.provider }}&(Category=BVT|Category=SlowBVT|Category=Functional)"
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
env:
ORLEANSZOOKEEPERCONNECTIONSTRING: "localhost:2181"
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-dynamodb:
name: AWS DynamoDB provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
provider: ["DynamoDB"]
framework: ["net8.0", "net10.0"]
services:
dynamodb:
image: amazon/dynamodb-local:latest
ports:
- 8000:8000
env:
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
AWS_ACCESS_KEY_ID: root
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
AWS_SECRET_ACCESS_KEY: pass
AWS_REGION: us-east-1
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test
run: dotnet test
--framework ${{ matrix.framework }}
--filter "Category=${{ matrix.provider }}&(Category=BVT|Category=SlowBVT|Category=Functional)"
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
env:
ORLEANSDYNAMODBSERVICE: "http://127.0.0.1:8000"
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
ORLEANSDYNAMODBACCESSKEY: "root"
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
ORLEANSDYNAMODBSECRETKEY: "pass"
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-sqs:
name: AWS SQS provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
provider: ["SQS"]
framework: ["net8.0", "net10.0"]
services:
dynamodb:
image: amazon/dynamodb-local:latest
ports:
- 8000:8000
env:
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
AWS_ACCESS_KEY_ID: root
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
AWS_SECRET_ACCESS_KEY: pass
AWS_REGION: us-east-1
steps:
- name: Start ElasticMQ
run: docker run -d --name elasticmq -p 9324:9324 softwaremill/elasticmq-native:latest
- name: Wait for ElasticMQ and DynamoDB
run: |
echo "Waiting for ElasticMQ and DynamoDB Local to be ready..."
timeout 60 bash -c 'until nc -z localhost 9324 && nc -z localhost 8000; do sleep 1; done'
echo "ElasticMQ and DynamoDB Local are ready"
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
- name: Test
run: dotnet test
test/Extensions/Orleans.AWS.Tests/Orleans.AWS.Tests.csproj
--framework ${{ matrix.framework }}
--filter "Category=${{ matrix.provider }}"
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
env:
ORLEANSSQSCONNECTIONSTRING: "Service=http://127.0.0.1:9324"
ORLEANSDYNAMODBSERVICE: "http://127.0.0.1:8000"
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
ORLEANSDYNAMODBACCESSKEY: "root"
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Not a secret")]
ORLEANSDYNAMODBSECRETKEY: "pass"
- name: Clean up ElasticMQ
if: always()
run: docker rm -f elasticmq
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-nats:
name: NATS stream provider tests
runs-on: ubuntu-latest
continue-on-error: true
strategy:
matrix:
provider: ["NATS"]
framework: ["net8.0", "net10.0"]
# services:
# nats:
# image: nats:latest
# ports:
# - 4222:4222
# - 8222:8222
# env:
# HTTP_PORT: 8222
steps:
- name: Start NATS
run: docker run -d --name nats -p 4222:4222 -p 8222:8222 nats:latest --js --http_port=8222
- name: Wait for NATS
run: |
echo "Waiting for NATS to be ready..."
if ! timeout 60 bash -c 'until docker logs nats 2>&1 | grep -q "Server is ready"; do sleep 1; done'; then
docker logs nats
exit 1
fi
echo "NATS is ready"
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test
run: dotnet test
test/Extensions/Orleans.Streaming.NATS.Tests/Orleans.Streaming.NATS.Tests.csproj
--framework ${{ matrix.framework }}
--filter "Category=${{ matrix.provider }}"
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.provider }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
- name: Clean up container
if: always()
run: docker rm -f nats
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test:
name: Test
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
matrix:
suite: [BVT, SlowBVT, Functional]
os: [ubuntu-latest, windows-latest, macos-latest]
framework: ["net8.0", "net10.0"]
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup Node.js
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
with:
node-version: '20.x'
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Build
run: dotnet build
- name: Test
run: dotnet test
--framework ${{ matrix.framework }}
--filter "Category=${{ matrix.suite }}&Category!=Consul"
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.suite }}_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.suite }}_${{ matrix.os }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*
test-codegenerator:
name: Test Code Generator
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
framework: ["net8.0", "net10.0"]
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5
with:
global-json-file: global.json
- name: Test Code Generator
run: dotnet test
test/Orleans.CodeGenerator.Tests/Orleans.CodeGenerator.Tests.csproj
--framework ${{ matrix.framework }}
--blame-hang-timeout 10m
--blame-crash-dump-type full
--blame-hang-dump-type full
--logger "trx;LogFileName=test_results_${{ matrix.framework }}.trx"
--
-parallel none -noshadow
- name: Archive Test Results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: test_output_${{ github.job }}_${{ matrix.os }}_${{ matrix.framework }}
retention-days: 1
path: |
**/TestResults/*
**/logs/*