- budget page: guard spend bar against missing/zero ceiling (no NaN width); show an explicit "no ceiling set" state. Add pure budgetUsagePct() helper. - job detail: replace silent live/poll toggle with an explicit stream-mode badge (Live vs Polling) so operators see when SSE degrades to polling. - fleet-client: extend patchJob to carry optional checkpoint/blockedReason matching the server PatchJobSchema; add FleetCheckpoint type. - tests: unit cover budgetUsagePct + patchJob checkpoint forwarding; e2e asserts the polling indicator appears when the stream is unavailable. - ci: add a Gitea Playwright e2e job that runs the fleet control-plane specs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
78 lines
1.9 KiB
YAML
78 lines
1.9 KiB
YAML
name: CI — Common Platform
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'packages/**'
|
|
- 'services/**'
|
|
- 'dashboards/**'
|
|
- 'pnpm-lock.yaml'
|
|
- 'pnpm-workspace.yaml'
|
|
- 'package.json'
|
|
- 'tsconfig.base.json'
|
|
- 'eslint.config.js'
|
|
- '.gitea/workflows/**'
|
|
|
|
concurrency:
|
|
group: ci-common-plat-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build-and-test:
|
|
name: Build, Test & Typecheck
|
|
runs-on: [ubuntu-latest, bytelyst, hostinger]
|
|
container:
|
|
image: node:20-bookworm
|
|
timeout-minutes: 20
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
github-server-url: https://gitea.bytelyst.com
|
|
|
|
- name: Install pinned pnpm
|
|
run: |
|
|
npm install -g pnpm@10.6.5
|
|
pnpm --version
|
|
|
|
- name: Install dependencies
|
|
run: HUSKY=0 pnpm install --frozen-lockfile
|
|
|
|
- name: Build release package
|
|
run: pnpm --filter @bytelyst/errors run build
|
|
|
|
- name: Typecheck release package
|
|
run: pnpm --filter @bytelyst/errors exec tsc --noEmit
|
|
|
|
- name: Test release package
|
|
run: pnpm --filter @bytelyst/errors test
|
|
|
|
e2e-fleet:
|
|
name: Fleet E2E (Playwright)
|
|
runs-on: [ubuntu-latest, bytelyst, hostinger]
|
|
container:
|
|
image: node:20-bookworm
|
|
timeout-minutes: 25
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
github-server-url: https://gitea.bytelyst.com
|
|
|
|
- name: Install pinned pnpm
|
|
run: |
|
|
npm install -g pnpm@10.6.5
|
|
pnpm --version
|
|
|
|
- name: Install dependencies
|
|
run: HUSKY=0 pnpm install --frozen-lockfile
|
|
|
|
- name: Install Playwright browser + system deps
|
|
run: pnpm --filter @bytelyst/tracker-web exec playwright install --with-deps chromium
|
|
|
|
- name: Run fleet e2e
|
|
run: pnpm --filter @bytelyst/tracker-web test:e2e
|