1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/houjinxin-auto_build_shell

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Лёгкий инструмент для непрерывной интеграции — простая настройка и однократная публикация

Всем, кто заинтересовался этим инструментом, прошу оставить отзыв. Мне интересно узнать, как вы его используете. Спасибо!

Скопируйте код доступа, мой интернет-магазин, добро пожаловать в гости!

47✔fUih2RgPv60《 https://m.tb.cn/h.fKzP41i  Магазин с кунжутом

Группа обмена ATB QQ: 326363033

В процессе разработки нам часто приходится вносить изменения в код и публиковать их в различных средах для тестирования. Обычно на это уходит больше времени, чем на развёртывание кода. Нужно заходить и выходить из разных каталогов, выполнять сценарии запуска, просматривать журналы запуска. Особенно это касается распределённых систем, где каждый модуль может находиться на отдельном сервере. Если не сосредоточиться, легко забыть, что вы только что сделали. Возможно, ваша первоначальная цель заключалась лишь в том, чтобы посмотреть, как выполняется код.

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

Опираясь на идеи Jenkins, но при этом не являясь полноценным инструментом непрерывной интеграции, ATB стремится максимально сократить время разработчиков. Он объединяет повторяющиеся и утомительные шаги в процессе разработки, делая его более лёгким и приятным. В настоящее время он обладает следующими функциями:

  • Автоматически проверяет, соответствует ли ATB условиям использования, указанным в предварительных условиях, в настоящее время доступно только в plugin.sh и будет заменено на atb.sh в будущем.
  • Создаёт папки для кода автоматически на основе конфигурации.
  • Скачивает код автоматически из систем управления версиями, таких как SVN и Git.
  • Строит проект автоматически, используя Maven или Gradle (ещё не реализовано).
  • Публикует пакеты автоматически на удалённые и локальные серверы (для удалённых серверов требуются учётные данные).
  • Поддерживает многосерверную удалённую публикацию (в настоящее время возможна только по одному серверу за раз).
  • Перезапускает удалённый или локальный сервер автоматически.
  • Просматривает журналы запуска автоматически.
  • Выполняет резервное копирование автоматически, с возможностью контроля и настройки максимального количества резервных копий, по умолчанию путь: ${tomcat_path}/backup.
  • Позволяет просматривать историю резервных копий на сервере и возвращаться к указанной версии.
  • Имеет функцию раскраски журналов, если вам интересно, как выводить журналы разных цветов, посмотрите этот раздел кода.
  • Планируется реализовать поддержку плагинов, текущая идея заключается в интеграции различных инструментов сборки и систем контроля версий в виде плагинов на основе конфигурации.

Вы можете использовать его для публикации кода на собственном облаке Alibaba. После успешного внедрения в проект отзывы были положительными.

Примечание: Этот скрипт предполагает, что программа будет опубликована в папке webapps сервера Tomcat по умолчанию. При использовании других серверов рекомендуется внести соответствующие изменения в сценарий запуска контейнера.

Предварительные условия:

  • Установите JDK и настройте переменные среды.
  • Установите Maven.
  • Установите Git или SVN (на Windows требуется установка TortoiseSVN) и настройте их в переменных среды.
  • Установите Tomcat в любой каталог на вашем компьютере (для локальной публикации).
  • Настройте SSH для беспарольного входа (чтобы избежать частого ввода пароля во время работы).

