codetether-agent 4.5.7

A2A-native AI coding agent for the CodeTether ecosystem
Documentation
name: Publish npm (codetether npx wrapper)

on:
  release:
    types: [published]
  workflow_dispatch:
    inputs:
      version:
        description: 'Version to publish (e.g. 4.4.0). Defaults to Cargo.toml version.'
        required: false

jobs:
  publish:
    name: Publish to npm
    runs-on: ubuntu-latest

    steps:
      - name: Check NPM_TOKEN
        id: check_token
        run: |
          if [ -z "${{ secrets.NPM_TOKEN }}" ]; then
            echo "⚠️  NPM_TOKEN not configured — skipping publish"
            echo "skip=true" >> "$GITHUB_OUTPUT"
          fi

      - name: Checkout
        if: steps.check_token.outputs.skip != 'true'
        uses: actions/checkout@v4

      - name: Setup Node
        if: steps.check_token.outputs.skip != 'true'
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          registry-url: 'https://registry.npmjs.org'

      - name: Set npm package version from git tag
        if: steps.check_token.outputs.skip != 'true'
        working-directory: npm/codetether
        run: |
          set -euo pipefail
          if [ -n "${{ github.event.release.tag_name }}" ]; then
            ver="${{ github.event.release.tag_name }}"
          elif [ -n "${{ github.event.inputs.version }}" ]; then
            ver="${{ github.event.inputs.version }}"
          else
            ver=$(grep '^version' ../../Cargo.toml | head -1 | sed 's/.*"\(.*\)"/\1/')
          fi
          ver="${ver#v}"
          echo "Publishing version: $ver"
          npm version "$ver" --no-git-tag-version

      - name: Install dependencies
        if: steps.check_token.outputs.skip != 'true'
        working-directory: npm/codetether
        run: npm install --omit=dev

      - name: Publish
        if: steps.check_token.outputs.skip != 'true'
        working-directory: npm/codetether
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: npm publish --access public