eliashaeussler/cache-warmup

View on GitHub
.github/workflows/cgl.yaml

Summary

Maintainability
Test Coverage
name: CGL
on:
  push:
    branches:
      - main
      - 'renovate/**'
  pull_request:
    branches:
      - main

jobs:
  cgl:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      # Prepare environment
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: 8.3
          tools: composer:v2, composer-require-checker, composer-unused
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm

      # Validation
      - name: Validate composer.json
        run: composer validate --no-check-lock

      # Install dependencies
      - name: Install Composer dependencies
        uses: ramsey/composer-install@v2
      - name: Install Frontend dependencies
        run: npm ci

      # Audit packages
      - name: Audit Frontend dependencies
        run: npm audit

      # Check dependencies
      - name: Check Composer dependencies
        run: composer-require-checker check
      - name: Check for unused Composer dependencies
        run: composer-unused
      - name: Check for unused Frontend dependencies
        run: npm run check-dependencies

      # Linting
      - name: Lint composer.json
        run: composer lint:composer
      - name: Lint Editorconfig
        run: composer lint:editorconfig
      - name: Lint PHP
        run: composer lint:php
      - name: Lint shell files
        run: bash -c 'shopt -s globstar nullglob; shellcheck tests/e2e/**/*.sh'

      # SCA
      - name: SCA PHP
        run: composer sca:php -- --error-format github

      # Migration
      - name: Run Rector migration
        run: composer migration:rector -- --dry-run