繁体   English   中英

为什么我的安全 Travis CI 环境变量不起作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM