Почему моя безопасная переменная среды Travis CI не работает? - PullRequest
0 голосов
/ 29 сентября 2019

Каждый раз, когда я развертываюсь на 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 в 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="

Как правильно заставить это работать?

1 Ответ

0 голосов
/ 30 сентября 2019

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 для вывода значений, которые могут быть успешнорасшифровав, вы должны знать, на каком сервере работает ваша учетная запись, что в настоящее время очень запутанно для новых пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...