我正在使用gitlab CI运行Symfony Insight,以提高代码质量。
我最近添加了google recaptcha,它需要一个公共(用于树枝)和一个私有令牌(用于控制器)。
要做一个干净的工作,我将它们都添加为环境变量,将pub一个添加为twig全局变量,然后使用getenv获得私有变量。
我现在在symfony见解中收到“ Symfony应用程序应可启动”错误,并带有以下stacktrace:
Symfony \ Component \ DependencyInjection \ Exception \ EnvNotFoundException:找不到环境变量:“ RECAPTCHA_PUBLIC_KEY”。在/home/foobar/code/vendor/symfony/dependency-injection/EnvVarProcessor.php:97
请注意,在本地和php单元测试中,一切都正常运行(也由CI运行)
我猜想在尝试启动全局树枝变量时,洞察力没有找到环境变量。
这是我的.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:
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
答案 0 :(得分:0)
第一个想法:您可以在gitlab-ci.yml的variables
部分插入令牌。
第二个想法是在gitlab-ci.yml的cp .env.dist .env
部分添加命令before_script
。