feat: Universal scheduler delay support for all transports #6967
Workflow file for this run
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: CI | |
| # CI build for Brighter | |
| # It creates a package on the github nuger feed for this project | |
| # We run tests for transports as separate jobs to create greater visibility of failure, and to parallelize | |
| # HINT: If you need to debug a config issue, tmate allows you to hop on to the server, check in the build | |
| # logs for the SSH address to let you hop onto the box via tmate. It will timeout and not connect if left too long | |
| # - name: Debugging with tmate | |
| # uses: mxschmitt/action-tmate@v3.1 | |
| on: | |
| push: | |
| branches: [ master, release/9X ] | |
| tags: | |
| - '*.*.*' | |
| pull_request: | |
| branches: [ master, release/9X ] | |
| env: | |
| # Stop wasting time caching packages | |
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
| # Disable sending usage data to Microsoft | |
| DOTNET_CLI_TELEMETRY_OPTOUT: true | |
| # Don't show a logo on first run of CLI | |
| DOTNET_NOLOGO: true | |
| # Enable color on terminal | |
| DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: 1 | |
| FORCE_COLOR: 3 | |
| TERM: xterm | |
| # GitHub Packages Feed settings | |
| GITHUB_FEED: https://nuget.pkg.github.com/ | |
| GITHUB_USER: iancooper | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| jobs: | |
| build: | |
| # Increased from 30 to 40 minutes to prevent cancellations during test execution. | |
| # The build includes compilation + running 3 test suites (Core.Tests, Extensions.Tests, | |
| # Transforms.Adaptors.Tests) which can take 20-30 minutes in slower CI environments. | |
| timeout-minutes: 40 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - run: dotnet --info | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/cache@v5 | |
| with: | |
| path: ~/.nuget/packages | |
| key: Linux-nuget-${{ hashFiles('**/Directory.Packages.props') }} | |
| restore-keys: | | |
| Linux-nuget- | |
| - name: Build | |
| run: dotnet build --configuration Release | |
| - name: Core Tests | |
| run: | | |
| dotnet test tests/Paramore.Brighter.Core.Tests/Paramore.Brighter.Core.Tests.csproj --filter "Fragile!=CI" -c Release --logger GitHubActions --no-restore --no-build --verbosity d | |
| dotnet test tests/Paramore.Brighter.Extensions.Tests/Paramore.Brighter.Extensions.Tests.csproj -c Release --no-restore --logger GitHubActions --no-build --verbosity d | |
| dotnet test tests/Paramore.Brighter.Transforms.Adaptors.Tests/Paramore.Brighter.Transforms.Adaptors.Tests.csproj -c Release --no-restore --logger GitHubActions --no-build --verbosity d | |
| - name: Upload packages as artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: nuget packages | |
| path: "**/*.nupkg" | |
| - name: Push to GitHub Feed | |
| if: ${{ github.event_name != 'pull_request' }} | |
| run: dotnet nuget push **/*.nupkg --source https://nuget.pkg.github.com/${REPOSITORY_OWNER}/index.json --api-key ${GITHUB_TOKEN} --skip-duplicate | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| REPOSITORY_OWNER: ${{ github.repository_owner }} | |
| release: | |
| if: startsWith(github.ref, 'refs/tags') | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| needs: [build] | |
| steps: | |
| - uses: actions/download-artifact@v7 | |
| with: | |
| name: nuget packages | |
| - name: Push generated package to NuGet | |
| run: dotnet nuget push **/*.nupkg --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_KEY }} --skip-duplicate | |
| memory: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [build] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: In Memory Transport Tests | |
| run: dotnet test ./tests/Paramore.Brighter.InMemory.Tests/Paramore.Brighter.InMemory.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| hangfire: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [ build ] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: Hangfire Tests | |
| run: dotnet test ./tests/Paramore.Brighter.Hangfire.Tests/Paramore.Brighter.Hangfire.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| quartz: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [ build ] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: Quartz Tests | |
| run: dotnet test ./tests/Paramore.Brighter.Quartz.Tests/Paramore.Brighter.Quartz.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| tickerq: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [ build ] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: TickerQ Tests | |
| run: dotnet test ./tests/Paramore.Brighter.TickerQ.Tests/Paramore.Brighter.TickerQ.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| redis-ci: | |
| runs-on: ubuntu-latest | |
| # Increased from 5 to 8 minutes to accommodate slower CI environments | |
| # and service initialization time. This provides adequate buffer without | |
| # being excessive for typical test execution (P95 < 5 min observed). | |
| timeout-minutes: 8 | |
| needs: [build] | |
| services: | |
| redis: | |
| image: redis:latest | |
| ports: | |
| - 6379:6379 | |
| options: >- | |
| --health-cmd "redis-cli ping" | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 10 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: Redis Transport Tests | |
| run: dotnet test ./tests/Paramore.Brighter.Redis.Tests/Paramore.Brighter.Redis.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| mqtt-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [build] | |
| services: | |
| mosquitto: | |
| image: efrecon/mosquitto:latest | |
| ports: | |
| - 1883:1883 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: MQTT Transport Tests | |
| run: dotnet test ./tests/Paramore.Brighter.MQTT.Tests/Paramore.Brighter.MQTT.Tests.csproj --filter "Category=MQTT&Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| rabbitmq-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [build] | |
| services: | |
| rabbitmq: | |
| image: brightercommand/rabbitmq:3.13-management-delay | |
| ports: | |
| - 5672:5672 | |
| # needed because the rabbitmq container does not provide a healthcheck | |
| options: >- | |
| --health-cmd "rabbitmqctl node_health_check" | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 10 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: RMQ Async Transport Tests | |
| run: dotnet test ./tests/Paramore.Brighter.RMQ.Async.Tests/Paramore.Brighter.RMQ.Async.Tests.csproj --filter "Fragile!=CI&Requires!=Docker-mTLS" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| - name: RMQ Sync Transport Tests | |
| run: dotnet test ./tests/Paramore.Brighter.RMQ.Sync.Tests/Paramore.Brighter.RMQ.Sync.Tests.csproj --filter "Fragile!=CI&Requires!=Docker-mTLS" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| kafka-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| needs: [build] | |
| env: | |
| CONFLUENT_BOOSTRAP_SERVER: ${{ secrets.CONFLUENT_BOOSTRAP_SERVER }} | |
| CONFLUENT_SASL_PASSWORD: ${{ secrets.CONFLUENT_SASL_PASSWORD }} | |
| CONFLUENT_SASL_USERNAME: ${{ secrets.CONFLUENT_SASL_USERNAME }} | |
| services: | |
| zookeeper: | |
| image: confluentinc/cp-zookeeper:latest | |
| ports: | |
| - 2181:2181 | |
| env: | |
| ZOOKEEPER_CLIENT_PORT: 2181 | |
| ZOOKEEPER_TICK_TIME: 2000 | |
| ALLOW_ANONYMOUS_LOGIN: yes | |
| kafka: | |
| image: confluentinc/cp-enterprise-kafka:latest | |
| ports: | |
| - 9092:9092 | |
| env: | |
| KAFKA_BROKER_ID: 1 | |
| KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 | |
| KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092 | |
| KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT | |
| KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT | |
| KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 | |
| KAFKA_AUTO_CREATE_TOPICS_ENABLE: true | |
| KAFKA_DELETE_TOPIC_ENABLE: "false" | |
| schema-registry: | |
| image: confluentinc/cp-schema-registry:latest | |
| ports: | |
| - 8081:8081 | |
| env: | |
| SCHEMA_REGISTRY_HOST_NAME: schema-registry | |
| SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: 'kafka:29092' | |
| SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081 | |
| steps: | |
| - name: Install KafkaCat | |
| run: | | |
| sudo apt-get install -y kafkacat | |
| - name: Wait for Kafka to be ready | |
| run: | | |
| echo "Waiting for Kafka to be ready..." | |
| max_attempts=30 | |
| attempt=0 | |
| while [ $attempt -lt $max_attempts ]; do | |
| if kafkacat -b localhost:9092 -L > /dev/null 2>&1; then | |
| echo "Kafka is ready!" | |
| break | |
| fi | |
| attempt=$((attempt + 1)) | |
| echo "Attempt $attempt/$max_attempts: Kafka not ready yet, waiting 2 seconds..." | |
| sleep 2 | |
| done | |
| if [ $attempt -eq $max_attempts ] && ! kafkacat -b localhost:9092 -L > /dev/null 2>&1; then | |
| echo "Kafka failed to become ready after $max_attempts attempts" | |
| exit 1 | |
| fi | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: Kafka Transport Tests | |
| run: dotnet test ./tests/Paramore.Brighter.Kafka.Tests/Paramore.Brighter.Kafka.Tests.csproj --filter "Category=Kafka&Category!=Confluent&Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| postgres-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [build] | |
| services: | |
| postgres: | |
| image: postgres | |
| ports: | |
| - 5432:5432 | |
| env: | |
| POSTGRES_PASSWORD: password | |
| POSTGRES_DB: brightertests | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 10 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: Postgres Tests | |
| run: dotnet test ./tests/Paramore.Brighter.PostgresSQL.Tests/Paramore.Brighter.PostgresSQL.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| sqlserver-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [build] | |
| services: | |
| sqlserver: | |
| image: mcr.microsoft.com/mssql/server | |
| ports: | |
| - 11433:1433 | |
| env: | |
| ACCEPT_EULA: Y | |
| SA_PASSWORD: Password123! | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: MSSQL Tests | |
| run: dotnet test ./tests/Paramore.Brighter.MSSQL.Tests/Paramore.Brighter.MSSQL.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| mysql-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [build] | |
| services: | |
| mariadb: | |
| image: mariadb:latest | |
| ports: | |
| - 3306:3306 | |
| env: | |
| MYSQL_DATABASE: BrighterTests | |
| MYSQL_ROOT_PASSWORD: root | |
| options: --health-cmd="healthcheck.sh --su-mysql --connect --innodb_initialized" --health-interval=10s --health-timeout=5s --health-retries=10 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: Verify MariaDB connection | |
| env: | |
| PORT: ${{ job.services.mariadb.ports[3306] }} | |
| run: | | |
| while ! mysqladmin ping -h"127.0.0.1" -P"$PORT" --silent; do | |
| sleep 1 | |
| done | |
| - name: MySQL Tests | |
| run: dotnet test ./tests/Paramore.Brighter.MySQL.Tests/Paramore.Brighter.MySQL.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| dynamo-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [build] | |
| services: | |
| dynamo: | |
| image: dwmkerr/dynamodb | |
| ports: | |
| - 8000:8000 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: DynamoDB Tests | |
| run: | | |
| dotnet test ./tests/Paramore.Brighter.DynamoDB.Tests/Paramore.Brighter.DynamoDB.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| dotnet test ./tests/Paramore.Brighter.DynamoDB.V4.Tests/Paramore.Brighter.DynamoDB.V4.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| localstack-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: build | |
| env: | |
| LOCALSTACK_SERVICE_URL: http://localhost.localstack.cloud:4566 | |
| services: | |
| localstack: | |
| image: localstack/localstack | |
| ports: | |
| - 4566:4566 | |
| env: | |
| SERVICES: s3,sqs,sns,sts,dynamodb,iam,scheduler | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 # Required to fetch the Git tags | |
| filter: tree:0 | |
| show-progress: false | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - uses: actions/cache@v5 | |
| with: | |
| path: ~/.nuget/packages | |
| key: Linux-nuget-${{ hashFiles('**/Directory.Packages.props') }} | |
| restore-keys: | | |
| Linux-nuget- | |
| - name: AWS Tests | |
| run: | | |
| dotnet test ./tests/Paramore.Brighter.AWS.Tests/Paramore.Brighter.AWS.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| dotnet test ./tests/Paramore.Brighter.AWS.V4.Tests/Paramore.Brighter.AWS.V4.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| aws-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| if: | | |
| (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master')) || | |
| (github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork) | |
| needs: [build] | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_REGION: us-west-2 | |
| AWS_DEFAULT_OUTPUT: json | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: Configure AWS Credentials | |
| uses: aws-actions/configure-aws-credentials@v5 | |
| with: | |
| aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| aws-region: eu-west-1 | |
| - name: AWS SNS, SQS and S3 Tests | |
| run: | | |
| dotnet test ./tests/Paramore.Brighter.AWS.Tests/Paramore.Brighter.AWS.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| dotnet test ./tests/Paramore.Brighter.AWS.V4.Tests/Paramore.Brighter.AWS.V4.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| aws-scheduler-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| if: | | |
| (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master')) || | |
| (github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork) | |
| needs: [build] | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_REGION: us-west-2 | |
| AWS_DEFAULT_OUTPUT: json | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: Configure AWS Credentials | |
| uses: aws-actions/configure-aws-credentials@v5 | |
| with: | |
| aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| aws-region: eu-west-1 | |
| - name: Scheduler Tests | |
| run: | | |
| dotnet test ./tests/Paramore.Brighter.AWSScheduler.Tests/Paramore.Brighter.AWSScheduler.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| dotnet test ./tests/Paramore.Brighter.AWSScheduler.V4.Tests/Paramore.Brighter.AWSScheduler.V4.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| sqlite-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [ build ] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: Sqlite Tests | |
| run: dotnet test ./tests/Paramore.Brighter.Sqlite.Tests/Paramore.Brighter.Sqlite.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| azure-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [build] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: Azure Tests | |
| run: dotnet test ./tests/Paramore.Brighter.AzureServiceBus.Tests/Paramore.Brighter.AzureServiceBus.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| mongodb-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [build] | |
| services: | |
| mongo: | |
| image: mongo | |
| ports: | |
| - 27017:27017 | |
| env: | |
| MONGO_INITDB_ROOT_USERNAME: root | |
| MONGO_INITDB_ROOT_PASSWORD: example | |
| MONGO_INITDB_DATABASE: brighter | |
| options: >- | |
| --health-cmd "mongosh --eval 'db.runCommand(\"ping\").ok'" | |
| --health-interval 20s | |
| --health-timeout 10s | |
| --health-retries 15 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: MongoDB Tests | |
| run: dotnet test ./tests/Paramore.Brighter.MongoDb.Tests/Paramore.Brighter.MongoDb.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| gcp-ci: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 8 | |
| needs: [build] | |
| if: | | |
| (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master')) || | |
| (github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork) | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 # Required to fetch the Git tags | |
| filter: tree:0 | |
| show-progress: false | |
| - name: Google Cloud auth | |
| uses: google-github-actions/auth@v3 | |
| with: | |
| credentials_json: ${{ secrets.GOOGLE_CREDENTIALS }} | |
| - name: Set up Cloud SDK | |
| uses: google-github-actions/setup-gcloud@v3 | |
| with: | |
| version: '>= 363.0.0' | |
| - name: Setup dotnet | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| - name: Install dependencies | |
| run: dotnet restore | |
| - name: GCP Tests | |
| run: dotnet test ./tests/Paramore.Brighter.Gcp.Tests/Paramore.Brighter.Gcp.Tests.csproj --filter "Category!=Spanner&Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --logger GitHubActions --blame -v n | |
| # TODO: Rafael Andrade is working on how to run RocketMQ on GHA | |
| # rocketmq-ci: | |
| # runs-on: ubuntu-latest | |
| # timeout-minutes: 5 | |
| # needs: [build] | |
| # services: | |
| # rocketmq-namesrv: | |
| # image: apache/rocketmq | |
| # ports: | |
| # - 9876:9876 | |
| # options: >- | |
| # --name rmqnamesrv | |
| # --hostname rmqnamesrv | |
| # --health-cmd "netstat -an | grep 9876" | |
| # --health-interval 20s | |
| # --health-timeout 10s | |
| # --health-retries 10 | |
| # | |
| # rocketmq-broker: | |
| # image: apache/rocketmq | |
| # ports: | |
| # - 10909:10909 | |
| # - 10911:10911 | |
| # - 10912:10912 | |
| # options: >- | |
| # --name rmqbroker | |
| # --hostname rmqbroker | |
| # --link rmqnamesrv:rmqnamesrv | |
| # --health-cmd "netstat -an | grep 10911" | |
| # --health-interval 20s | |
| # --health-timeout 10s | |
| # --health-retries 10 | |
| # env: | |
| # NAMESRV_ADDR: "rocketmq-namesrv:9876" | |
| # BROKER_CLUSTER_NAME: "DefaultCluster" | |
| # BROKER_NAME: "broker-a" | |
| # BROKER_ID: "0" | |
| # AUTO_CREATE_TOPIC_ENABLE: "true" # Auto-create topics | |
| # | |
| # steps: | |
| # - uses: actions/checkout@v6 | |
| # with: | |
| # fetch-depth: 0 # Required to fetch the Git tags | |
| # filter: tree:0 | |
| # show-progress: false | |
| # | |
| # - name: Wait for RocketMQ to be ready | |
| # run: | | |
| # sleep 15 | |
| # echo "RocketMQ should be ready now" | |
| # | |
| # - name: Setup dotnet | |
| # uses: actions/setup-dotnet@v5 | |
| # with: | |
| # dotnet-version: | | |
| # 8.0.x | |
| # 9.0.x | |
| # | |
| # - name: Install dependencies | |
| # run: dotnet restore | |
| # | |
| # - name: RocketMQ Tests | |
| # run: dotnet test ./tests/Paramore.Brighter.RocketMQ.Tests/Paramore.Brighter.RocketMQ.Tests.csproj --filter "Fragile!=CI" --configuration Release --logger "console;verbosity=normal" --blame -v n |