release: v1.4.9 #175
This file contains hidden or 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: CI | |
| # Runs on every push to main and on every PR — fast feedback only. | |
| # Heavier multi-arch builds live in `release.yml` and are triggered by | |
| # pushing a `vX.Y.Z` tag. | |
| on: | |
| push: | |
| branches: [master, main] | |
| pull_request: | |
| branches: [master, main] | |
| # Cancel in-progress runs for the same ref so a quick force-push doesn't | |
| # burn through all your free Actions minutes. | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| backend: | |
| name: Backend tests | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: backend | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| - name: Set up Python | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version: '3.11' | |
| cache: pip | |
| cache-dependency-path: backend/requirements*.txt | |
| - name: Install deps | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt -r requirements-dev.txt | |
| - name: Run pytest | |
| run: python -m pytest tests/ -q | |
| frontend: | |
| name: Frontend build + tests | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: frontend | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| - name: Set up Node | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| cache-dependency-path: 'frontend/package-lock.json' | |
| # `npm ci` requires committed `package-lock.json` (re-tracked in | |
| # v1.2.5 after we decided reproducible builds + supply-chain | |
| # defense outweigh the Dependabot rebase friction of having both | |
| # `package.json` and the lock in PRs). `--legacy-peer-deps` | |
| # tolerates dev-only peer-range mismatches (e.g. lucide-react vs | |
| # React 19 in older lockfiles) without weakening prod resolution. | |
| - name: Install dependencies (npm ci, locked) | |
| run: npm ci --legacy-peer-deps --no-audit --no-fund | |
| # `npm run lint` is intentionally skipped — there's no ESLint | |
| # config tracked in the repo yet (the `lint` script in | |
| # package.json invokes eslint without a `.eslintrc.*` / | |
| # `eslint.config.js`). When we add one, drop this comment and | |
| # re-enable: `- run: npm run lint`. | |
| - run: npm run test:ci | |
| - run: npm run build | |
| # Surface the build size on PRs — handy for catching accidental | |
| # 10 MB chunks before they ship. | |
| - name: Report dist size | |
| run: du -sh dist |