name: Publish `librechat-data-provider` to NPM on: push: branches: - main paths: - 'packages/data-provider/package.json' workflow_dispatch: inputs: reason: description: 'Reason for manual trigger' required: false default: 'Manual publish requested' permissions: contents: read jobs: pack: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '24.16.0' - run: cd packages/data-provider && npm ci - run: cd packages/data-provider && npm run build - name: Pack package run: | mkdir -p npm-package cd packages/data-provider npm pack --pack-destination "$GITHUB_WORKSPACE/npm-package" - name: Upload package uses: actions/upload-artifact@v4 with: name: librechat-data-provider-package path: npm-package/*.tgz if-no-files-found: error retention-days: 2 publish-npm: needs: pack if: github.ref == 'refs/heads/main' runs-on: ubuntu-latest environment: publish # Must match npm trusted publisher config permissions: contents: read id-token: write # Required for OIDC trusted publishing steps: - uses: actions/setup-node@v4 with: node-version: '24.16.0' registry-url: 'https://registry.npmjs.org' - name: Install npm with OIDC support run: npm install -g npm@11.14.1 --ignore-scripts - name: Download package uses: actions/download-artifact@v4 with: name: librechat-data-provider-package path: npm-package - name: Publish package working-directory: npm-package run: npm publish *.tgz --provenance