diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 75dc85b..ab65bdc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,21 +1,54 @@ -name: Run Tests +name: CI and Conditional Publish on: [push, pull_request] jobs: - build: + build-and-test: runs-on: ubuntu-latest - strategy: - matrix: - node-version: [16.x] + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js 16.x + uses: actions/setup-node@v2 + with: + node-version: '16' + + - name: Install dependencies + run: npm ci + + - name: Build the package + run: npm run build + - name: Run tests + run: npm run test + + publish: + needs: build-and-test + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/main' && github.event_name == 'push' steps: - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} + + - name: Check if version changed + id: version-check + uses: EndBug/version-check@v1 + with: + file: 'package.json' + + - name: Set up Node.js + if: steps.version-check.outputs.changed == 'true' uses: actions/setup-node@v2 with: - node-version: ${{ matrix.node-version }} - - run: npm cache clean --force - - run: npm ci - - run: npm run test + node-version: '16' + registry-url: 'https://registry.npmjs.org/' + + - name: Install dependencies + if: steps.version-check.outputs.changed == 'true' + run: npm ci + + - name: Publish to npm + if: steps.version-check.outputs.changed == 'true' + run: npm publish + env: + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}