
[英]Does Travis CI export an environment variable containing the GitHub user name?
[英]Why does my secure Travis CI environment variable not work?
每次我部署到 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="
这是因为我错过了--add
in travis encrypt STRYKER_DASHBOARD_API_KEY=<my-secret-uuid-key> --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="
什么是让这个工作的正确方法?
TL;DR:现在在专业服务器上创建了新的免费 Travis CI 帐户。
很难诊断,很容易解决! 在 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
到output值可以成功解密,你必须知道你的账号在哪个服务器上,这对于新用户来说目前是很困惑的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.