У меня есть приложение nodejs
, и я использую Travis CI для непрерывной интеграции (запуска тестов и кодирования кода eslint). В моем проекте я использую некоторые переменные окружения в файле .env
(ключ jwt, учетные данные mongodb и т. Д.)
Теперь я хочу настроить непрерывное развертывание после слияния ветки development
в master
. Для этого я уже исследовал документы Travis и другие руководства, которые были найдены в Google и провел некоторые настройки. Мой .travis.yml
файл:
language: node_js
node_js: lts/*
cache:
directories:
- node_modules
script:
- yarn install
- yarn test
- yarn lint
notifications:
email: false
deploy:
provider: gae
project: gae-project-name
skip_cleanup: true
keyfile: gae.json
on: master
env:
global:
- secure: FlwzKDN8HXl1cuGBhtQwbm/GjbOVMcLfEhcJkKky+2aGIhe4BOSxjMynrCts7eM53a87GMnyJXsmFxKOeO+w8RYqHVixD77duejV2o+XkoZL1QWORqiSMyK8dvLNc+lqoJ1Lf+qFqOOQCq1TxJ4W5ycFs82/hJMlMuu8jf2fxGhENoDwcARivZ0Fsrq/4/JA+YS3JjG6dqr78M7VwhrKv4mk4M5wMHiacHpKPhHib56v//wwUtsgYnyVLV0n+CPBlm6yh2aWbESt+YLU4uar39gumpG5bzp4+F01qDrWQwi3ctArOYZ5sKHgSfHZDP4jOEcKF4pYWoUlMqkT1vInmK27jnoiiCjZzQ6sfLw2O8eTb104Rlbgae4ttY38KWNE5N5w37DvSV5VzkAZ5xJuXb4j+GF/YmDep5tKNFKgjyUkFeNb7gXY/9INaJlCMiw6guQ6dYRoQlHCbv43jLnxy75E5PHPKMKHkZEi1nfvCKBYgJhIZxZ1PEjWyrupvnt+eyV0IxC7e9vCr/Ih8GkUEPa/uFVHAhDzr5x11OxQogOlSbh+G1kytUS2LhUyxqnQeFwo0DZACML/GPW41r2iXmIwI+SZzSVuT/01ZTRJNiS56UfnncI/+q5rbHR/1muTArnEqbeCISOP0YN2cBF4MefelXuNmjy2IJop56vea/U=
...other variables
Такая конфигурация работает хорошо: если при выполнении команд test
и lint
ошибок не возникло, проект развертывается в Google App Engine.
Но я столкнулся с проблемой: я не могу безопасно экспортировать свой env. переменные для сборки GAE в процессе CI, так как для сборки он берет файлы из master
репо, где .env
отсутствует (файлы с конфиденциальными данными находятся в .gitignore
). Таким образом, хотя приложение развернуто, оно не работает как env. переменные отсутствуют.
Я не нашел способа безопасно экспортировать переменные среды в GAE с Travis CI и надеяться на вашу помощь.
P.S. как вы можете заметить, я уже зашифровал мою среду. переменные в .travis.yml
. Я сделал это для запуска тестов, которые использовали детали среды. Но я не знаю, как экспортировать их в процесс сборки GAE.