name: Lint and analyse php files on: push: pull_request: types: [opened, synchronize, reopened] branches: - master - QA_** permissions: contents: read jobs: lint-node: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Node uses: actions/setup-node@v3 with: node-version: 12 - name: Get Yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - 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 install --non-interactive - name: Lint JavaScript files run: yarn run js-lint --quiet - name: Lint CSS files run: yarn run css-lint lint-php-files: runs-on: ubuntu-latest strategy: matrix: php-version: ["7.2"] steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up PHP ${{ matrix.php-version }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} - name: Validate composer.json and composer.lock run: composer validate --strict - name: Install Composer dependencies uses: ramsey/composer-install@v1 with: dependency-versions: highest # Ignore zip for php-webdriver/webdriver composer-options: "--ignore-platform-req=ext-zip" - name: Cache coding-standard uses: actions/cache@v3 with: path: .phpcs-cache key: phpcs-cache - name: Lint PHP files run: ./test/ci-phplint - name: Check coding-standard run: composer phpcs - name: Check Twig templates run: composer run twig-lint analyse-php: runs-on: ubuntu-latest strategy: matrix: php-version: ["7.2"] steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up PHP ${{ matrix.php-version }} uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} extensions: mbstring, iconv, mysqli, zip, gd, bz2 - name: Install Composer dependencies uses: ramsey/composer-install@v1 with: dependency-versions: highest - name: Analyse files with PHPStan run: composer phpstan -- --memory-limit 2G - name: Analyse files with Psalm run: composer psalm -- --shepherd