name: CI

on:
  pull_request:
  push:
    branches:
      - master

jobs:
  build:
    name: Build ${{ matrix.build-group }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - os: windows-2019
            arch: x86
            build-group: win32-x86
          - os: windows-2019
            arch: x64
            build-group: win32-x64
    env:
      BUILD_GROUP: ${{ matrix.build-group }}
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v2
      with:
        node-version: '16'
        architecture: ${{ matrix.arch }}
    - run: npm ci
    - run: npm run lint
    - run: TESTING=true npx mocha
      shell: bash
    - name: Prebuildify
      run: npm run prebuild-$BUILD_GROUP
      shell: bash
    - uses: actions/upload-artifact@v2
      with:
        name: prebuilds
        path: prebuilds/
  publish:
    name: Publish to npm
    if: github.event_name == 'push' && github.ref == 'refs/heads/master'
    runs-on: ubuntu-20.04
    needs: build
    steps:
    - uses: actions/checkout@v2
    - uses: actions/download-artifact@v2
      with:
        name: prebuilds
        path: prebuilds
    - uses: phips28/gh-action-bump-version@608cab1205a5560a93eb66b4a64e4acf2119597b
      with:
        tag-prefix: 'v'
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    - uses: actions/setup-node@v2
      with:
        node-version: '16'
        registry-url: 'https://registry.npmjs.org'
    - run: npm publish --access public
      env:
        NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
