Некоторое время назад я уже писал про эту библиотеку. Но с тех пор мои потребности видоизменились, поэтому появился новый функционал, о котором надо бы рассказать. Собственно чем в этой статье и будем заниматься.

Репозиторий: https://gitlab.com/aeon.org/builder

Установка:

Просто скачайте builder.py и укажите путь до файла в PYTHONPATH. И всё )

Первый скрипт деплоя

Создайте файл deploy.json и заполните его следующим содержимым:

{

   "deploy" : {

       "host" : "your-ftp-host" , "user" : "your-ftp-user" , 

       "password" : "your-ftp-password" , "path" : "path-on-your-ftp-server"

    } , 

   "order" : [

       { "step" : "deploy" , "type" : "ftp" }

   ]

}

Затем создайте скрипт deploy.py, содержащий следующий код:

import builder

builder.run()

И когда вы запустите этот скрипт, он скопирует всё содержимое из папки, в которой он был запущен на сервер.

При этом есть возможность деплоить сразу на несколько серверов:

{

   "deploy1" : {

       "host" : "your-ftp-host-1" , "user" : "your-ftp-user-1" , 

       "password" : "your-ftp-password-1" , "path" : "path-on-your-ftp-server-1"

   } , 

   "deploy2" : {

      "host" : "your-ftp-host-2" , "user" : "your-ftp-user-2" , 

      "password" : "your-ftp-password-2" , "path" : "path-on-your-ftp-server-2"

   } , 

   "order" : [

      { "step" : "deploy1" , "type" : "ftp" } , 

      { "step" : "deploy2" , "type" : "ftp" }

   ]

}

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

 

Запуск тестов

Билдер может запускать юнит-тесты, написанные на PHPUnit. Чтобы запустить их, добавьте в конфиг test.json:

{

   "tests": [

      "--filter PlugServiceTest ./tests"

   ]

}

Затем создайте test.py с тем же содержимым, что deploy.py из предыдущего примера. Затем запустите test.py и расслабьтесь )

Больше документации вы найдёте здесь: https://gitlab.com/aeon.org/builder/wikis/builder.py-home

Если у вас есть вопросы, то вы можете связаться со мной по почте Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript.

Или создать тикет здесь - https://gitlab.com/aeon.org/builder/issues