diff --git a/.github/workflows/run_test.yml b/.github/workflows/run_test.yml index 7cf640e1..bc7803b5 100644 --- a/.github/workflows/run_test.yml +++ b/.github/workflows/run_test.yml @@ -12,57 +12,7 @@ concurrency: group: CosmosDbConnect cancel-in-progress: false jobs: - # regular70: - # strategy: - # max-parallel: 2 - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 - # - name: Setup .NET 8 - # uses: actions/setup-dotnet@v4 - # with: - # dotnet-version: 8.0.x - # - name: Setup .NET 7 - # uses: actions/setup-dotnet@v4 - # with: - # dotnet-version: 7.0.x - # - name: Secret Settings - # run: | - # pushd ./tests/Sekiban.Test.Abstructs - # dotnet user-secrets set "ConnectionStrings:SekibanBlob" "${{secrets.SEKIBAN_BLOB_CONNECTION_STRING}}" - # dotnet user-secrets set "ConnectionStrings:SekibanCosmos" "${{secrets.TEST_COSMOS_CONNECTION_STRING}}" - # dotnet user-secrets set "ConnectionStrings:SekibanPostgresDefault" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_DEFAULT}}" - # dotnet user-secrets set "ConnectionStrings:SekibanPostgresSecondary" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_SECONDARY}}" - # dotnet user-secrets set "Sekiban:Default:Azure:CosmosDatabase" "GithubActions" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Azure:CosmosDatabase" "GithubActions" - # dotnet user-secrets set "Sekiban:Default:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" - # dotnet user-secrets set "Sekiban:Default:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" - # dotnet user-secrets set "Sekiban:Default:Aws:DynamoRegion" "us-west-1" - # dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTable" "jjga_items" - # dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTable" "jjga_events" - # dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTableDissolvable" "jjga_d_items" - # dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTableDissolvable" "jjga_d_events" - # dotnet user-secrets set "Sekiban:Default:Aws:S3Region" "us-west-1" - # dotnet user-secrets set "Sekiban:Default:Aws:S3BucketName" "jjga-s3" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoRegion" "us-west-1" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTable" "jjga_items_2" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTable" "jjga_events_2" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTableDissolvable" "jjga_d_items_2" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTableDissolvable" "jjga_d_events_2" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3Region" "us-west-1" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3BucketName" "jjga-s3" - # - name: Restore dependencies - # run: | - # dotnet restore Sekiban.sln - # - name: Test dotnet - # run: | - # dotnet test Sekiban.sln --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net7.0 - # # - uses: mktcode/consecutive-workflow-action@v1 - # # with: - # # token: ${{ secrets.GITHUB_TOKEN }} - regular80aggregateTest: + regularAggregateTest: strategy: max-parallel: 4 runs-on: ubuntu-latest @@ -109,12 +59,15 @@ jobs: - name: Test Build run: | dotnet build Sekiban.sln -c Release - - name: Test dotnet FeatureCheck + - name: Test dotnet FeatureCheck .NET8 run: | dotnet test tests/FeatureCheck.Test/FeatureCheck.Test.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net8.0 + - name: Test dotnet FeatureCheck .NET9 + run: | + dotnet test tests/FeatureCheck.Test/FeatureCheck.Test.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net9.0 + - - regular80mixed: + regular80Mixed: strategy: max-parallel: 4 runs-on: ubuntu-latest @@ -165,13 +118,13 @@ jobs: - name: Test dotnet tests/Mixed.Test run: | dotnet test tests/Mixed.Test/Mixed.Test.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net8.0 + - - regular80multitenant: + regularMultitenant: strategy: max-parallel: 4 runs-on: ubuntu-latest - needs: [ regular80mixed ] + needs: [ regularAggregateTest ] steps: - uses: actions/checkout@v4 - name: Setup .NET 8 @@ -215,17 +168,19 @@ jobs: - name: Test Build run: | dotnet build Sekiban.sln -c Release - - - - name: Test dotnet tests/MultiTenant.AggregateTest + - name: Test dotnet tests/MultiTenant.AggregateTest .NET8 run: | dotnet test tests/MultiTenant.AggregateTest/MultiTenant.AggregateTest.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net8.0 + - name: Test dotnet tests/MultiTenant.AggregateTest .NET9 + run: | + dotnet test tests/MultiTenant.AggregateTest/MultiTenant.AggregateTest.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net9.0 + - regular80cosmos: + regular80Cosmos: strategy: max-parallel: 4 runs-on: ubuntu-latest - needs: [ regular80multitenant ] + needs: [ regular80Mixed ] steps: - uses: actions/checkout@v4 - name: Setup .NET 8 @@ -274,7 +229,115 @@ jobs: run: | dotnet test tests/Sekiban.Test.CosmosDb/Sekiban.Test.CosmosDb.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net8.0 - regular80dynamo: + + regular90Cosmos: + strategy: + max-parallel: 4 + runs-on: ubuntu-latest + needs: [ regular90Mixed ] + steps: + - uses: actions/checkout@v4 + - name: Setup .NET 8 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + - name: Setup .NET 9 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0.x + - name: Secret Settings + run: | + pushd ./tests/Sekiban.Test.Abstructs + dotnet user-secrets set "ConnectionStrings:SekibanBlob" "${{secrets.SEKIBAN_BLOB_CONNECTION_STRING}}" + dotnet user-secrets set "ConnectionStrings:SekibanCosmos" "${{secrets.TEST_COSMOS_CONNECTION_STRING}}" + dotnet user-secrets set "ConnectionStrings:SekibanPostgresDefault" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_DEFAULT}}" + dotnet user-secrets set "ConnectionStrings:SekibanPostgresSecondary" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_SECONDARY}}" + dotnet user-secrets set "Sekiban:Default:Azure:CosmosDatabase" "GithubActions" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Azure:CosmosDatabase" "GithubActions" + dotnet user-secrets set "Sekiban:Default:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" + dotnet user-secrets set "Sekiban:Default:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoRegion" "us-west-1" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTable" "jjga_items" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTable" "jjga_events" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTableDissolvable" "jjga_d_items" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTableDissolvable" "jjga_d_events" + dotnet user-secrets set "Sekiban:Default:Aws:S3Region" "us-west-1" + dotnet user-secrets set "Sekiban:Default:Aws:S3BucketName" "jjga-s3" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoRegion" "us-west-1" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTable" "jjga_items_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTable" "jjga_events_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTableDissolvable" "jjga_d_items_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTableDissolvable" "jjga_d_events_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3Region" "us-west-1" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3BucketName" "jjga-s3" + - name: Restore dependencies + run: | + dotnet restore Sekiban.sln + - name: Test Build + run: | + dotnet build Sekiban.sln -c Release + + - name: Test dotnet tests/Sekiban.Test.CosmosDb + run: | + dotnet test tests/Sekiban.Test.CosmosDb/Sekiban.Test.CosmosDb.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net8.0 + - name: Test dotnet tests/MultiTenant.AggregateTest + run: | + dotnet test tests/MultiTenant.AggregateTest/MultiTenant.AggregateTest.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net9.0 + + regular90Mixed: + strategy: + max-parallel: 4 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup .NET 8 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + - name: Setup .NET 9 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0.x + - name: Secret Settings + run: | + pushd ./tests/Sekiban.Test.Abstructs + dotnet user-secrets set "ConnectionStrings:SekibanBlob" "${{secrets.SEKIBAN_BLOB_CONNECTION_STRING}}" + dotnet user-secrets set "ConnectionStrings:SekibanCosmos" "${{secrets.TEST_COSMOS_CONNECTION_STRING}}" + dotnet user-secrets set "ConnectionStrings:SekibanPostgresDefault" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_DEFAULT}}" + dotnet user-secrets set "ConnectionStrings:SekibanPostgresSecondary" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_SECONDARY}}" + dotnet user-secrets set "Sekiban:Default:Azure:CosmosDatabase" "GithubActions" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Azure:CosmosDatabase" "GithubActions" + dotnet user-secrets set "Sekiban:Default:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" + dotnet user-secrets set "Sekiban:Default:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoRegion" "us-west-1" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTable" "jjga_items" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTable" "jjga_events" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTableDissolvable" "jjga_d_items" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTableDissolvable" "jjga_d_events" + dotnet user-secrets set "Sekiban:Default:Aws:S3Region" "us-west-1" + dotnet user-secrets set "Sekiban:Default:Aws:S3BucketName" "jjga-s3" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoRegion" "us-west-1" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTable" "jjga_items_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTable" "jjga_events_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTableDissolvable" "jjga_d_items_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTableDissolvable" "jjga_d_events_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3Region" "us-west-1" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3BucketName" "jjga-s3" + - name: Restore dependencies + run: | + dotnet restore Sekiban.sln + - name: Test Build + run: | + dotnet build Sekiban.sln -c Release + - name: Test dotnet tests/Mixed.Test + run: | + dotnet test tests/Mixed.Test/Mixed.Test.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net9.0 + + regularDynamo: strategy: max-parallel: 4 runs-on: ubuntu-latest @@ -322,11 +385,14 @@ jobs: run: | dotnet build Sekiban.sln -c Release - - name: Test dotnet tests/Sekiban.Test.Dynamo + - name: Test dotnet tests/Sekiban.Test.Dynamo .NET8 run: | dotnet test tests/Sekiban.Test.Dynamo/Sekiban.Test.Dynamo.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net8.0 - - regular80postgres: + - name: Test dotnet tests/Sekiban.Test.Dynamo .NET9 + run: | + dotnet test tests/Sekiban.Test.Dynamo/Sekiban.Test.Dynamo.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net9.0 + + regularPostgres: strategy: max-parallel: 4 runs-on: ubuntu-latest @@ -374,16 +440,74 @@ jobs: run: | dotnet build Sekiban.sln -c Release - - name: Test dotnet tests/Sekiban.Test.Postgres + - name: Test dotnet tests/Sekiban.Test.Postgres .NET8 run: | dotnet test tests/Sekiban.Test.Postgres/Sekiban.Test.Postgres.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net8.0 - + - name: Test dotnet tests/Sekiban.Test.Postgres .NET9 + run: | + dotnet test tests/Sekiban.Test.Postgres/Sekiban.Test.Postgres.csproj --filter "Category!=Flaky&Category!=Performance" -v m -c Release -m:1 -f net9.0 + flaky: strategy: max-parallel: 4 runs-on: ubuntu-latest - needs: [ regular80aggregateTest, regular80postgres,regular80dynamo ,regular80cosmos ] + needs: [ regularMultitenant, regularPostgres,regularDynamo ,regular80Cosmos ] + steps: + - uses: actions/checkout@v4 + - name: Setup .NET 8 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + - name: Setup .NET 9 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0.x + - name: Secret Settings + run: | + pushd ./tests/Sekiban.Test.Abstructs + dotnet user-secrets set "ConnectionStrings:SekibanBlob" "${{secrets.SEKIBAN_BLOB_CONNECTION_STRING}}" + dotnet user-secrets set "ConnectionStrings:SekibanCosmos" "${{secrets.TEST_COSMOS_CONNECTION_STRING}}" + dotnet user-secrets set "ConnectionStrings:SekibanPostgresDefault" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_DEFAULT8}}" + dotnet user-secrets set "ConnectionStrings:SekibanPostgresSecondary" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_SECONDARY8}}" + dotnet user-secrets set "Sekiban:Default:Azure:CosmosDatabase" "GithubActions8" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Azure:CosmosDatabase" "GithubActions8" + dotnet user-secrets set "Sekiban:Default:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" + dotnet user-secrets set "Sekiban:Default:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoRegion" "us-west-1" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTable" "8_jjga_items" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTable" "8_jjga_events" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTableDissolvable" "8_jjga_d_items" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTableDissolvable" "8_jjga_d_events" + dotnet user-secrets set "Sekiban:Default:Aws:S3Region" "us-west-1" + dotnet user-secrets set "Sekiban:Default:Aws:S3BucketName" "jjga-s3" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoRegion" "us-west-1" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTable" "jjga_items_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTable" "jjga_events_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTableDissolvable" "jjga_d_items_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTableDissolvable" "jjga_d_events_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3Region" "us-west-1" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3BucketName" "jjga-s3" + - name: Restore dependencies + run: | + dotnet restore Sekiban.sln + - name: Test dotnet + uses: nick-fields/retry@v2 + with: + timeout_seconds: 1000 + max_attempts: 3 + retry_on: error + command: dotnet test Sekiban.sln --filter "Category=Flaky" -v m -c Release -m:1 -f net8.0 + + + flaky90: + strategy: + max-parallel: 4 + + runs-on: ubuntu-latest + needs: [ regularMultitenant, regularPostgres,regularDynamo ,regular90Cosmos ] steps: - uses: actions/checkout@v4 - name: Setup .NET 8 @@ -430,40 +554,8 @@ jobs: timeout_seconds: 1000 max_attempts: 3 retry_on: error - command: dotnet test Sekiban.sln --filter "Category=Flaky" -v m -c Release -m:1 - # - uses: mktcode/consecutive-workflow-action@v1 - # with: - # token: ${{ secrets.GITHUB_TOKEN }} - - # performance70: - # strategy: - # max-parallel: 4 - - # runs-on: ubuntu-latest - # needs: [ flaky ] - # steps: - # - uses: actions/checkout@v4 - # - name: Setup .NET 8 - # uses: actions/setup-dotnet@v4 - # with: - # dotnet-version: 8.0.x - # - name: Setup .NET 7 - # uses: actions/setup-dotnet@v4 - # with: - # dotnet-version: 7.0.x - # - name: Secret Settings - # run: | - # pushd ./tests/Sekiban.Test.Abstructs - # dotnet user-secrets set "ConnectionStrings:SekibanBlob" "${{secrets.SEKIBAN_BLOB_CONNECTION_STRING}}" - # dotnet user-secrets set "ConnectionStrings:SekibanCosmos" "${{secrets.TEST_COSMOS_CONNECTION_STRING}}" - # dotnet user-secrets set "Sekiban:Default:Azure:CosmosDatabase" "GithubActions" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Azure:CosmosDatabase" "GithubActions" - # - name: Restore dependencies - # run: | - # dotnet restore Sekiban.sln - # - name: Test dotnet - # run: | - # dotnet test tests/Sekiban.Test.CosmosDb/Sekiban.Test.CosmosDb.csproj --filter "Category=Performance" -v m -c Release -m:1 -f net7.0 + command: dotnet test Sekiban.sln --filter "Category=Flaky" -v m -c Release -m:1 -f net9.0 + performance80cosmos: strategy: @@ -494,51 +586,37 @@ jobs: - name: Test dotnet run: | dotnet test tests/Sekiban.Test.CosmosDb/Sekiban.Test.CosmosDb.csproj --filter "Category=Performance" -v m -c Release -m:1 -f net8.0 - - # performance70dynamo: - # strategy: - # max-parallel: 4 - # runs-on: ubuntu-latest - # needs: [ flaky ] - # steps: - # - uses: actions/checkout@v4 - # - name: Setup .NET 8 - # uses: actions/setup-dotnet@v4 - # with: - # dotnet-version: 8.0.x - # - name: Setup .NET 7 - # uses: actions/setup-dotnet@v4 - # with: - # dotnet-version: 7.0.x - # - name: Secret Settings - # run: | - # pushd ./tests/Sekiban.Test.Abstructs - # dotnet user-secrets set "Sekiban:Default:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" - # dotnet user-secrets set "Sekiban:Default:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" - # dotnet user-secrets set "Sekiban:Default:Aws:DynamoRegion" "us-west-1" - # dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTable" "jjga_items" - # dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTable" "jjga_events" - # dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTableDissolvable" "jjga_d_items" - # dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTableDissolvable" "jjga_d_events" - # dotnet user-secrets set "Sekiban:Default:Aws:S3Region" "us-west-1" - # dotnet user-secrets set "Sekiban:Default:Aws:S3BucketName" "jjga-s3" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoRegion" "us-west-1" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTable" "jjga_items_2" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTable" "jjga_events_2" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTableDissolvable" "jjga_d_items_2" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTableDissolvable" "jjga_d_events_2" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3Region" "us-west-1" - # dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3BucketName" "jjga-s3" - # - name: Restore dependencies - # run: | - # dotnet restore Sekiban.sln - # - name: Test dotnet - # run: | - # dotnet test tests/Sekiban.Test.Dynamo/Sekiban.Test.Dynamo.csproj --filter "Category=Performance" -v m -c Release -m:1 -f net7.0 + performance90cosmos: + strategy: + max-parallel: 4 + runs-on: ubuntu-latest + needs: [ flaky90 ] + steps: + - uses: actions/checkout@v4 + - name: Setup .NET 8 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + - name: Setup .NET 9 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0.x + - name: Secret Settings + run: | + pushd ./tests/Sekiban.Test.Abstructs + dotnet user-secrets set "ConnectionStrings:SekibanBlob" "${{secrets.SEKIBAN_BLOB_CONNECTION_STRING}}" + dotnet user-secrets set "ConnectionStrings:SekibanCosmos" "${{secrets.TEST_COSMOS_CONNECTION_STRING}}" + dotnet user-secrets set "Sekiban:Default:Azure:CosmosDatabase" "GithubActions" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Azure:CosmosDatabase" "GithubActions" + - name: Restore dependencies + run: | + dotnet restore Sekiban.sln + - name: Test dotnet + run: | + dotnet test tests/Sekiban.Test.CosmosDb/Sekiban.Test.CosmosDb.csproj --filter "Category=Performance" -v m -c Release -m:1 -f net8.0 + performance80dynamo: strategy: max-parallel: 4 @@ -583,33 +661,56 @@ jobs: run: | dotnet test tests/Sekiban.Test.Dynamo/Sekiban.Test.Dynamo.csproj --filter "Category=Performance" -v m -c Release -m:1 -f net8.0 - # performance70postgres: - # strategy: - # max-parallel: 4 - # runs-on: ubuntu-latest - # needs: [ flaky ] - # steps: - # - uses: actions/checkout@v4 - # - name: Setup .NET 8 - # uses: actions/setup-dotnet@v4 - # with: - # dotnet-version: 8.0.x - # - name: Setup .NET 7 - # uses: actions/setup-dotnet@v4 - # with: - # dotnet-version: 7.0.x - # - name: Secret Settings - # run: | - # pushd ./tests/Sekiban.Test.Abstructs - # dotnet user-secrets set "ConnectionStrings:SekibanPostgresDefault" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_DEFAULT}}" - # dotnet user-secrets set "ConnectionStrings:SekibanPostgresSecondary" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_SECONDARY}}" - # - name: Restore dependencies - # run: | - # dotnet restore Sekiban.sln - # - name: Test dotnet - # run: | - # dotnet test tests/Sekiban.Test.Postgres/Sekiban.Test.Postgres.csproj --filter "Category=Performance" -v m -c Release -m:1 -f net7.0 + performance90dynamo: + strategy: + max-parallel: 4 + + runs-on: ubuntu-latest + needs: [ flaky90 ] + steps: + - uses: actions/checkout@v4 + - name: Setup .NET 8 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + - name: Setup .NET 9 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0.x + - name: Secret Settings + run: | + pushd ./tests/Sekiban.Test.Abstructs + dotnet user-secrets set "ConnectionStrings:SekibanBlob" "${{secrets.SEKIBAN_BLOB_CONNECTION_STRING}}" + dotnet user-secrets set "ConnectionStrings:SekibanCosmos" "${{secrets.TEST_COSMOS_CONNECTION_STRING}}" + dotnet user-secrets set "ConnectionStrings:SekibanPostgresDefault" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_DEFAULT}}" + dotnet user-secrets set "ConnectionStrings:SekibanPostgresSecondary" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_SECONDARY}}" + dotnet user-secrets set "Sekiban:Default:Azure:CosmosDatabase" "GithubActions" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Azure:CosmosDatabase" "GithubActions" + dotnet user-secrets set "Sekiban:Default:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" + dotnet user-secrets set "Sekiban:Default:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoRegion" "us-west-1" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTable" "jjga_items" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTable" "jjga_events" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoItemsTableDissolvable" "jjga_d_items" + dotnet user-secrets set "Sekiban:Default:Aws:DynamoEventsTableDissolvable" "jjga_d_events" + dotnet user-secrets set "Sekiban:Default:Aws:S3Region" "us-west-1" + dotnet user-secrets set "Sekiban:Default:Aws:S3BucketName" "jjga-s3" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKeyId" "${{secrets.TEST_AWS_ACCESS_KEY_ID}}" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:AccessKey" "${{secrets.TEST_AWS_ACCESS_KEY}}" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoRegion" "us-west-1" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTable" "jjga_items_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTable" "jjga_events_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoItemsTableDissolvable" "jjga_d_items_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:DynamoEventsTableDissolvable" "jjga_d_events_2" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3Region" "us-west-1" + dotnet user-secrets set "Sekiban:Contexts:Secondary:Aws:S3BucketName" "jjga-s3" + - name: Restore dependencies + run: | + dotnet restore Sekiban.sln + - name: Test dotnet + run: | + dotnet test tests/Sekiban.Test.Dynamo/Sekiban.Test.Dynamo.csproj --filter "Category=Performance" -v m -c Release -m:1 -f net9.0 performance80postgres: strategy: @@ -639,4 +740,35 @@ jobs: - name: Test dotnet run: | dotnet test tests/Sekiban.Test.Postgres/Sekiban.Test.Postgres.csproj --filter "Category=Performance" -v m -c Release -m:1 -f net8.0 - \ No newline at end of file + + + + performance90postgres: + strategy: + max-parallel: 4 + + runs-on: ubuntu-latest + needs: [ flaky90 ] + steps: + - uses: actions/checkout@v4 + - name: Setup .NET 8 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + - name: Setup .NET 9 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0.x + - name: Secret Settings + run: | + pushd ./tests/Sekiban.Test.Abstructs + dotnet user-secrets set "ConnectionStrings:SekibanBlob" "${{secrets.SEKIBAN_BLOB_CONNECTION_STRING}}" + dotnet user-secrets set "ConnectionStrings:SekibanPostgresDefault" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_DEFAULT}}" + dotnet user-secrets set "ConnectionStrings:SekibanPostgresSecondary" "${{secrets.SEKIBAN_POSTGRES_CONNECTION_SECONDARY}}" + - name: Restore dependencies + run: | + dotnet restore Sekiban.sln + - name: Test dotnet + run: | + dotnet test tests/Sekiban.Test.Postgres/Sekiban.Test.Postgres.csproj --filter "Category=Performance" -v m -c Release -m:1 -f net9.0 + \ No newline at end of file diff --git a/src/MemStat.Net/LinuxMemoryUsageFinder.cs b/src/MemStat.Net/LinuxMemoryUsageFinder.cs index b28b4e60..620e2a8b 100644 --- a/src/MemStat.Net/LinuxMemoryUsageFinder.cs +++ b/src/MemStat.Net/LinuxMemoryUsageFinder.cs @@ -26,4 +26,4 @@ private ResultBox GetLinuxTotalMemory() => LinuxMemoryInfo.Match( private ResultBox GetLinuxMemoryUsagePercentage() => LinuxMemoryInfo.Match( info => Net.LinuxMemoryInfo.MemoryUsagePercentage(info).ToResultBox(), () => new InvalidOperationException("MemoryInfo is not set. Please run ReceiveCurrentMemoryUsage() first.")); -} \ No newline at end of file +} diff --git a/src/MemStat.Net/WindowsMemoryInfo.cs b/src/MemStat.Net/WindowsMemoryInfo.cs index cd483c7e..527dacde 100644 --- a/src/MemStat.Net/WindowsMemoryInfo.cs +++ b/src/MemStat.Net/WindowsMemoryInfo.cs @@ -37,4 +37,4 @@ public class MEMORYSTATUSEX public MEMORYSTATUSEX() => dwLength = (uint)Marshal.SizeOf(typeof(MEMORYSTATUSEX)); // @formatter:on } -} \ No newline at end of file +} diff --git a/src/MemStat.Net/WindowsMemoryUsageFinder.cs b/src/MemStat.Net/WindowsMemoryUsageFinder.cs index 07906aa4..0566fa7b 100644 --- a/src/MemStat.Net/WindowsMemoryUsageFinder.cs +++ b/src/MemStat.Net/WindowsMemoryUsageFinder.cs @@ -25,4 +25,4 @@ private ResultBox GetWindowsTotalMemory() => WindowsComputerInfo.Match( private ResultBox GetWindowsMemoryUsagePercentage() => WindowsComputerInfo.Match( info => (((double)info.ullTotalPhys - info.ullAvailPhys) / info.ullTotalPhys).ToResultBox(), () => new InvalidOperationException("ComputerInfo is not set. Please run ReceiveCurrentMemoryUsage() first.")); -} \ No newline at end of file +}