Skip to content

Merge pull request #92 from pavelhov/codex/fix-opus-turn-output #243

Merge pull request #92 from pavelhov/codex/fix-opus-turn-output

Merge pull request #92 from pavelhov/codex/fix-opus-turn-output #243

Workflow file for this run

name: CI
# Triggers are deliberately unfiltered: every pull request and every push to
# `main` or `development` runs this workflow. Development stages fixes before promotion, and
# the single `ci` job below is the one check a GitHub ruleset should require.
# A workflow-level `paths:` filter would leave that check Pending forever on
# out-of-scope PRs, so there is none.
on:
pull_request:
push:
branches: [main, development]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
# The one check name that means "CI passed". One job, one runner, no matrix:
# shard and platform names change over time, and a ruleset needs a stable
# check to require. Repository admins bypass it via ruleset bypass actors
# (see MAINTAINERS.md); the job itself never special-cases anyone.
ci:
name: ci
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
with:
# No job here pushes, so leaving a usable token in .git/config is
# avoidable residue.
persist-credentials: false
- name: Setup Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
with:
bun-version: 1.3.14
# The GUI install is NOT optional here, however unrelated it looks to the
# test suite. Several files under tests/ import JSX-bearing modules from
# gui/src (ProviderRail and friends), and React is declared only in
# gui/package.json. Without this the suite dies on
# `Cannot find module 'react/jsx-dev-runtime'`.
- name: Install dependencies
run: |
bun install --frozen-lockfile
cd gui
bun install --frozen-lockfile
- name: Typecheck
run: bun x tsc --noEmit
- name: Privacy scan
run: bun run privacy:scan
- name: GUI lint
run: cd gui && bun run lint
- name: GUI i18n lint
run: cd gui && bun run lint:i18n
# Isolated workers: GUI tests install happy-dom on globalThis. A shared-global
# `bun test tests` lets a late React 19 update throw on window.event and poison
# later files (red on GHA, green on a fast laptop). The runner retries only
# failed files.
- name: GUI tests
run: cd gui && bun run test
# Nor is the build optional. Tests that fetch the served dashboard read
# the session bootstrap meta tags out of `gui/dist/index.html`, so without
# a build the server has no index to serve and those assertions see an
# empty string. The build must therefore precede the test suite.
- name: GUI build
run: cd gui && bun run build
- name: Test suite
run: bun run test:parallel
- name: CLI help smoke
run: bun run src/cli/index.ts help