| | name: Publish `@librechat/client` to NPM |
| |
|
| | on: |
| | push: |
| | branches: |
| | - main |
| | paths: |
| | - 'packages/client/package.json' |
| | workflow_dispatch: |
| | inputs: |
| | reason: |
| | description: 'Reason for manual trigger' |
| | required: false |
| | default: 'Manual publish requested' |
| |
|
| | permissions: |
| | id-token: write |
| | contents: read |
| |
|
| | jobs: |
| | build-and-publish: |
| | runs-on: ubuntu-latest |
| | environment: publish |
| | steps: |
| | - uses: actions/checkout@v4 |
| | |
| | - name: Use Node.js |
| | uses: actions/setup-node@v4 |
| | with: |
| | node-version: '20.x' |
| | registry-url: 'https://registry.npmjs.org' |
| | |
| | - name: Update npm for OIDC support |
| | run: npm install -g npm@latest |
| | |
| | - name: Install client dependencies |
| | run: cd packages/client && npm ci |
| | |
| | - name: Build client |
| | run: cd packages/client && npm run build |
| | |
| | - name: Check version change |
| | id: check |
| | working-directory: packages/client |
| | run: | |
| | PACKAGE_VERSION=$(node -p "require('./package.json').version") |
| | PUBLISHED_VERSION=$(npm view @librechat/client version 2>/dev/null || echo "0.0.0") |
| | if [ "$PACKAGE_VERSION" = "$PUBLISHED_VERSION" ]; then |
| | echo "No version change, skipping publish" |
| | echo "skip=true" >> $GITHUB_OUTPUT |
| | else |
| | echo "Version changed, proceeding with publish" |
| | echo "skip=false" >> $GITHUB_OUTPUT |
| | fi |
| | |
| | - name: Pack package |
| | if: steps.check.outputs.skip != 'true' |
| | working-directory: packages/client |
| | run: npm pack |
| | |
| | - name: Publish |
| | if: steps.check.outputs.skip != 'true' |
| | working-directory: packages/client |
| | run: npm publish *.tgz --access public --provenance |
| |
|