name: CI on: push: tags: - "*.*.*" workflow_dispatch: jobs: build: runs-on: [docker] steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '20' - name: Install dependencies run: npm ci - name: Prettier run: npm run prettier:check - name: ES Lint run: npm run lint - name: Test run: npm run test - name: Build run: npm run build - name: Upload artifact uses: actions/upload-artifact@v3 with: name: gxc-math-${{ github.sha }} path: ./dist/ deploy: needs: build runs-on: [docker] environment: production steps: - name: Download artifact uses: actions/download-artifact@v3 with: name: gxc-math-${{ github.sha }} path: ./artifact - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' registry-url: ${{ vars.VERDACCIO_URL }} - name: Publish to NPM run: npm publish ./artifact --registry ${{ vars.VERDACCIO_URL }} env: VERDACCIO_URL: ${{ vars.VERDACCIO_URL }} NODE_AUTH_TOKEN: ${{ secrets.VERDACCIO_TOKEN }}