【问题标题】:Why does my secure Travis CI environment variable not work?为什么我的安全 Travis CI 环境变量不起作用?
【发布时间】:2020-01-28 20:33:57
【问题描述】:

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

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

【问题讨论】:

    标签: github travis-ci badge infection


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

    【讨论】:

    猜你喜欢
    • 2015-10-09
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2021-12-29
    • 2014-11-19
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    相关资源
    最近更新 更多