Стройте шаги друг за другом

#intellij-idea

#intellij-idea

Вопрос:

Как мне запустить несколько этапов сборки друг за другом в IntelliJ? Я думаю, что хочу систему сборки mini CI / CD внутри редактора.

Например, проект, над которым я работаю сейчас, — это веб-сайт Spring boot и javascript. Мне нужно собрать его с помощью maven с mvn clean package -Pdockerimage . Это копирует файлы для сборки образа Docker в target/dockerimgbuild.

Затем я хочу создать образ docker с помощью docker build -t scheduling-ui-dev . и после этого запустить его с помощью docker compose docker-compose up --build из src / main /resources / docker-compose.

Я создал одну конфигурацию запуска для каждого из этих шагов, но как мне запускать их друг за другом? Я обнаружил, что вы можете иметь перед запуском, но система неуклюжая и жалуется, что target / dockerimgbuild не существует даже до того, как он запустил шаг maven, который его создает. Последняя проблема, с которой я столкнулся, заключалась в том, что файл не позволил maven удалить target / dockerimgbuild, и все шаги запуска были автоматически удалены из конфигураций запуска.

Существует конфигурация запуска под названием compound, но она запускает все параллельно, и вы не можете указать порядок, который является проблемой.

Интересно, возможно ли запустить TeamCity в контейнере, кто-нибудь имеет представление об этом (легко ли настроить teamcity, как заставить его запускать контейнер docker-compose на моем хост-компьютере и т.д.)?

Мое решение прямо сейчас — иметь несколько терминалов (если это станет более постоянным, я заменю его скриптом), где я просто нажимаю up и enter, чтобы выполнить шаги вручную. Кажется глупым, поскольку я предполагаю, что maven сам может все это делать … но я не знаю, как и сколько это работы.

Ответ №1:

Существует составная конфигурация запуска / отладки:https://www.jetbrains.com/help/idea/run-debug-configuration-compound-run-configuration.html Также существует плагин для нескольких запусков:https://plugins.jetbrains.com/plugin/7248-multirun

Комментарии:

1. Соединение — это не совсем то, что я ищу, поскольку задачи должны быть независимы друг от друга (вы не можете изменить порядок выполнения, поскольку все задачи выполняются одновременно). Однако плагин с несколькими запусками — это то, что делает то, что я ищу. Я написал сценарий, прежде чем смотреть на ваш ответ, но я попробую его!