qmd: add health doctor + surface post-commit reindex failures loudly #11
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 | |
| on: | |
| push: | |
| pull_request: | |
| jobs: | |
| python: | |
| name: Python (py-cp-sat + py-api) | |
| runs-on: macos-14 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| enable-cache: true | |
| - name: py-cp-sat — sync + lint + test | |
| working-directory: apps/py-cp-sat | |
| run: | | |
| uv sync --all-packages | |
| uv run ruff check . | |
| uv run pytest | |
| - name: py-api — sync + test | |
| working-directory: apps/py-api | |
| run: | | |
| uv sync | |
| uv run pytest | |
| kotlin: | |
| name: Kotlin (cpsat-kt + kt-cp-sat + kt-api) | |
| runs-on: macos-14 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: "25" | |
| # NOTE: if temurin JDK 25 is not yet published on setup-java at the | |
| # time this workflow runs, bump distribution to "zulu" (Azul ships | |
| # JDK 25 early) or temporarily fall back to java-version "21" and | |
| # add a TODO to revisit. | |
| - name: Set up Gradle | |
| uses: gradle/gradle-build-action@v3 | |
| - name: cpsat-kt — build + test | |
| working-directory: libs/cpsat-kt | |
| run: ./gradlew build test | |
| - name: kt-cp-sat — build | |
| working-directory: apps/kt-cp-sat | |
| run: ./gradlew build | |
| - name: kt-api — build | |
| working-directory: apps/kt-api | |
| run: ./gradlew build | |
| web: | |
| name: Web (apps/web + apps/shared) | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: | | |
| apps/web/package-lock.json | |
| apps/shared/package-lock.json | |
| - name: apps/web — install + typecheck + build | |
| working-directory: apps/web | |
| run: | | |
| npm ci | |
| npm run typecheck | |
| npm run build | |
| - name: apps/shared — install + validate OpenAPI | |
| working-directory: apps/shared | |
| run: | | |
| npm ci | |
| npm run validate:openapi |