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