# https://help.github.com/en/articles/workflow-syntax-for-github-actions

name: Build

on:
- push

jobs:
  build:
    name: Build
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os:
        - windows-2019
        - windows-2022
        - macos-11
        - macos-12
        - ubuntu-20.04
        - ubuntu-22.04
        nodejs:
        - 20
      fail-fast: false
    steps:
    - name: Turn off auto-crlf
      run: git config --global core.autocrlf false
    - name: Checkout source codes
      uses: actions/checkout@v4
    - name: Install Node.js
      uses: actions/setup-node@v4
      with:
        node-version: ${{ matrix.nodejs }}
    - name: Cache NPM
      uses: ./.github/actions/cache-npm
    - name: Install dependencies
      run: npm ci
    - name: Build
      run: npm run build
    - name: Exit if differ (forgot to commit dist dir?)
      run: git diff --exit-code --quiet
    - name: Verify
      run: npm run verify
