Added github actions. #1
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: Code Coverage | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
workflow_dispatch: | |
jobs: | |
frontend-coverage: | |
name: Frontend Test Coverage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Setup PNPM | |
uses: pnpm/action-setup@v3 | |
with: | |
version: '10.5.0' | |
- name: Get pnpm store directory | |
id: pnpm-cache | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
- name: Setup pnpm cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Install frontend dependencies | |
working-directory: ./frontend | |
run: pnpm install | |
- name: Run frontend tests with coverage | |
working-directory: ./frontend | |
run: pnpm run test:coverage | |
- name: Upload frontend coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
directory: ./frontend/coverage | |
flags: frontend | |
name: frontend-coverage | |
fail_ci_if_error: false | |
verbose: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
backend-coverage: | |
name: Backend Test Coverage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
cache: 'pip' | |
- name: Install backend dependencies | |
working-directory: ./backend | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- name: Run backend tests with coverage | |
working-directory: ./backend | |
run: | | |
pytest --cov=app --cov-report=xml:coverage.xml tests/ | |
- name: Upload backend coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
directory: ./backend | |
file: ./backend/coverage.xml | |
flags: backend | |
name: backend-coverage | |
fail_ci_if_error: false | |
verbose: true | |
token: ${{ secrets.CODECOV_TOKEN }} |