Skip to content

Add ElasticMQ SQS CI coverage#10003

Open
ReubenBond wants to merge 1 commit intodotnet:mainfrom
ReubenBond:fix/sqs-elasticmq-ci
Open

Add ElasticMQ SQS CI coverage#10003
ReubenBond wants to merge 1 commit intodotnet:mainfrom
ReubenBond:fix/sqs-elasticmq-ci

Conversation

@ReubenBond
Copy link
Copy Markdown
Member

@ReubenBond ReubenBond commented Apr 10, 2026

Summary

  • add a dedicated PR CI job for SQS using ElasticMQ plus DynamoDB Local
  • run the Orleans.AWS.Tests project with Category=SQS instead of relying on generic repo-root discovery
  • add missing SQS traits to the client and subscription test classes so the filter covers the full SQS test surface

Validation

  • ran dotnet test test/Extensions/Orleans.AWS.Tests/Orleans.AWS.Tests.csproj -f net10.0 --filter "Category=SQS" --list-tests
  • confirmed the filtered list includes:
    • SQSAdapterTests.SendAndReceiveFromSQS
    • SQSClientStreamTests.SQSStreamProducerOnDroppedClientTest
    • SQSStreamTests.SQS_01_OneProducerGrainOneConsumerGrain
    • SQSSubscriptionMultiplicityTests.SQSMultipleParallelSubscriptionTest
    • SQSSubscriptionMultiplicityTests.SQSSubscribeFromClientTest
  • local Docker is unavailable in this environment, so ElasticMQ + DynamoDB could not be executed here
Microsoft Reviewers: Open in CodeFlow

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@ReubenBond ReubenBond force-pushed the fix/sqs-elasticmq-ci branch from 14931b5 to 495272e Compare April 10, 2026 21:53
Comment on lines +569 to +630
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/*
@ReubenBond ReubenBond enabled auto-merge April 10, 2026 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants