name: CI on: push: branches: - main pull_request: branches: - main workflow_dispatch: jobs: backend: name: Backend tests runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.11" cache: pip cache-dependency-path: backend/requirements.txt - name: Install backend dependencies working-directory: backend run: | python -m venv .venv . .venv/bin/activate python -m pip install --upgrade pip pip install -r requirements.txt - name: Run backend tests working-directory: backend run: | . .venv/bin/activate pytest frontend: name: Frontend build runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: "20" cache: npm cache-dependency-path: frontend/package-lock.json - name: Install frontend dependencies working-directory: frontend run: npm ci - name: Build frontend working-directory: frontend run: npm run build scripts: name: Script syntax runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 - name: Check shell scripts run: bash -n scripts/*.sh