name: CI build

on:
  push:
    branches:
      - master
  pull_request:

jobs:
  test:
    strategy:
      matrix:
        os:
          - ubuntu-latest
          - windows-latest
          - macos-latest

    runs-on: ${{matrix.os}}

    steps:
      - uses: actions/checkout@v4
      - name: Use Node.js
        uses: actions/setup-node@v4
        with:
          node-version-file: '.nvmrc'
      - run: npm ci
      - name: Debug wollok-web-tools files
        run: |
          npm ls wollok-web-tools
          ls -R node_modules/wollok-web-tools/dist || true
        shell: bash
      - name: Unit Tests
        run: npm run test-with-coverage
      - name: Build
        run: npm run build
      - name: Update coverage badge
        if: matrix.os == 'macos-latest'
        uses: codecov/codecov-action@v4
        with:
          files: ./coverage/coverage-final.json
          verbose: true
          token: ${{ secrets.CODECOV_TOKEN }}
