Adding HTTP Client and TTLPolicyManager with fallback to queue-ttl #16
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: Multi-Version RabbitMQ Tests | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| test-matrix: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| rabbitmq-version: | |
| - "3.9-management" | |
| - "3.10-management" | |
| - "3.11-management" | |
| - "3.12-management" | |
| - "3.13-management" | |
| - "4.0-management" | |
| - "4.1-management" | |
| name: Test RabbitMQ ${{ matrix.rabbitmq-version }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| - name: Install dependencies | |
| run: npm install | |
| - name: Set RabbitMQ version | |
| run: echo "RABBITMQ_VERSION=${{ matrix.rabbitmq-version }}" >> $GITHUB_ENV | |
| - name: Start RabbitMQ | |
| run: docker compose up -d rabbitmq | |
| - name: Wait for RabbitMQ to be ready | |
| run: | | |
| RETRY_COUNT=0 | |
| MAX_RETRIES=30 | |
| while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do | |
| if docker compose exec -T rabbitmq rabbitmq-diagnostics -q ping >/dev/null 2>&1; then | |
| echo "RabbitMQ is ready!" | |
| break | |
| fi | |
| RETRY_COUNT=$((RETRY_COUNT + 1)) | |
| echo "Waiting for RabbitMQ... (attempt $RETRY_COUNT/$MAX_RETRIES)" | |
| # Check if container exited and restart if needed | |
| CONTAINER_STATUS=$(docker compose ps -q rabbitmq | xargs docker inspect -f '{{.State.Status}}' 2>/dev/null || echo "") | |
| if [ "$CONTAINER_STATUS" = "exited" ] || [ "$CONTAINER_STATUS" = "" ]; then | |
| echo "RabbitMQ container exited. Restarting..." | |
| docker compose up -d rabbitmq | |
| fi | |
| sleep 2 | |
| done | |
| if [ $RETRY_COUNT -eq $MAX_RETRIES ]; then | |
| echo "RabbitMQ failed to start" | |
| docker compose logs rabbitmq | |
| exit 1 | |
| fi | |
| - name: Run unit tests | |
| run: npm run test:unit | |
| - name: Run E2E tests | |
| run: npm run test:e2e | |
| - name: Show logs on failure | |
| if: failure() | |
| run: docker compose logs rabbitmq | |
| - name: Clean up | |
| if: always() | |
| run: docker compose down -v | |
| all-tests-summary: | |
| needs: test-matrix | |
| runs-on: ubuntu-latest | |
| if: always() | |
| steps: | |
| - name: Check test results | |
| run: | | |
| if [ "${{ needs.test-matrix.result }}" == "success" ]; then | |
| echo "✅ All RabbitMQ version tests passed!" | |
| exit 0 | |
| else | |
| echo "❌ Some RabbitMQ version tests failed" | |
| exit 1 | |
| fi |