Skip to content

Add MessageGateway test generator #7371

Add MessageGateway test generator

Add MessageGateway test generator #7371

Workflow file for this run

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: 60
# runs-on: ubuntu-latest
# steps:
# - name: Setup dotnet
# uses: actions/setup-dotnet@v5
# with:
# dotnet-version: |
# 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
# dotnet test tests/Paramore.Brighter.Extensions.Tests/Paramore.Brighter.Extensions.Tests.csproj -c Release --no-restore --logger GitHubActions --no-build
# dotnet test tests/Paramore.Brighter.Transforms.Adaptors.Tests/Paramore.Brighter.Transforms.Adaptors.Tests.csproj -c Release --no-restore --logger GitHubActions --no-build
#
# - name: Upload packages as artifacts
# uses: actions/upload-artifact@v7
# 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@v8
# 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: |
# 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: |
# 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: |
# 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: |
# 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: |
# 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: |
# 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-async-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: |
# 9.0.x
# 10.0.x
# - 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
# rabbitmq-sync-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: |
# 9.0.x
# 10.0.x
# - 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: "false"
# KAFKA_DELETE_TOPIC_ENABLE: "true"
# 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 kcat
# run: |
# sudo apt-get update && sudo apt-get install -y kcat
# - 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 kcat -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 ] && ! kcat -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: |
# 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: |
# 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/azure-sql-edge
# ports:
# - 11433:1433
# env:
# ACCEPT_EULA: Y
# MSSQL_SA_PASSWORD: Password123!
# steps:
# - uses: actions/checkout@v6
# - name: Setup dotnet
# uses: actions/setup-dotnet@v5
# with:
# dotnet-version: |
# 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: |
# 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: |
# 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:4.14
# 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: |
# 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: |
# 9.0.x
# 10.0.x
# - name: Install dependencies
# run: dotnet restore
# - name: Configure AWS Credentials
# uses: aws-actions/configure-aws-credentials@v6
# 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
# - name: Cleanup orphaned test resources
# if: always()
# run: |
# chmod +x ./clean_failed_tests_aws_assets.sh
# ./clean_failed_tests_aws_assets.sh
# continue-on-error: true
#
# 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: |
# 9.0.x
# 10.0.x
# - name: Install dependencies
# run: dotnet restore
# - name: Configure AWS Credentials
# uses: aws-actions/configure-aws-credentials@v6
# 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
# - name: Cleanup orphaned test resources
# if: always()
# run: |
# chmod +x ./clean_failed_tests_aws_assets.sh
# ./clean_failed_tests_aws_assets.sh
# continue-on-error: true
#
# 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: |
# 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
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)
env:
BrighterTestsASBConnectionString: ${{ secrets.BRIGHTERTESTS_ASB_CONNECTION_STRING }}
steps:
- uses: actions/checkout@v6
- name: Setup dotnet
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
9.0.x
10.0.x
- name: Install dependencies
run: dotnet restore
- name: AzureServiceBus 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
- name: Azure Tests
run: dotnet test ./tests/Paramore.Brighter.Azure.Tests/Paramore.Brighter.Azure.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: |
# 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: 20
# # 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: |
# 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