name: sdk on: push: branches: [main] pull_request: {} jobs: sdks: runs-on: group: codex-runners labels: codex-linux-x64 timeout-minutes: 10 steps: - name: Checkout repository uses: actions/checkout@v6 - name: Install Linux bwrap build dependencies shell: bash run: | set -euo pipefail sudo apt-get update -y sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends pkg-config libcap-dev - name: Setup pnpm uses: pnpm/action-setup@v5 with: run_install: false - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: 22 cache: pnpm - name: Set up Bazel CI id: setup_bazel uses: ./.github/actions/setup-bazel-ci with: target: x86_64-unknown-linux-gnu - name: Build codex with Bazel env: BUILDBUDDY_API_KEY: ${{ secrets.BUILDBUDDY_API_KEY }} shell: bash run: | ./.github/scripts/run-bazel-ci.sh \ -- \ build \ --build_metadata=COMMIT_SHA=${GITHUB_SHA} \ --build_metadata=TAG_job=sdk \ -- \ //codex-rs/cli:codex - name: Expose Bazel-built codex path shell: bash run: | set -euo pipefail codex_path="$( bazel cquery \ --ui_event_filters=-info \ --noshow_progress \ --output=files \ //codex-rs/cli:codex \ | tail -n 1 )" echo "CODEX_EXEC_PATH=$(realpath "${codex_path}")" >> "$GITHUB_ENV" - name: Warm up Bazel-built codex shell: bash run: | set -euo pipefail "${CODEX_EXEC_PATH}" --version - name: Install dependencies run: pnpm install --frozen-lockfile - name: Build SDK packages run: pnpm -r --filter ./sdk/typescript run build - name: Lint SDK packages run: pnpm -r --filter ./sdk/typescript run lint - name: Test SDK packages run: pnpm -r --filter ./sdk/typescript run test - name: Save bazel repository cache if: always() && !cancelled() && steps.setup_bazel.outputs.cache-hit != 'true' continue-on-error: true uses: actions/cache/save@v5 with: path: | ~/.cache/bazel-repo-cache key: bazel-cache-x86_64-unknown-linux-gnu-${{ hashFiles('MODULE.bazel', 'codex-rs/Cargo.lock', 'codex-rs/Cargo.toml') }}