Skip to content

release(v0.24.5): interactive-agent surfacing + ready/iterating + UX … #232

release(v0.24.5): interactive-agent surfacing + ready/iterating + UX …

release(v0.24.5): interactive-agent surfacing + ready/iterating + UX … #232

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
# Force JavaScript-based actions onto Node 24 (workaround for the
# Node 20 deprecation warning on `actions/upload-artifact@v5` etc.).
# GitHub's announcement: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
# Drop this once all the actions we use ship a Node 24 default.
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v5
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
# The typecheck references two gitignored generated modules:
# * packages/server/src/web-assets.generated.ts (item 5.4) -- produced
# by `bun run build:web`
# * packages/core/src/help-content.generated.ts (item 5.8) -- produced
# by `bun run scripts/embed-help-content.ts` (also called from
# scripts/build-cli.sh during release builds)
# Both are regenerated per build, so CI must produce them before
# typechecking. This step was missing the help-bundle generator
# before -- CI had been silently failing on main since v0.15.0 because
# of the missing import target in packages/core/src/help.ts.
- name: Build web bundle (generates web-assets.generated.ts)
run: bun run build:web
- name: Embed help bundle (generates help-content.generated.ts)
run: bun run scripts/embed-help-content.ts
- name: Type check
run: bun run typecheck
- name: Run tests
run: bun run test
build:
needs: test
# Single Linux runner: the CLI tarball is platform-independent (the
# heavy native deps live in per-platform @cerefox/codefactory-native-<platform>
# packages, built only at release time -- see release.yml). This job
# smokes the build pipeline on every PR so a broken build-cli.sh
# surfaces here instead of mid-release.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Build CLI tarball (smoke)
run: scripts/build-cli.sh v0.0.0-dev
- name: Upload CLI tarball
uses: actions/upload-artifact@v5
# The upload is debug-only -- the build itself proves the tarball
# compiled. If GitHub's artifact-storage quota is hit (account-
# level limit, recalculates every 6-12 hours), we don't want the
# entire build job to fail just because we couldn't stash the
# smoke tarball for later inspection. Treat the upload as a
# best-effort post-step.
continue-on-error: true
with:
name: cfcf-cli-tarball
path: |
dist/cfcf-*.tgz
dist/cfcf-*.tgz.sha256
# 1 day is enough -- this is a smoke artifact only useful for
# debugging a failed build. Reducing from 7d helps with the
# GitHub Actions artifact-storage quota (we hit it 2026-04-27;
# see decisions-log).
retention-days: 1