Skip to content

fixed service name to get container id #8

fixed service name to get container id

fixed service name to get container id #8

name: Run Tests with Docker-Compose
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
env:
DB_HOST: "db"
DB_NAME: "expense_db"
DB_USER: "postgres"
DB_PASSWORD: "password"
DB_PORT: "5432"
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker
uses: docker/setup-buildx-action@v2
- name: Install Docker Compose
run: |
sudo apt-get update
sudo apt-get install -y docker-compose
- name: Set up Docker Compose
run: docker-compose up -d
- name: Wait for services to be ready
run: |
echo "Waiting for database..."
while ! docker-compose exec -T db pg_isready -U $DB_USER -d $DB_NAME; do
sleep 2
done
- name: Run migrations
run: docker-compose exec -it fastapi_expense_backend alembic upgrade head
- name: Run tests
run: |
docker-compose exec -it fastapi_expense_backend pytest pip install -r requirements_tests.txt
docker-compose exec -it fastapi_expense_backend pytest tests/end_to_end --cov=app --cov-report=html
- name: Copy coverage report from container
run: |
mkdir -p coverage_report
docker cp $(docker-compose ps -q backend):/app/htmlcov ./coverage_report
- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: coverage_report/htmlcov
retention-days: 7
- name: Stop Docker Compose
run: docker-compose down