with one click
deploy-status
Check deployment status, view pipeline progress, and debug build failures. Combines GitHub Deployments API (public status) with Tekton Dashboard API (authenticated logs). No cluster access required.
Menu
Check deployment status, view pipeline progress, and debug build failures. Combines GitHub Deployments API (public status) with Tekton Dashboard API (authenticated logs). No cluster access required.
Run PostgreSQL queries for testing, debugging, and performance analysis. Use when you need to query the database directly, run EXPLAIN ANALYZE, compare query results, or test SQL optimizations. Always uses read-only connections unless explicitly directed otherwise.
Wire an existing ecosystem into the generation system. Adds generation support to basemodel.constants.ts, creates graph and handler files, and wires them into the ecosystem discriminator, workflow config, and router. Use after add-ecosystem when you need the ecosystem to show up in the generation form. Always checks @civitai/client for ecosystem-specific types before writing the handler.
Draft a model description for the CivitaiOfficial account when mirroring a third-party model on civitai.com or civitai.red. Use when the user is publishing or rewriting a mirrored model page (e.g. Sulphur, HappyHorse, Wan, ACE-Step) and wants a structured, properly-credited description rather than a one-line stub. Produces HTML ready to paste into the Civitai rich-text editor.
Read, replace, reset, export, and import XGuard policy options on the orchestrator. Use when you need to inspect current per-label policies for text or prompt scans, ship a refined policy, restore defaults, or back up the policy registry. Read-only by default; destructive operations require an explicit `--writable` flag.
Author a prompt-enhancement system prompt for a new ecosystem and register/update it on the orchestrator's prompt-analysis service. Use when onboarding a new ecosystem (e.g. happyhorse, a new Flux variant, a new Wan video version) and the user provides the ecosystem key plus a reference link, model card, or description. Produces a guide that mirrors the structure and tone of existing ecosystem guides so the prompt-analysis tool behaves consistently.
Query and explore Civitai Orchestration workflows, jobs, and results. Use for analyzing image/video generation jobs, viewing job results, searching by workflow ID, job ID, user, or date range.
| name | deploy-status |
| description | Check deployment status, view pipeline progress, and debug build failures. Combines GitHub Deployments API (public status) with Tekton Dashboard API (authenticated logs). No cluster access required. |
| argument-hint | ["recent | sha:<commit> | env:<environment> | logs:<run-name>"] |
| allowed-tools | ["Bash(gh:*)","Bash(curl:*)","Bash(open:*)","Bash(xdg-open:*)"] |
Check civitai-web deployment status and debug build failures. Two tiers of access:
gh api): deployment state, timestamps, descriptions/deploy-status or /deploy-status recent — show recent deployments with status/deploy-status sha:<commit> — check deployment for a specific commit/deploy-status logs:<run-name> — open Tekton Dashboard for a specific pipeline run/deploy-status debug — investigate the latest failureDEPLOY_ID=$(gh api repos/civitai/civitai/deployments --jq '[.[] | select(.environment == "prod")] | .[0].id')
echo "Deployment: $DEPLOY_ID"
gh api "repos/civitai/civitai/deployments/$DEPLOY_ID" --jq '{sha: (.sha[:7]), env: .environment, created: .created_at}'
gh api "repos/civitai/civitai/deployments/$DEPLOY_ID/statuses" --jq '.[0] | {state: .state, description: .description, updated: .updated_at}'
gh api repos/civitai/civitai/deployments --jq '[.[] | select(.environment == "prod")] | .[:5] | .[].id' | while read id; do
INFO=$(gh api "repos/civitai/civitai/deployments/$id" --jq '"\(.sha[:7]) \(.created_at)"')
STATUS=$(gh api "repos/civitai/civitai/deployments/$id/statuses" --jq '.[0] | "\(.state)\t\(.description)"' 2>/dev/null || echo "unknown")
echo "$id $INFO $STATUS"
done
gh api "repos/civitai/civitai/deployments?sha=COMMIT_SHA" --jq '.[] | {id: .id, env: .environment, created: .created_at}'
gh api "repos/civitai/civitai/deployments/DEPLOY_ID/statuses" --jq 'reverse | .[] | {state: .state, description: .description, time: .updated_at}'
gh api repos/civitai/civitai/deployments --jq '
[.[] | select(.environment == "prod")] | .[:5] | .[] |
{id: .id, sha: (.sha[:7]), created: .created_at}
' | head -20
# Get statuses for the latest
DEPLOY_ID=$(gh api repos/civitai/civitai/deployments --jq '[.[] | select(.environment == "prod")] | .[0].id')
gh api "repos/civitai/civitai/deployments/$DEPLOY_ID/statuses" --jq '.[] | {state: .state, description: .description, time: .updated_at}'
The Tekton Dashboard provides full build logs, task output, and error details. Access requires GitHub org membership (civitai/oauth team).
Dashboard URLs:
| View | URL |
|---|---|
| All pipeline runs | https://tekton.civitai.com/#/namespaces/tekton-builds/pipelineruns |
| Specific run | https://tekton.civitai.com/#/namespaces/tekton-builds/pipelineruns/<RUN_NAME> |
| Task runs | https://tekton.civitai.com/#/namespaces/tekton-builds/taskruns |
Open a specific run in browser:
# Replace RUN_NAME with the pipeline run name (e.g., civitai-web-deploy-vgp54)
xdg-open "https://tekton.civitai.com/#/namespaces/tekton-builds/pipelineruns/RUN_NAME"
For programmatic access to pipeline details and logs, curl the Tekton Dashboard API. Requires a valid session cookie from browser login.
First-time setup (one-time per session):
_oauth2_proxy cookie value from your browser's dev toolsexport TEKTON_COOKIE="_oauth2_proxy=<your-cookie-value>"
API endpoints:
TEKTON="https://tekton.civitai.com"
# List recent pipeline runs
curl -s -b "$TEKTON_COOKIE" "$TEKTON/apis/tekton.dev/v1/namespaces/tekton-builds/pipelineruns?limit=10" \
| jq '.items[] | {name: .metadata.name, status: .status.conditions[0].reason, started: .status.startTime}'
# Get specific pipeline run details
curl -s -b "$TEKTON_COOKIE" "$TEKTON/apis/tekton.dev/v1/namespaces/tekton-builds/pipelineruns/RUN_NAME" \
| jq '{
name: .metadata.name,
status: .status.conditions[0].reason,
message: .status.conditions[0].message,
tasks: [.status.childReferences[] | {task: .pipelineTaskName, name: .name}]
}'
# List task runs for a pipeline run
curl -s -b "$TEKTON_COOKIE" "$TEKTON/apis/tekton.dev/v1/namespaces/tekton-builds/taskruns?labelSelector=tekton.dev/pipelineRun=RUN_NAME" \
| jq '.items[] | {
task: .metadata.labels["tekton.dev/pipelineTask"],
status: .status.conditions[0].reason,
message: .status.conditions[0].message
}'
# Get pod logs for a failed task (replace TASK_POD_NAME)
curl -s -b "$TEKTON_COOKIE" "$TEKTON/api/v1/namespaces/tekton-builds/pods/TASK_POD_NAME/log?container=step-build-and-push&tailLines=100"
Common container names for log retrieval:
| Task | Container | What it shows |
|---|---|---|
| build-image | step-build-and-push | BuildKit output, compilation errors |
| build-image-secondary | step-build-and-push | Green image build |
| tag-do-image | step-tag | Image tagging with crane |
| deploy-do | step-clone-deployment-repo | Git clone of deployment repo |
| deploy-do | step-deploy | ConfigMap update, manifest apply, rollout status |
| notify-* | step-notify | Node-RED webhook calls |
Build failed:
# Open build logs in dashboard
xdg-open "https://tekton.civitai.com/#/namespaces/tekton-builds/pipelineruns/RUN_NAME"
# Look at build-image task → step-build-and-push logs
# Common causes: TypeScript errors, dependency issues, out of disk
Deploy failed:
# Check deploy-do task logs
# Common causes: DO kubeconfig expired, manifest invalid, rollout timeout
xdg-open "https://tekton.civitai.com/#/namespaces/tekton-builds/pipelineruns/RUN_NAME"
Pipeline stuck in queued:
# Check if build node has disk pressure or other scheduling issues
# This requires cluster access — escalate to infra team
gh api "repos/civitai/civitai/deployments/$DEPLOY_ID/statuses" --jq '.[0]'
# If stuck in "queued" for >30min, the build node may be unhealthy
| State | Phase | Meaning |
|---|---|---|
queued | Build | Pipeline started, image building (~12min) |
in_progress | Deploy | Build succeeded, rolling out to DO cluster (~6min) |
success | Done | All 6 deployments rolled out |
failure | Error | Pipeline failed — check Tekton Dashboard for details |
inactive | Superseded | Replaced by a newer deployment |
Push to release branch
→ Tekton: build image (BuildKit, ~12min)
→ GitHub: deployment status = queued
→ Tekton: tag as civitai-prod:latest (crane)
→ GitHub: deployment status = in_progress
→ Tekton: update ConfigMap + apply manifest + rolling restart (~6min)
→ GitHub: deployment status = success | failure
Deployments tracked: civitai, civitai-trpc, civitai-api, civitai-job, civitai-api-internal, civitai-auth
| What | How | Who |
|---|---|---|
| Deployment status | gh api | Anyone with GitHub access |
| Build logs & details | Tekton Dashboard | civitai org / oauth team members |
| Cluster operations | kubectl | Infra team only |