Skip to content

Surface CLI task intake failures in chat task creation #860

Surface CLI task intake failures in chat task creation

Surface CLI task intake failures in chat task creation #860

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
permissions:
contents: read
jobs:
changes:
name: Detect changed areas
runs-on: ubuntu-latest
outputs:
backend: ${{ steps.filter.outputs.backend }}
cli: ${{ steps.filter.outputs.cli }}
frontend: ${{ steps.filter.outputs.frontend }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Filter changed paths
id: filter
uses: dorny/paths-filter@v3
with:
filters: |
frontend:
- ".github/workflows/**"
- "biome.json"
- "bun.lock"
- "package.json"
- "packages/tsconfig/**"
- "scripts/**"
- "tsconfig*.json"
- "packages/landing/**"
- "packages/web/**"
backend:
- ".github/workflows/**"
- "biome.json"
- "bun.lock"
- "package.json"
- "packages/tsconfig/**"
- "scripts/**"
- "tsconfig*.json"
- "packages/db/**"
- "packages/server/**"
cli:
- ".github/workflows/**"
- "biome.json"
- "bun.lock"
- "package.json"
- "packages/tsconfig/**"
- "scripts/**"
- "tsconfig*.json"
- "packages/agent-adapters/**"
- "packages/agents/**"
- "packages/cli/**"
- "packages/create-devos-plugin/**"
- "packages/workflow/**"
frontend:
name: Frontend
needs: changes
if: needs.changes.outputs.frontend == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 24.7.0
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.8
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Check formatting and lint
run: bun run biome check packages/web packages/landing
- name: Typecheck web
run: bun run --filter web typecheck
- name: Typecheck landing
run: bun run --filter landing typecheck
- name: Test web
run: bun test packages/web/tests
backend:
name: Backend
needs: changes
if: needs.changes.outputs.backend == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 24.7.0
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.8
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Check server
run: bun run --filter devos-server check
- name: Check database
run: bun run --filter devos-db check
- name: Typecheck server
run: bun run --filter devos-server typecheck
- name: Typecheck database
run: bun run --filter devos-db typecheck
- name: Test server
run: bun run --filter devos-server test
- name: Test database
run: bun run --filter devos-db test
cli:
name: CLI
needs: changes
if: needs.changes.outputs.cli == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 24.7.0
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.8
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Check agents
run: bun run --filter devos-agents check
- name: Check adapters
run: bun run --filter adapters check
- name: Check plugin creator
run: bun run --filter create-devos-plugin check
- name: Check workflow creator
run: bun run --filter create-devos-workflow check
- name: Check CLI
run: bun run --filter devos check
- name: Typecheck agents
run: bun run --filter devos-agents typecheck
- name: Typecheck adapters
run: bun run --filter adapters typecheck
- name: Typecheck plugin creator
run: bun run --filter create-devos-plugin typecheck
- name: Typecheck workflow creator
run: bun run --filter create-devos-workflow typecheck
- name: Typecheck CLI
run: bun run --filter devos typecheck
- name: Test agents
run: bun run --filter devos-agents test
- name: Test adapters
run: bun run --filter adapters test
- name: Test plugin creator
run: bun run --filter create-devos-plugin test
- name: Test workflow creator
run: bun run --filter create-devos-workflow test
- name: Test CLI
run: bun run --filter devos test
ci-result:
name: CI result
runs-on: ubuntu-latest
needs:
- changes
- frontend
- backend
- cli
if: always()
steps:
- name: Check lane results
run: |
if [[ "${{ needs.changes.result }}" != "success" ]]; then
echo "Changed-path detection failed."
exit 1
fi
if [[ "${{ needs.frontend.result }}" =~ ^(failure|cancelled)$ ]]; then
echo "Frontend lane failed."
exit 1
fi
if [[ "${{ needs.backend.result }}" =~ ^(failure|cancelled)$ ]]; then
echo "Backend lane failed."
exit 1
fi
if [[ "${{ needs.cli.result }}" =~ ^(failure|cancelled)$ ]]; then
echo "CLI lane failed."
exit 1
fi
echo "CI lanes completed or were skipped based on changed paths."