from __future__ import annotations from pathlib import Path ROOT = Path(__file__).resolve().parents[2] WORKFLOW = ROOT / ".github" / "workflows" / "deploy-backend-hf.yml" def test_backend_deploy_applies_migrations_before_releasing_code() -> None: workflow = WORKFLOW.read_text(encoding="utf-8") assert '"supabase/migrations/**"' in workflow assert "uses: supabase/setup-cli@v2" in workflow assert "version: 2.110.0" in workflow assert "supabase db push" in workflow assert "--dry-run" in workflow assert "SUPABASE_DB_URL: ${{ secrets.SUPABASE_DB_URL }}" in workflow # Missing secret skips migrations with a warning; deploy still proceeds. assert 'echo "applied=false"' in workflow or "applied=false" in workflow assert "deploy:\n needs: migrate" in workflow assert workflow.index(" migrate:") < workflow.index(" deploy:") assert "HF_WRITE_TOKEN" in workflow