codex-threadripper 0.1.8

Human-first CLI that keeps Codex thread history aligned to one provider bucket.
name: Publish npm packages

on:
  push:
    tags:
      - '**[0-9]+.[0-9]+.[0-9]+*'

permissions:
  contents: read
  id-token: write

jobs:
  publish-npm-matrix:
    runs-on: ubuntu-22.04
    env:
      GH_TOKEN: ${{ github.token }}
    steps:
      - uses: actions/checkout@v4
        with:
          persist-credentials: false

      - name: Wait for release artifacts
        run: |
          TAG="${GITHUB_REF_NAME}"
          mkdir -p dist/release-assets

          for attempt in $(seq 1 30); do
            if gh release download "$TAG" \
              --repo "${{ github.repository }}" \
              --pattern "codex-threadripper-aarch64-apple-darwin.tar.xz" \
              --pattern "codex-threadripper-aarch64-unknown-linux-gnu.tar.xz" \
              --pattern "codex-threadripper-x86_64-apple-darwin.tar.xz" \
              --pattern "codex-threadripper-x86_64-unknown-linux-gnu.tar.xz" \
              --pattern "codex-threadripper-x86_64-pc-windows-msvc.zip" \
              --dir dist/release-assets; then
              exit 0
            fi

            rm -rf dist/release-assets/*
            sleep 10
          done

          echo "Release artifacts for $TAG did not appear in time"
          exit 1

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 24
          registry-url: https://registry.npmjs.org

      - name: Build npm package matrix
        run: |
          TAG="${GITHUB_REF_NAME}"
          VERSION="${TAG#v}"
          node scripts/build-npm-matrix.mjs \
            --version "$VERSION" \
            --release-tag "$TAG" \
            --artifacts-dir dist/release-assets \
            --output-dir dist/npm-packages

      - name: Publish platform packages
        run: |
          jq -r '.platformPackages[].dir' dist/npm-packages/manifest.json | while read -r dir; do
            npm publish "$dir" --access public --provenance
          done

      - name: Publish root package
        run: |
          ROOT_DIR="$(jq -r '.rootPackage.dir' dist/npm-packages/manifest.json)"
          npm publish "$ROOT_DIR" --access public --provenance