Skip to content

fix(cockpit): point docsPath at docs pages that actually exist (#918) #26

fix(cockpit): point docsPath at docs pages that actually exist (#918)

fix(cockpit): point docsPath at docs pages that actually exist (#918) #26

Workflow file for this run

name: Deploy AG-UI Railway
on:
push:
branches: [main]
paths:
- 'cockpit/ag-ui/**/python/**'
- 'cockpit/runtimes/**/python/**'
- 'apps/cockpit/scripts/capability-registry.ts'
- 'scripts/generate-ag-ui-deployment-config.ts'
- 'deployments/ag-ui-dev/**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
permissions:
contents: read
env:
DO_NOT_TRACK: '1'
jobs:
deploy:
name: Deploy ag-ui-dev to Railway
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 22
cache: npm
- run: npm ci
- name: Regenerate deployment artifacts
run: npx tsx scripts/generate-ag-ui-deployment-config.ts
- name: Drift check — committed artifacts must match regeneration
run: |
if ! git diff --exit-code -- deployments/ag-ui-dev/; then
echo "::error::deployments/ag-ui-dev/ is out of sync. Run 'npx tsx scripts/generate-ag-ui-deployment-config.ts' locally and commit the result."
exit 1
fi
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: '3.12'
- name: Boot gate — the aggregated server must import with the pinned deps
# `railway up --detach` reports success at upload time, so a build or
# boot failure on Railway is invisible to CI and the last good image
# keeps serving. That hid a broken deploy for 2.5 months (subagents
# topic 404 in prod since 2026-06-16; see blove/fix-ag-ui-deploy-boot).
# Importing server.py against the exact requirements union reproduces
# the container's boot locally and fails the workflow instead.
working-directory: deployments/ag-ui-dev
run: |
python -m venv /tmp/bootgate-venv
/tmp/bootgate-venv/bin/pip install --quiet -r requirements.txt
AG_UI_INTERNAL_TOKEN=bootgate OPENAI_API_KEY=sk-bootgate \
/tmp/bootgate-venv/bin/python -c "import server; print('boot ok:', len(server.app.routes), 'routes')"
- name: Install Railway CLI
run: npm install -g @railway/cli@4.68.0
- name: Deploy
working-directory: deployments/ag-ui-dev
run: railway up --service ag-ui-dev --detach
env:
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}