Slide 1

Slide 1 text

1 Евгений Ильин http://jenyay.net Сборка приложений на Python

Slide 2

Slide 2 text

2 OutWiker https://github.com/jenyay/outwiker

Slide 3

Slide 3 text

3 Инструменты для создания запускаемых файлов cx_Freeze / PyInstaller

Slide 4

Slide 4 text

4 Задачи для сборки под Windows ● Создание запускаемых файлов (.exe). ● Создание инсталятора. ● Создание архива с портабельной версией. ● Создание сборки, включающей все плагины.

Slide 5

Slide 5 text

5 Задачи для сборки под Linux ● Создание бинарной сборки. ● Создание архива с бинарной сборкой. ● Создание deb-пакета. ● Создание AppImage. ● Создание других видов пакетов (rpm, snap, ...)

Slide 6

Slide 6 text

6 Другие задачи для сборки ● Создание архива с полными исходниками. ● Создание архива с исходниками, минимально необходимыми для запуска программы. ● Создание отдельных архивов с каждым плагином. ● Сборка документации. ● И другие.

Slide 7

Slide 7 text

7 Когда-то давно...

Slide 8

Slide 8 text

8 Когда-то давно... был изобретен make и Makefile

Slide 9

Slide 9 text

9 Выполнение задач с помощью make ● make win ● make deb ● make source ● make test ● ...

Slide 10

Slide 10 text

10 Fabric http://www.fabfile.org/

Slide 11

Slide 11 text

11 Выполнение задач с помощью Fabric ● fab win ● fab deb ● fab source ● fab test ● ...

Slide 12

Slide 12 text

12 fabfile.py с двумя задачами

Slide 13

Slide 13 text

13 Выполнение команд Fabric

Slide 14

Slide 14 text

14 Использование функций lcd и local

Slide 15

Slide 15 text

15 fabfile.py с двумя задачами

Slide 16

Slide 16 text

16 Просмотр списка задач Fabric

Slide 17

Slide 17 text

17 fabfile.py с комментариями

Slide 18

Slide 18 text

18 Задачи из fabfile.py с комментариями

Slide 19

Slide 19 text

19 fabfile.py со вспомогательными функциями

Slide 20

Slide 20 text

20 Задачи из fabfile.py с комментариями

Slide 21

Slide 21 text

21 fabfile.py с использованием декораторов

Slide 22

Slide 22 text

22 Передача параметров в задачи Вызов задачи с параметрами:

Slide 23

Slide 23 text

23 Задачи fabfile для OutWiker (1)

Slide 24

Slide 24 text

24 Задачи fabfile для OutWiker (2)

Slide 25

Slide 25 text

25 Сборка на виртуальных машинах

Slide 26

Slide 26 text

26 Сборка на виртуальных машинах Fabfic Vagrant Ansible virtual 1 virtual 2

Slide 27

Slide 27 text

27 Непрерывная интеграция на AppVeyor. appveyor.yml version: 2.1.0.xxx.{build} image: - Visual Studio 2015 environment: PY_PYTHON: 3.6-32 PYTHONIOENCODING: utf_8 PIPENV_IGNORE_VIRTUALENVS: 1 init: - cmd: py -m pip install pipenv install: - cmd: py -m pipenv update --dev build_script: - cmd: py -m pipenv run fab win:0,1,0 test_script: - cmd: py -m pipenv run fab test:"-s" artifacts: - path: build\*\windows\*.zip name: windows_zip - path: build\*\windows\*.7z name: windows_7z - path: build\*\plugins\*\*.zip name: plugins

Slide 28

Slide 28 text

28 Выводы ● Fabric — отличная замена make. ● Перейти с Makefile на fabfile.py можно достаточно быстро. ● Для создания бинарных сборок под Linux лучше использовать виртуальные машины. ● Fabric удобно использовать вместе с Ansible и Vagrant.

Slide 29

Slide 29 text

29 Контакты и ссылки E-mail: [email protected] Сайт: http://jenyay.net Github: https://github.com/Jenyay OutWiker Страница программы: http://jenyay.net/Soft/Outwiker Исходники: https://github.com/Jenyay/outwiker Статья «Основы использования Fabric»: http://jenyay.net/Programming/Fabric