This introduces a Python script (written by Codex!) to verify that the table of contents in the root `README.md` matches the headings. Like `scripts/asciicheck.py` in https://github.com/openai/codex/pull/513, it reports differences by default (and exits non-zero if there are any) and also has a `--fix` option to synchronize the ToC with the headings. This will be enforced by CI and the changes to `README.md` in this PR were generated by the script, so you can see that our ToC was missing some entries prior to this PR.
75 lines
1.9 KiB
YAML
75 lines
1.9 KiB
YAML
name: ci
|
|
|
|
on:
|
|
pull_request: { branches: [main] }
|
|
push: { branches: [main] }
|
|
|
|
jobs:
|
|
build-test:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
env:
|
|
NODE_OPTIONS: --max-old-space-size=4096
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
|
|
- name: Setup pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 10.8.1
|
|
run_install: false
|
|
|
|
- name: Get pnpm store directory
|
|
id: pnpm-cache
|
|
shell: bash
|
|
run: |
|
|
echo "store_path=$(pnpm store path --silent)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Setup pnpm cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ${{ steps.pnpm-cache.outputs.store_path }}
|
|
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pnpm-store-
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
|
|
# Run all tasks using workspace filters
|
|
|
|
- name: Check TypeScript code formatting
|
|
working-directory: codex-cli
|
|
run: pnpm run format
|
|
|
|
- name: Check Markdown and config file formatting
|
|
run: pnpm run format
|
|
|
|
- name: Run tests
|
|
run: pnpm run test
|
|
|
|
- name: Lint
|
|
run: |
|
|
pnpm --filter @openai/codex exec -- eslint src tests --ext ts --ext tsx \
|
|
--report-unused-disable-directives \
|
|
--rule "no-console:error" \
|
|
--rule "no-debugger:error" \
|
|
--max-warnings=-1
|
|
|
|
- name: Type-check
|
|
run: pnpm run typecheck
|
|
|
|
- name: Build
|
|
run: pnpm run build
|
|
|
|
- name: Ensure README.md contains only ASCII and certain Unicode code points
|
|
run: ./scripts/asciicheck.py README.md
|
|
- name: Check README ToC
|
|
run: python3 scripts/readme_toc.py README.md
|