我每次部署到Github时,Travis CI在报告末尾都说:
Dashboard report has not been sent: neither INFECTION_BADGE_API_KEY nor STRYKER_DASHBOARD_API_KEY were found in the environment
我尝试设置环境变量至少四次:
起初,我的.travis.yml
文件看起来像这样:
language: php
php:
- '7.3'
install: composer update
script:
- vendor/bin/infection --min-covered-msi=90 --min-msi=90
dd:
secure: "A/s0...bS8="
这是因为我错过了travis encrypt STRYKER_DASHBOARD_API_KEY=<my-secret-uuid-key> --add
中--add
中的一个破折号(来自链接的第4步)。
当我修复它时,会给出相同的错误消息:
-dd:
- secure: A/s0...bS8=
+env:
+ global:
+ secure: A/s0...bS8=
随后的每次尝试都给出了相同的错误。尝试生成新密钥:
- secure: A/s0...bS8=
+ - secure: iQra...Ol0=
引用加密值:
- - secure: iQra...Ol0=
+ - secure: 'iQra...Ol0='
不使用--add
选项,而是从控制台手动复制并粘贴到配置文件中:
- - secure: 'iQra...Ol0='
+ secure: "CPPE...3nk="
什么是使它正常工作的正确方法?
答案 0 :(得分:1)
TL; DR:现在在专业服务器上创建了新的免费Travis CI帐户。
难以诊断,易于修复! The instructions for creating a secure environment variable on Travis CI没提到现在所有新帐户都在专业服务器(travis-ci.com)上创建,并且不再在旧的免费服务器(travis-ci.org)上创建,即使是免费帐户!更令人困惑的是,您可以在两个地址上看到相同的帐户!
因此,要加密环境变量,必须将服务器标志(--pro
或--com
)传递给travis encrypt
:
travis encrypt --pro MY_SECRET_ENV=super_secret --add
或
travis encrypt --com MY_SECRET_ENV=super_secret --add
用变量名替换MY_SECRET_ENV
,用实际值替换super_secret
。
如果您的旧免费帐户仍在travis-ci.org上,则可以继续使用:
travis encrypt MY_SECRET_ENV=super_secret --add
或
travis encrypt --org MY_SECRET_ENV=super_secret --add
要让travis encrypt
输出可以成功解密的值,您必须知道您的帐户位于哪台服务器上,而这对于新用户来说非常令人困惑。