Быстрое начало работы:

  1. Извлеките код:

    git clone https://git.oschina.net/houjinxin/auto_build_shell.git

  2. Настройте переменные среды на Linux и Mac (Windows необходимо настроить самостоятельно).

        export ATB_HOME=${your path}
        export PATH=$PATH:$ATB_HOME/bin
        source ${your profile}
  3. Отредактируйте файл conf.ini в соответствии с инструкциями (см.: Конфигурация).

  4. Инициализируйте:

    atb.sh -i

  5. Опубликуйте:

        atb.sh -l # Локальная публикация
        atb.sh -r <server_flag> # Удалённая публикация на указанный сервер
  6. Подробные инструкции см. ниже.

 Использование: atb [Параметры]

 Параметры:
 -v                                        Версия и информация о проекте
 -i                                        Инициализация на основе файла конфигурации
 -c                                        Очистка проекта
 -du [ -l ]                                Прямая загрузка существующего war-пакета на локальный сервер
 -du -r <server_flag>                      Прямая загрузка существующего war-пакета на указанный удалённый сервер
 -h                                        Справка
 -l                                        Локальная компиляция и упаковка
 -lstop                                    Остановка локального сервера
 -r <server_flag>                          Компиляция, упаковка и публикация на указанном удалённом сервере
 -r <server_flag> -his                      Просмотр истории резервных копий на указанном удалённом сервере
 -r <server_flag> -rb <backup_version>      Возврат к указанной версии на удалённом сервере"

Параметры:
 v                       -- version        Информация о версии
 i                       -- init            Инициализировать проект
 c                       -- clean           Из Maven clean
 du                      -- direct upload   Если war-пакет существует, загрузить напрямую; если нет, упаковать и загрузить
 h                       -- help            Справка
 l                       -- local           Локальная публикация, эквивалентно `atb.sh -l`
 r                       -- remote          Удалённая публикация
 his                     -- history         Просмотр истории резервных копий
 server_flag             -- Идентификатор сервера    Используется для идентификации сервера, на который будет выполнена публикация
 rb                      -- rollback        Возврат к указанной версии
 backup_version          -- Версия резервного копирования    Используется вместе с rb для указания версии, к которой нужно вернуться

Пример:
`atb.sh -i` Инициализирует среду
`atb.sh -r -du` Загружает существующий war-файл на удалённый сервер, если его нет, упаковывает и загружает
`atb.sh` Локально публикует, аналогично `atb.sh -l`
`atb.sh -r 244` Публикуется на сервер с идентификатором 244
`atb.sh -r 244 -his` Просмотр истории резервных копий сервера 244
`atb.sh -r 244 -rb maiev_20170415211120` Возврат сервера 244 к версии от 2017-04-15 21:11:20

Поддерживаемые операционные системы:
* Windows: используйте Git Bash от Git for Windows для выполнения сценариев.
* Linux
* Mac

CHANGELOG:
### v1.0.2
* Добавлена функция инициализации:
    - Автоматическое создание путей для локальной и удалённой публикации
    - Автоматический поиск версий из системы управления версиями (зависит от конфигурации в файле conf.ini, убедитесь, что конфигурация верна)
    - Автоматическая загрузка кода
    - Автоматическая отправка restart.sh на разные серверы
    - Больше не нужно копировать conf.ini в домашний каталог, вместо этого считывать конфигурацию непосредственно из conf/conf.ini
* Необходимо установить переменные среды, иначе скрипт не будет работать
* [Подробнее](CHANGELOG.md)

Мои контактные данные:
* Email: woshihoujinxin@163.com
* QQ: 574311651
* WeChat: h574311651

Задачи для будущих версий:
* Рассмотреть возможность поддержки других типов структур проектов, таких как gradle
* Рассмотреть поддержку проектов SpringBoot

Сбор требований:
Если у вас есть какие-либо хорошие идеи или требования, пожалуйста, сообщите мне, и я постараюсь улучшить инструмент.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Автоматизация сборки Maven проекта, извлечение кода, упаковка, загрузка на удалённый сервер или локальный сервер, автоматическое резервное копирование, автоматическая печать журнала, выбор исторической версии для отката. Развернуть Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/houjinxin-auto_build_shell.git
git@api.gitlife.ru:oschina-mirror/houjinxin-auto_build_shell.git
oschina-mirror
houjinxin-auto_build_shell
houjinxin-auto_build_shell
master