name: Publish @mem0/cli 📦 to npm # Dispatched by release.yml (Release Router) when a release tagged # cli-node-v* is published. Can also be dispatched manually to re-publish # a tag. on: workflow_dispatch: inputs: tag: description: 'Release tag to build and publish (e.g. cli-node-v0.2.0)' required: true type: string prerelease: description: 'Publish under the version preid dist-tag instead of latest' required: false type: boolean default: false jobs: build-n-publish: name: Build and publish @mem0/cli 📦 to npm if: startsWith(inputs.tag, 'cli-node-v') runs-on: ubuntu-latest permissions: id-token: write defaults: run: working-directory: cli/node steps: - uses: actions/checkout@v4 with: ref: ${{ inputs.tag }} - name: Install pnpm uses: pnpm/action-setup@v4 with: version: 10 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: '22' registry-url: 'https://registry.npmjs.org' cache: 'pnpm' cache-dependency-path: cli/node/pnpm-lock.yaml - name: Install dependencies run: pnpm install --frozen-lockfile - name: Build run: pnpm run build - name: Publish to npm run: | if [ "${{ inputs.prerelease }}" = "true" ]; then PREID=$(node -p "require('./package.json').version.split('-')[1].split('.')[0]") npx npm@latest publish --provenance --access public --tag "$PREID" else npx npm@latest publish --provenance --access public fi