name: Build

on:
  push:
    branches:
      - '**'
    tags-ignore:
      - '**'
  pull_request:
    branches:
      - main

jobs:
  build:
    name: monaco-languageclient
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
    - name: Checkout
      uses: actions/checkout@v4

    - name: Volta
      uses: volta-cli/action@v4

    - name: Use pnpm
      uses: pnpm/action-setup@v3
      with:
        version: 9

    - name: Install
      shell: bash
      run: |
        npm ci

    - name: Build
      shell: bash
      run: |
        npm run report:versions
        npm run build

    - name: Lint
      shell: bash
      run: |
        npm run report:versions
        npm run lint

    - name: Test
      shell: bash
      run: |
        npm run report:versions
        npm run test:run

    - name: Build production
      if: github.ref_name == 'main'
      shell: bash
      run: |
        npm run vite:build

    - name: Verify
      if: github.ref_name == 'main'
      shell: bash
      run: |
        bash ./verify/buildAll.sh