build: pin node version to 19.7.x CI
[poolifier.git] / .github / workflows / npmpublish.yml
index cfdc67a712004944e5f172a858a2599436271388..e32ce385eeb62d08f0d8bc2bee7deed7c9e130c2 100644 (file)
@@ -10,27 +10,56 @@ jobs:
 
     steps:
       - name: Checkout
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
 
       - name: Setup Node
-        uses: actions/setup-node@v2
+        uses: actions/setup-node@v3
         with:
-          node-version: 12
-      - run: npm ci
-      - run: npm run test:prod
-      - run: npm run lint
-      - run: npm run coverage
+          node-version: '18.x'
+
+      - name: Install
+        run: npm ci
+
+      - name: Tests & Coverage
+        run: |
+          npm run test
+          npm run coverage
+
+      - name: Lint
+        run: npm run lint
+
+      - name: Production Build
+        run: npm run build:prod
+
+  publish-npm:
+    needs: build
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
 
       - name: Setup Node
-        uses: actions/setup-node@v2
+        uses: actions/setup-node@v3
         with:
-          node-version: 12
+          node-version: '18.x'
           registry-url: https://registry.npmjs.org/
 
+      - name: Read package.json version
+        id: package-version
+        uses: jaywcjlove/github-action-package@main
+
       - name: Install
-        run: npm ci --production
+        run: npm ci
+
+      - name: Publish Release
+        if: ${{ contains(steps.package-version.outputs.version, '-') == false }}
+        run: npm publish
+        env:
+          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
 
-      - name: Publish
-        run: npm publish --tags
+      - name: Publish Beta
+        if: ${{ contains(steps.package-version.outputs.version, 'beta') }}
+        run: npm publish --tag beta
         env:
-          NODE_AUTH_TOKEN: ${{secrets.npm_token}}
+          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}