From 344b0658a46e2aff238cac80e9130911c20342a8 Mon Sep 17 00:00:00 2001 From: juanelas Date: Sun, 19 Apr 2020 01:14:17 +0200 Subject: [PATCH] github actions workflow --- .github/workflows/nodejs.yml | 81 ++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 .github/workflows/nodejs.yml diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml new file mode 100644 index 0000000..db7bf8a --- /dev/null +++ b/.github/workflows/nodejs.yml @@ -0,0 +1,81 @@ +# 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: [11, 12, 13] + 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: build + run: npm run build + + - name: test + run: npm test + + 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: 12 + registry-url: https://registry.npmjs.org/ + + - name: install + if: steps.check.outputs.changed == 'true' + run: npm ci + + - name: build + if: steps.check.outputs.changed == 'true' + run: npm run build + + - name: test + if: steps.check.outputs.changed == 'true' + run: npm test + + - name: create code coverage report + 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 }} \ No newline at end of file