Пишем простой buildserver на Python (Часть 2)

от
Прочее    python

Фронтенд будет написан с помощью AngularJS.

В директории web, что располагается в корне проекта создайте директорий templates и файлы application.js, index.html, style.css

index.html

style.css


Шаблоны

application.js

С фронтендом почти покончено.

Обновляем setup.py:

  1. from setuptools import setup, find_packages
  2.  
  3. setup(
  4.     name='buildserver',
  5.     version='0.1',
  6.     description='Simple buildserver',
  7.     packages=find_packages('src'),
  8.     package_dir={'': 'src'},
  9.     install_requires=[
  10.         'flask',
  11.         'psycopg2',
  12.         'pyzmq',
  13.         'tornado'
  14.     ],
  15.     # Добавили точки входа
  16.     entry_points={
  17.         'console_scripts': [
  18.             'broadcast=buildserver.broadcast:run',
  19.             'web=buildserver.web:run',
  20.             'worker=buildserver.worker:run'
  21.         ]
  22.     }
  23. )

Выполняем bin/buildout, после чего будут сгенерированы bin/broadcast, bin/web и bin/worker
Запускаем их.

Создаём тестовый проект:

$ mkdir /tmp/testrepo && cd /tmp/testrepo && git init
$ editor .buildserver

Пишем туда следующее:
  1. echo 'Step'
  2. sleep 1
  3. echo 'Step'
  4. sleep 1
  5. echo 'Step'
  6. sleep 1
  7. echo 'Step'
  8. sleep 1
  9. echo 'Step'
  10. sleep 1
  11. echo 'Step'
  12. sleep 1
  13. echo 'Step'
  14. sleep 1
  15. echo 'Step'
  16. sleep 1

$ git add .buildserver && git commit -m "Init"

Открываем в браузере http://buildserver добавляем проект. В качестве урлы указываем /tmp/testrepo.
После сохранения проекта жмём Build, обновляем страницу и переходим к просмотру лога.

Если я нигде не ошибся и вы всё сделали правильно, то всё должно быть ok.

Ну а теперь домашнее задание. Гг.
Сделать отображение уведомления о том, что билд был добавлен в очередь на сборку.
Обновлять список сборок в режиме реального времени (добавление/изменение/удаление).
Причём не ддосить базу запросами, а задействовать zmq и tornado.

На этом всё. Исходный код проекта можно найти здесь: https://github.com/Kilte/buildserver
  • +5
  • views 3911