Непрерывная интеграция / развертывание - MEAN Stack Project, основанный на 2 Git-репозиториях

0

Я начинаю новый проект, используя MEAN Stack. Интерфейс и внешний интерфейс находятся в двух разных хранилищах git, размещенных на bitBucket. Каждый проект/репо имеет свои собственные тесты unit/e2e. Backend - это отличный JSON API, а front-end - это AngularJS SPA. Задача grunt доступна в проекте front-end для вывода оптимизированной/модифицированной версии клиентского кода.

Моя идея состояла в том, чтобы сначала запустить тесты unit/e2e на клиентском коде, затем выполнить задачу "grunt deploy", а затем как-то автоматически зафиксировать результат этой задачи grunt в backend project/git repo, запустить unit тест бэкэнд кода и, наконец, развертывание бэкэнд-проекта на Amazon.

Я не слишком уверен, как настроить такой проект на платформах, таких как Travis или Codeship, поскольку он использует 2 GIT репо вместо одного...

Если у кого-нибудь есть опыт/рекомендации для такой установки, как эта, это было бы очень оценено.

Ура,

Niko

  • 0
    Попробуйте что-нибудь и задайте конкретный вопрос, когда вы не можете заставить его работать. Вы можете использовать after_script для одного проекта, чтобы запустить сборку другого, но похоже, что вам просто нужно отказаться от идеи двух репозиториев git и поместить весь код в один. Или, по крайней мере, используйте вложенный репозиторий для единой сборки travis с обоими репозиториями git.
Теги:
mean-stack
continuous-integration
travis-ci

1 ответ

0

Избегайте ручных решений в максимально возможной степени, например, копирование/запись файлов через репозитории - это приведет только к боли и кошмару обслуживания. Для этого используйте стандартный инструмент.

Стандартный способ обработки зависимостей, подобных этим, - использовать инструмент управления зависимостями. На бэкэнде вы обычно делаете это с помощью npm, о котором вы, вероятно, уже знакомы, - вы, вероятно, используете его для привлечения инструментов построения, таких как Grunt.

При создании приложений на передней панели обычно используется Bower.

С Bower вы определяете файл bower.json и bower.json там свои зависимости. В вашем случае вам понадобится файл bower.json в обоих проектах:

  • В вашем front-end проекте файл bower.json определяет имя вашего пакета, версию, ее наиболее важные файлы и т.д.
  • В вашем bower.json файл bower.json определяет зависимости, т. bower.json Ваш проект front-end.

При определении зависимости от вашего проекта переднего плана вы можете либо указать его на общедоступный пакет из реестра Bower (например, Angular), либо на Git repo (это, вероятно, то, что вы ищете). Вы можете указать его на тег Git (например, #1.2.3) или на ветку Git (например, #master). Вам не нужно регистрировать свой пакет в общедоступном реестре Bower, если вы этого не хотите.

Вам нужно будет включить bower install в качестве дополнительного шага сборки в ваш back-end проект, в идеале после запуска npm install.

Опять же, старайтесь избегать обходных решений, старайтесь придерживаться стандартных инструментов. Разделение вашей работы на два отдельных репозитория Git прекрасно, это хорошая практика для управления размером проекта - вам просто нужно использовать правильные инструменты, чтобы все было сделано.

Вот несколько руководств для начала работы с Bower:

Ещё вопросы

Сообщество Overcoder
Наверх
Меню