Могу ли я передать переменную окружения из CircleCI в код в Spring Boot? - PullRequest
1 голос
/ 20 апреля 2020

Я хочу поместить переменные окружения из CircleCI в файл application-production.properties при развертывании на Heroku.

application-production.properties

jwt.secret-key=${JWT_SECRET_KEY}

registration.url=${REGISTRATION_URL}

spring.mail.host=${MAIL_HOST}
spring.mail.port=${MAIL_PORT}
spring.mail.username=${MAIL_USERNAME}
spring.mail.password=${MAIL_PASSWORD}
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

application.properties (просто для создания обязательно я правильно настроил профиль)

spring.profiles.active=production

.circleci / config.yml

version: 2.1

executors:
  java-version:
    docker:
      - image: 'cimg/openjdk:11.0.7'

orbs:
  maven: circleci/maven@1.0.0
  heroku: circleci/heroku@1.0.1

workflows:
  build_deploy:
    jobs:
      - maven/test:
          executor: java-version
      - heroku/deploy-via-git:
          requires:
            - maven/test
          filters:
            branches:
              only: master

Журналы Heroku:

...
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'MAIL_HOST' in value "${MAIL_HOST}"
...

Я что-то пропустил? Каков наилучший подход к работе с учетными данными / конфиденциальными данными и работе с CI / CD?

Он работает локально (отправка электронных писем) и проходит сборку и развертывание в CircleCI, но при запуске в Heroku он требует sh.

1 Ответ

1 голос
/ 20 апреля 2020

при развертывании на Heroku рекомендуется использовать Config Vars для предоставления переменных конфигурации времени выполнения.

Убедитесь, что имена переменных имеют верхний регистр и точно соответствуют тому, что вы определили в файле свойств.

...