feat(ui): show expected good failures as a green ✗ (#1140) #902
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: Modal Deploy | |
| on: | |
| push: | |
| branches: | |
| - main | |
| concurrency: | |
| group: modal-deploy-main | |
| cancel-in-progress: true | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: read | |
| # Python 3.13, uv, and a warm uv cache live in the base image — | |
| # refreshed weekly by .github/workflows/ci-base-image.yml. | |
| container: | |
| image: ghcr.io/abundant-ai/oddish-ci-base:latest | |
| credentials: | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| env: | |
| MODAL_TOKEN_ID: ${{ secrets.MODAL_TOKEN_ID }} | |
| MODAL_TOKEN_SECRET: ${{ secrets.MODAL_TOKEN_SECRET }} | |
| MODAL_ENVIRONMENT: main | |
| # Hold LLM trials until a task's nop/oracle baselines validate it. | |
| ODDISH_GATE_LLM_ON_BASELINES: "1" | |
| # Enable the GKE (TPU) execution backend in prod. The SA credential | |
| # rides in the oddish-gcp secret (attached when ODDISH_GKE_ENABLED is | |
| # set); the non-secret cluster/registry coordinates are declared here | |
| # so the backend registers deterministically -- even if oddish-gcp is | |
| # ever re-created with only the key (which silently un-registered GKE | |
| # once, since gke_cluster_name failed to derive without a project id). | |
| ODDISH_GKE_ENABLED: "true" | |
| ODDISH_GKE_PROJECT_ID: "abundant-default" | |
| ODDISH_GKE_REGION: "us-east5" | |
| ODDISH_GKE_REGISTRY_LOCATION: "us-east5" | |
| ODDISH_GKE_REGISTRY_NAME: "oddish-envs" | |
| ODDISH_GKE_AUTO_PROVISION_CLUSTER: "true" | |
| ODDISH_GKE_AUTO_BUILD_MISSING_IMAGE: "true" | |
| ODDISH_GKE_IDLE_CLUSTER_TTL_HOURS: "1" | |
| # Point uv at the .venv pre-built into the base image. `uv sync | |
| # --frozen` then validates that venv against the current lockfile | |
| # and only patches the editable oddish path — typically a no-op | |
| # taking ~1s. | |
| UV_PROJECT_ENVIRONMENT: /opt/venvs/backend | |
| defaults: | |
| run: | |
| working-directory: backend | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| - name: Sync backend dependencies | |
| run: uv sync --frozen | |
| - name: Deploy Modal backend | |
| run: uv run modal deploy deploy.py | |
| - name: Summarize deployment | |
| run: | | |
| { | |
| echo "## Modal deployment" | |
| echo | |
| echo "- Backend entrypoint: \`backend/deploy.py\`" | |
| echo "- Modal environment: \`main\`" | |
| echo "- Trigger: push to \`main\`" | |
| echo "- Commit: \`${{ github.sha }}\`" | |
| } >> "$GITHUB_STEP_SUMMARY" |