name: Lint themes

on:
  push:
  pull_request:
    types: [opened, synchronize, reopened]
    branches:
      - master

jobs:
  test-php:
    name: Test on php ${{ matrix.php-version }} and ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        php-version: ["7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1"]
        os: [ubuntu-latest]
    steps:
      - uses: actions/checkout@v3
      - name: Use php ${{ matrix.php-version }}
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-version }}
      - name: Lint PHP files
        run: find . -name '*.php' -print0 | xargs -0 -r -n1 php -l
      - name: Lint all themes
        run: ./lint-theme.sh --all

  css-check:
    name: Check CSS files
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Set up Node
        uses: actions/setup-node@v3
        with:
          node-version: 16

      - name: Get Yarn cache directory path
        id: yarn-cache-dir-path
        run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT

      - name: Cache Yarn dependencies
        uses: actions/cache@v3
        with:
          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-

      - name: Install modules
        run: yarn global add postcss postcss-cli autoprefixer --non-interactive

      - name: Run postcss
        # postcss also checks for syntax errors
        run: postcss */css/*.css setup/styles.css --use autoprefixer --replace