📦 ci: Refactor workflow to combine build and publish steps with version check for @librechat/data-schemas

This commit is contained in:
Danny Avila 2025-03-07 12:18:03 -05:00
parent a2b7812033
commit 932474c44e
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956
2 changed files with 40 additions and 21 deletions

View file

@ -14,27 +14,45 @@ on:
default: 'Manual publish requested'
jobs:
build:
build-and-publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 16
- run: cd packages/data-schemas && npm ci
- run: cd packages/data-schemas && npm run build
publish-npm:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 16
registry-url: 'https://registry.npmjs.org'
- run: cd packages/data-schemas && npm ci
- run: cd packages/data-schemas && npm run build
- run: cd packages/data-schemas && npm publish --access=public
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
node-version: '18.x'
- name: Install dependencies
run: cd packages/data-schemas && npm ci
- name: Build
run: cd packages/data-schemas && npm run build
- name: Set up npm authentication
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
- name: Check version change
id: check
working-directory: packages/data-schemas
run: |
PACKAGE_VERSION=$(node -p "require('./package.json').version")
PUBLISHED_VERSION=$(npm view @librechat/data-schemas 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/data-schemas
run: npm pack
- name: Publish
if: steps.check.outputs.skip != 'true'
working-directory: packages/data-schemas
run: npm publish *.tgz --access public