Я использую Symfony Insight с помощью gitlab CI для улучшения качества моего кода.
Я недавно добавил gap recaptcha, для которого нужен публичный (используется в ветке) и приватный токен (используется в контроллере).
Чтобы сделать чистую работу, я добавил их обе как переменные окружения, добавил pub как глобальную переменную twig, и я получил частную с getenv.
Теперь я получаю сообщение об ошибке «Приложение Symfony должно быть загружаемым» в представлении Symfony со следующей трассировкой стека:
Symfony \ Component \ DependencyInjection \ Exception \ EnvNotFoundException: переменная среды не найдена: "RECAPTCHA_PUBLIC_KEY". в /home/foobar/code/vendor/symfony/dependency-injection/EnvVarProcessor.php:97
Обратите внимание, что все работает как на локальных, так и на php модульных тестах (также запускаемых CI)
Я предполагаю, что понимание не находит переменную env при попытке инициировать глобальную переменную ветки.
Вот мой файл .env.dist: (ключи - ключ тестирования Google, не мои настоящие, не волнуйтесь)
###> google-recaptcha ###
RECAPTCHA_PRIVATE_KEY=6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
RECAPTCHA_PUBLIC_KEY=6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
###< google-recaptcha ###
Вот мое объявление переменной ветки:
globals:
recaptcha_public_key: '%env(RECAPTCHA_PUBLIC_KEY)%'
И мой конфиг Gitlab-CI Insight:
insight:
stage: insight
image: php:7.1
tags:
- symfony4
script:
- curl -o insight.phar -s https://get.insight.symfony.com/insight.phar
- php insight.phar analyze --no-interaction --no-ansi cc8f0c98-ce1b-4b1e-acc4-9dfafd4bafc4 -v --reference=$CI_COMMIT_SHA --user-uuid=23888e4d-ec4f-479b-90c6-ee454c7bfc88 --api-token=b1dcbef05392e237a5ee5d29ea348b9ab7179245b0f086c3490478b0ae643272 --fail-condition="counts.critical > 0 or counts.major > 0"
only:
- develop
- master
variables:
MYSQL_DATABASE: higalsymf
DATABASE_HOST: mysql
MYSQL_ROOT_PASSWORD: root