# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions name: Node CI on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: name: build, test, check coverage runs-on: ubuntu-latest strategy: matrix: node-version: [10, 12, 14] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - name: install run: npm ci - name: lint run: npm run lint - name: build run: npm run build:js - name: docs run: npm run docs - name: browser tests run: npm run test:browser - name: node tests and coverage run: npm run coverage publication: needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: EndBug/version-check@v1 id: check - name: check version changes if: steps.check.outputs.changed == 'true' run: 'echo "Version change found! New version: ${{ steps.check.outputs.version }} (${{ steps.check.outputs.type }})"' - uses: actions/setup-node@v1 if: steps.check.outputs.changed == 'true' with: node-version: 14 registry-url: https://registry.npmjs.org/ - name: install if: steps.check.outputs.changed == 'true' run: npm ci - name: lint if: steps.check.outputs.changed == 'true' run: npm run lint - name: build if: steps.check.outputs.changed == 'true' run: npm run build:js - name: docs if: steps.check.outputs.changed == 'true' run: npm run docs - name: browser tests if: steps.check.outputs.changed == 'true' run: npm run test:browser - name: node tests and coverage if: steps.check.outputs.changed == 'true' run: npm run coverage - name: send report to coveralls.io if: steps.check.outputs.changed == 'true' uses: coverallsapp/github-action@master with: github-token: ${{ secrets.GITHUB_TOKEN }} - name: publish to NPM if: steps.check.outputs.changed == 'true' run: npm publish env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}