name: CI

on:
  push:
  pull_request:
  workflow_dispatch:

jobs:

  php-api:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        php-versions: ['8.1', '8.4']

    steps:
      - uses: actions/checkout@v2
      - uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}
          tools: composer:v2
      - name: Validate composer.json and composer.lock
        run: composer validate --strict
      - name: Install dependencies
        run: composer install --prefer-dist --no-progress
      - name: Lint
        run: composer run-script lint
      - name: Test
        run: composer run-script test

  js-api:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v3
        with:
          node-version: 18
      - name: Install dependencies
        run: npm install
      - name: Lint
        run: npm run lint
      - name: Check JS
        run: npm run types
      - name: Test
        run: npm run test
