1

每次我部署到 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="

这是因为我错过了 in 中的一个破折号--addtravis 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="

什么是让这个工作的正确方法?

4

1 回答 1

6

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输出可以成功解密的值,你必须知道你的帐户在哪个服务器上,这对于新用户来说目前非常混乱。

于 2019-09-29T23:14:31.303 回答