Merge pull request #6 from tavallaie/websocket #38
This file contains 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: RabbitMQ Tests | |
on: | |
push: | |
branches: | |
- main | |
paths: | |
- 'connectiva/protocols/amqp_protocol.py' | |
- 'tests/test_amqp_protocol.py' | |
- 'pyproject.toml' | |
pull_request: | |
branches: | |
- main | |
paths: | |
- 'connectiva/protocols/amqp_protocol.py' | |
- 'tests/test_amqp_protocol.py' | |
- 'pyproject.toml' | |
jobs: | |
test-rabbitmq: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install poetry | |
- name: Add Poetry to Path | |
run: echo "export PATH=\"$HOME/.local/bin:\$PATH\"" >> $GITHUB_ENV | |
- name: Install dependencies | |
run: poetry install | |
- name: Start RabbitMQ Service | |
run: | | |
echo "Starting RabbitMQ service on Python ${{ matrix.python-version }}..." | |
docker compose -f docker/docker-compose.rabbitmq.yml up -d | |
- name: Wait for RabbitMQ to be healthy | |
run: | | |
echo "Waiting for RabbitMQ service to be healthy..." | |
for i in {1..10}; do | |
if [ "$(docker inspect --format='{{json .State.Health.Status}}' $(docker compose -f docker/docker-compose.rabbitmq.yml ps -q rabbitmq))" == "\"healthy\"" ]; then | |
echo "RabbitMQ is healthy!" | |
break | |
else | |
echo "RabbitMQ is not healthy yet. Waiting..." | |
sleep 10 | |
fi | |
done | |
- name: Run RabbitMQ Tests | |
run: | | |
echo "Running RabbitMQ tests on Python ${{ matrix.python-version }}..." | |
poetry run python -m unittest discover -s tests -p 'test_amqp_protocol.py' | |
- name: Stop RabbitMQ Service | |
run: | | |
echo "Stopping RabbitMQ service..." | |
docker compose -f docker/docker-compose.rabbitmq.yml down |