Skip to content

feat(ui): show expected good failures as a green ✗ (#1140) #902

feat(ui): show expected good failures as a green ✗ (#1140)

feat(ui): show expected good failures as a green ✗ (#1140) #902

Workflow file for this run

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"