name: Static analysis

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  phpstan:
    name: Static analysis
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Get Composer Cache Directory
      id: composer-cache
      run: |
        echo "::set-output name=dir::$(composer config cache-files-dir)"
    
    - uses: actions/cache@v1
      with:
        path: ${{ steps.composer-cache.outputs.dir }}
        key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
        restore-keys: |
          ${{ runner.os }}-composer-  

    - name: Install dependencies
      run: composer install --prefer-dist --no-progress

    - name: Lint config files
      run: ./bin/console lint:yaml config --parse-tags
    
    - name: Lint twig templates
      run: ./bin/console lint:twig templates --env=prod
    
    - name: Lint translations 
      run: ./bin/console lint:xliff translations

    - name: Check dependencies for security
      uses: symfonycorp/security-checker-action@v2
    
    - name: Check doctrine mapping
      run: ./bin/console doctrine:schema:validate --skip-sync -vvv --no-interaction
    
    - name: Generate dev container
      run: ./bin/console cache:clear --env dev
    
    - name: Run PHPstan
      run: composer phpstan
