3

Я работаю над проектом с несколькими людьми, веб-приложение, которое требует, чтобы веб-пакет был создан, углеродирован, объединен в несколько файлов, например. app.min.js, style.min.css и т. д. - В результате этого, чтобы предотвратить конфликты слияния, мы недавно добавили папку сборки в .gitignore в предположении, что мы сможем построить во время развертывания.Развертывание файлов сборки из непрерывной интеграции

При нажатии на ведущую ветку мы автоматически «разворачиваем» через Семафор CI (аналогично Travis), который запускает установку композитора, установку npm и, наконец, «npm run build», которая запускает сборку webpack. Все это построено, а затем проверено на стороне CI вещей, а затем Semaphore автоматически развертывается на Amazon's Elastic Beanstalk, где находится наше приложение.

Проблема с этим, кажется, что Семафор не загружает сборку, которую она только что протестировала, а сама ветка мастера, которая не имеет встроенных JS или CSS. Мне интересно, есть ли способ продвинуть эти встроенные файлы к развертыванию, или если весь процесс сборки AGAIN на Elastic Beanstalk является единственным маршрутом. Кажется ненужным делать этот процесс по существу 3 раза, локально, CI, а затем развертывать. Каждый раз, когда требуется такой шаг в ЭБ, фактическое время повторной инстанцирования увеличивается дольше, что я хотел бы сохранить как можно короче.

Очевидно, что если построить 3-е время на ЭБ, это единственный способ сделать это, тогда мне нужно будет просто подумать, есть ли лучшие решения для всего этого рабочего процесса.

+0

Я попытался использовать решение @Dean, упомянутое ниже, но оно не работает в системах CI, которые я пробовал. Он работает локально, хотя. – theoutlander

ответ

0

У меня был отличный первый опыт работы с https://deploybot.com/. Он может развернуть непосредственно на эластичный бобовый шток. Это может быть интересно или вы.

+0

I'm на самом деле не пытаюсь добавить еще один шаг сборки в этот рабочий процесс, иначе я бы просто запустил сборку на EB. –

2

Я не работал с Семафор CI, но вы, возможно, сможете использовать .ebignore file.

Если вы его создадите, cli будет использовать это вместо вашего файла .gitignore.

В некоторых ситуациях развертывания вы хотите, чтобы инверсия вашего .gitignore (все скомпилировано, без src). Это позволяет вам выбрать файлы из каталога проектов, которые вы хотите развернуть, так же, как и файл .gitignore.

Редактировать: Я просто заметил, что документация на aws отсутствует. В нем упоминается только исключение файлов, но вы также можете включить файлы.

Редактировать 2: Я не думаю, что Семафор поддерживает использование .ebignore, поэтому прямо сейчас это решение не имеет никакого смысла. :(

+0

Это работает локально для меня, но не в системах CI, которые я пробовал. Любая идея, почему это будет так ? – theoutlander

+1

Только что обновил мой ответ, я не думаю, что его поддерживали на их конце. Я знаю, что проблема была затронута с помощью Трэвиса CI, но не получила большой тяги, поэтому все, что мы можем сделать, это ждать и надеяться. Https://github.com/travis-ci/dpl/issues/411 – Dean