How to Deploy to CloudBees, in One Click

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

Когда я развертываю новую версию stateful.co, веб-приложение на Java, на CloudBees, это занимает 30 секунд моего времени. Может быть, даже меньше. Недавно я развернул версию 1.6.5. Вы можете увидеть, как все произошло, в GitHub issue #6:

Как видите, я дал команду Rultor, и он упаковал, протестировал и развернул новую версию на CloudBees. Я ничего больше не делал.

Теперь давайте посмотрим, как вы можете сделать то же самое. Как вы можете настроить свой проект так, чтобы развертывание его новой версии на CloudBees занимало всего несколько секунд вашего времени.

Configure the CloudBees Maven Plugin

Добавьте этот профиль в ваш pom.xml:

Этот плагин не находится в Maven Central (к сожалению). Поэтому нам нужно указать <pluginRepository>.

Обратите внимание на то, что мы также отключаем maven-deploy-plugin, потому что он будет пытаться разместить ваш пакет WAR в репозитории из раздела <distributionManagement>. Мы хотим избежать этого.

Профиль активируется только при наличии определенного свойства bees.id. Это не произойдет во время обычной разработки и тестирования, но это произойдет во время цикла развертывания, запущенного Rultor, потому что мы определим это свойство в settings.xml (обсуждается ниже).

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

Создайте файл settings.xml (но не добавляйте его в репозиторий!).

Зашифруйте этот файл, используя удаленный рултор:

Вместо me/test используйте название вашего проекта на GitHub.

Вам следует получить файл settings.xml.asc; добавьте его в корневую директорию вашего проекта, закоммитьте и запушьте. Этот файл содержит ваши учетные данные CloudBees, но в зашифрованном формате. Никто не может прочитать его, кроме сервера Rultor.

Я рекомендую использовать jcabi-parent. Он настраивает необходимый плагин “из коробки”. Если вы его используете, пропустите этот шаг.

В противном случае, добавьте этот плагин в ваш pom.xml:

Configure Rultor

Создайте файл .rultor.yml в корневой директории вашего проекта (эта страница справки подробно объясняет этот формат).

Вы можете сравнить свой файл с живой конфигурацией Rultor для stateful.co (https://github.com/sttc/stateful/blob/master/.rultor.yml).

Теперь пришло время узнать, как все это работает. Создайте новый тикет в трекере проблем GitHub и отправьте что-то вроде этого в него (подробнее о командах Rultor).

Вы получите ответ в течение нескольких секунд. Остальное будет сделано Rultor’ом.

Кстати, если что-то не работает так, как я объяснил, не стесняйтесь отправить запрос в отслеживание проблем Rultor. Я постараюсь помочь вам.

Кроме того, похожую конфигурацию можно настроить для Heroku (с использованием плагина jcabi-heroku-maven-plugin) и для AWS Elastic Beanstalk (с использованием плагина jcabi-beanstalk-maven-plugin). Возможно, я также посвящу им отдельные сообщения.

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 10:55

sixnines availability badge   GitHub stars