Почему моя безопасная переменная среды Travis CI не работает?

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

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 с фактическим значением.

Если у вас есть старая бесплатная учетная запись, которая все еще находится на https://travis-ci.org/, вы можете продолжать использовать:

travis encrypt MY_SECRET_ENV=super_secret --add

или

travis encrypt --org MY_SECRET_ENV=super_secret --add

За travis encryptдля вывода значений, которые могут быть успешно расшифрованы, вы должны знать, на каком сервере находится ваша учетная запись, что в настоящее время очень сбивает с толку новых пользователей.

Другие вопросы по тегам