name: CI/CD Pipeline on: push: branches: [ master ] pull_request: branches: [ master ] jobs: backend-test: runs-on: ubuntu-latest defaults: run: working-directory: ./backend steps: - uses: actions/checkout@v3 - name: Set up Python 3.10 uses: actions/setup-python@v3 with: python-version: "3.10" - name: Install dependencies run: | python -m pip install --upgrade pip if [ -f requirements.txt ]; then pip install -r requirements.txt; fi pip install pytest httpx coverage - name: Run Code Quality Checks run: | flake8 app tests isort --check-only app tests - name: Run Backend Tests run: | pytest --cov=app --cov-report=term-missing tests/ frontend-test: runs-on: ubuntu-latest defaults: run: working-directory: ./frontend steps: - uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: '18' - name: Install Dependencies run: npm install - name: Run Frontend Tests run: npx vitest run - name: Build Frontend run: npm run build docker-build: needs: [backend-test, frontend-test] runs-on: ubuntu-latest if: github.event_name == 'push' steps: - uses: actions/checkout@v3 - name: Build Backend Docker Image run: docker build ./backend -t medigenius-backend:latest - name: Build Frontend Docker Image run: docker build ./frontend -t medigenius-frontend:latest