#ruby-on-rails #jenkins #rabbitmq #database-migration #rake-task
#ruby-on-rails #дженкинс #rabbitmq #база данных-миграция #задача рейка
Вопрос:
Столкнулся с проблемой при развертывании изменения кода в нашей среде разработки через Jenkins. Сборка Jenkins застревает при выполнении rake db:migrate
следующего кода в папке инициализатора.
AMQP_URL_PATH = "#{AMQP_CONFIG[:protocol]}://#{AMQP_CONFIG[:user]}:#{Rails.application.secrets[:amqp_api_password]}@#{AMQP_CONFIG[:host]}/#{AMQP_CONFIG[:virtual_host]}"
Как вы можете видеть, он пытается получить доступ к двум файлам yaml amqp.yml
и secrets.yml
. Я могу подтвердить, что оба файла существуют в окне разработки в папке конфигурации.
локальный код выдает следующий хороший URL
amqps://user:password@10.118.1.134/virtualhost
разработка кода возвращает только ://:@
Ошибка сборки Дженкина заключается в следующем.
15:59:21 URI::InvalidURIError: bad URI(is not URI?): ://:@
Как вы можете видеть, ни одно из интерполированных значений не попадает в строку url, когда это выполняется в Jenkins. Это единственное изменение, которое произошло в этом push, и если я жестко закодирую путь, сборка будет работать отлично. Как мне заставить Дженкинса получить доступ к этим файлам YAML при выполнении задач rake во время развертывания сборки?
Разработка: Rails 4.2.5 Ruby 2.2.2 Локальная: Rails 4.2.5 Ruby 2.2.3