agent-ecosystem/.github/workflows/ci.yml

131 lines
2.9 KiB
YAML

name: CI
on:
push:
branches: [main, dev]
paths:
- 'src/**'
- 'scripts/**'
- 'agent-teams-controller/**'
- 'mcp-server/**'
- 'packages/**'
- 'resources/runtime/**'
- '.runtime-download/**'
- 'runtime.lock.json'
- 'test/**'
- '.github/workflows/**'
- 'pnpm-workspace.yaml'
- 'package.json'
- 'pnpm-lock.yaml'
- 'tsconfig*.json'
- 'vite*.config.*'
- 'vitest*.config.*'
- 'tailwind.config.*'
- 'eslint.config.*'
pull_request:
paths:
- 'src/**'
- 'scripts/**'
- 'agent-teams-controller/**'
- 'mcp-server/**'
- 'packages/**'
- 'resources/runtime/**'
- '.runtime-download/**'
- 'runtime.lock.json'
- 'test/**'
- '.github/workflows/**'
- 'pnpm-workspace.yaml'
- 'package.json'
- 'pnpm-lock.yaml'
- 'tsconfig*.json'
- 'vite*.config.*'
- 'vitest*.config.*'
- 'tailwind.config.*'
- 'eslint.config.*'
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Guard runtime artifacts
run: node ./scripts/ci/forbid-runtime-artifacts.cjs
- name: Setup pnpm
uses: pnpm/action-setup@v6
with:
version: 10.33.0
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Restore ESLint cache
uses: actions/cache@v5
with:
path: .eslintcache
key: eslint-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'eslint.config.*', 'src/**/*.ts', 'src/**/*.tsx') }}
- name: Validate workspace truth gate
run: pnpm check:ci
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v6
with:
version: 10.33.0
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Test
run: pnpm test:workspace:ci
task-change-ledger-windows:
name: Task change ledger Windows smoke
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Enable Windows long paths
shell: pwsh
run: git config --global core.longpaths true
- name: Setup pnpm
uses: pnpm/action-setup@v6
with:
version: 10.33.0
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 22
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Test task change ledger
run: pnpm test:task-change-ledger