diff --git a/.github/workflows/data-schemas.yml b/.github/workflows/data-schemas.yml index a46642de43..bcc276249b 100644 --- a/.github/workflows/data-schemas.yml +++ b/.github/workflows/data-schemas.yml @@ -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}} \ No newline at end of file + 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 \ No newline at end of file diff --git a/packages/data-schemas/package.json b/packages/data-schemas/package.json index b41a16de5b..2a16571677 100644 --- a/packages/data-schemas/package.json +++ b/packages/data-schemas/package.json @@ -56,7 +56,8 @@ "typescript": "^5.0.4" }, "publishConfig": { - "registry": "https://registry.npmjs.org/" + "registry": "https://registry.npmjs.org/", + "access": "public" }, "dependencies": { "mongoose": "^8.9.5"