Phpstan с gitlab-ci не может найти srcApp_KernelDevDebugContainer. xml, потому что он находится в gitignore? - PullRequest
1 голос
/ 06 марта 2020

это мой phpstan.neon

  parameters:
  checkMissingIterableValueType: false
  checkGenericClassInNonGenericObjectType: false
  symfony:
        container_xml_path: '%rootDir%/../../../var/cache/dev/srcApp_KernelDevDebugContainer.xml'
  bootstrap: '%rootDir%/../../../vendor/autoload.php'

Это мой фрагмент gitlab-ci

commit:
  stage: analysis
  variables:
    APP_ENV: dev
  cache:
    untracked: true
    paths:
     - Source/var/cache/dev/
  before_script:
    - cd Source
    - cp .env.example .env
    - composer install --no-interaction --optimize-autoloader --classmap-authoritative
  script:
    - composer commit
  only:
    - merge_requests

И я получаю следующую ошибку:

In XmlServiceMapFactory.php line 29:

   [PHPStan\Symfony\XmlContainerNotExistsException]                             
   Container /builds/Mehlichmeyer/heracles-mvp-symfony/Source/vendor/phpstan/p  
   hpstan/../../../var/cache/dev/srcApp_KernelDevDebugContainer.xml does not e  
   xist                  

Проблема заключается в том, что мой контейнер gitlab-ci не имеет srcApp_KernelDevDebugContainer. xml, поскольку он находится в моем .gitignore (/ var / is). Любые идеи для обхода?

Ответы [ 2 ]

1 голос
/ 06 марта 2020

Чтобы иметь этот файл, вы должны сгенерировать кеш для среды разработки с активированной отладкой. Я думаю, это можно сделать в разделе «before_script»:

before_script:
    - cd Source
    - cp .env.example .env
    - composer install --no-interaction --optimize-autoloader --classmap-authoritative
    - php bin/console cache:warmup --env=dev

Ваш .env файл должен иметь флаг отладки:

###> symfony/framework-bundle ###
APP_ENV=dev
APP_DEBUG=1
APP_SECRET=APP_SECRET
###< symfony/framework-bundle ###

Я не знаю gitlab-ci но я сделал это с GitHub-действиями, и это работает хорошо.

0 голосов
/ 06 марта 2020

Хорошо, так что я наконец нашел проблему. Я обновил свой Symfony с 4.x до 5.x, и мне пришлось настроить phpstan.neon

container_xml_path: '%rootDir%/../../../var/cache/dev/App_KernelDevDebugContainer.xml'

Локально это никогда не выдавало ошибку, потому что я не запустил кэш bin / console: ясно, так что старый container_xml_path работал нормально.

...