name: ci on: pull_request: {} 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@v5 - name: Setup pnpm uses: pnpm/action-setup@v4 with: run_install: false - name: Setup Node.js uses: actions/setup-node@v5 with: node-version: 22 - name: Install dependencies run: pnpm install --frozen-lockfile # stage_npm_packages.py requires DotSlash when staging releases. - uses: facebook/install-dotslash@v2 - name: Stage npm package id: stage_npm_package env: GH_TOKEN: ${{ github.token }} run: | set -euo pipefail LLMX_VERSION=0.1.0 OUTPUT_DIR="${RUNNER_TEMP}" python3 ./scripts/stage_npm_packages.py \ --release-version "$LLMX_VERSION" \ --package llmx \ --output-dir "$OUTPUT_DIR" PACK_OUTPUT="${OUTPUT_DIR}/llmx-npm-${LLMX_VERSION}.tgz" echo "pack_output=$PACK_OUTPUT" >> "$GITHUB_OUTPUT" - name: Upload staged npm package artifact uses: actions/upload-artifact@v5 with: name: llmx-npm-staging path: ${{ steps.stage_npm_package.outputs.pack_output }} - name: Ensure root README.md contains only ASCII and certain Unicode code points run: ./scripts/asciicheck.py README.md - name: Check root README ToC run: python3 scripts/readme_toc.py README.md - name: Ensure llmx-cli/README.md contains only ASCII and certain Unicode code points run: ./scripts/asciicheck.py llmx-cli/README.md - name: Check llmx-cli/README ToC run: python3 scripts/readme_toc.py llmx-cli/README.md - name: Prettier (run `pnpm run format:fix` to fix) run: pnpm run format