Преглед изворни кода

feat(ci): Add GitHub Actions workflow to publish master branch to NPM (#3596)

David Höck пре 7 месеци
родитељ
комит
c2af387f7a
1 измењених фајлова са 58 додато и 0 уклоњено
  1. 58 0
      .github/workflows/publish_master_to_npm.yml

+ 58 - 0
.github/workflows/publish_master_to_npm.yml

@@ -0,0 +1,58 @@
+name: Publish Master Branch to NPM
+
+on:
+    workflow_dispatch:
+    push:
+        branches:
+            - master
+
+jobs:
+    publish:
+        runs-on: ubuntu-latest
+        permissions:
+            contents: read
+            id-token: write
+
+        # Only allow workflow to run on master branch
+        if: github.ref == 'refs/heads/master'
+
+        steps:
+            - name: Checkout
+              uses: actions/checkout@v4
+              with:
+                  fetch-depth: 0
+
+            - name: Setup Node.js
+              uses: actions/setup-node@v4
+              with:
+                  node-version: '22.x'
+                  registry-url: 'https://registry.npmjs.org'
+
+            - name: Install dependencies
+              run: npm install --no-save
+
+            - name: Get current date
+              id: date
+              run: echo "date=$(date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT
+
+            - name: Version and build packages
+              run: |
+                  # Get the current version from lerna.json
+                  CURRENT_VERSION=$(node -p "require('./lerna.json').version")
+                  # Split version into parts
+                  IFS='.' read -r -a VERSION_PARTS <<< "$CURRENT_VERSION"
+                  # Increment patch version
+                  PATCH=$((VERSION_PARTS[2] + 1))
+                  # Create new version with date
+                  NEW_VERSION="${VERSION_PARTS[0]}.${VERSION_PARTS[1]}.${PATCH}-master-${{ steps.date.outputs.date }}"
+                  # Update version using lerna directly
+                  npx lerna version $NEW_VERSION --no-git-tag-version --yes --no-push --force-publish
+
+            - name: Build packages
+              run: npm run build
+
+            - name: Publish to NPM
+              run: npx lerna publish from-package --yes --dist-tag master --no-git-reset --no-verify-access
+              env:
+                  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
+                  NPM_CONFIG_PROVENANCE: true