Node-CI #271
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Node-CI | |
on: | |
push: | |
branches: master | |
pull_request: | |
create: # Run when tag is created | |
jobs: | |
build: | |
strategy: | |
matrix: | |
node-version: [10.x, 12.x, 14.x] | |
os: [ubuntu-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v1 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: actions/cache@v2 | |
with: | |
path: ~/.npm | |
key: ${{ matrix.os }}-node-${{ matrix.node-version }}-${{ hashFiles('**/package-lock.json') }} | |
- name: npm install, build and test | |
run: | | |
npm ci | |
npm run build | |
npm run test-coverage | |
env: # TODO add "npm run lint" above | |
CI: true | |
- name: Coveralls Parallel | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.github_token }} | |
flag-name: run-${{ matrix.node-version }} | |
parallel: true | |
finish: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Coveralls Finished | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.github_token }} | |
parallel-finished: true | |
publish-npm: | |
# publish only if we are on our own repo, event was 'create' (a tag was created) and the tag starts with "v" (aka version tag) | |
if: github.repository == 'homebridge/HAP-NodeJS' && github.event_name == 'create' && startsWith(github.ref, 'refs/tags/v') | |
needs: build # only run if build succeeds | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-node@v1 | |
with: | |
node-version: 10 # use the minimum required version | |
registry-url: https://registry.npmjs.org/ | |
- uses: actions/cache@v2 | |
with: | |
path: ~/.npm | |
key: ubuntu-latest-node-10-${{ hashFiles('**/package-lock.json') }} | |
- run: npm ci | |
- run: npm publish | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.npm_token }} |