From OpenSCADAWiki
Jump to: navigation, search
This page is a translated version of the page Sub-projects/Automatic Builder of OpenSCADA and the translation is 75% complete.

Other languages:
English • ‎Українська
Назва Заснування Стан Учасники
Автоматичний Складальник OpenSCADA Березень 2015

Імплементовано у скриптах побудови, опрацювання репозиторіїв і гілок та перевірки цілей щодо складання до 100 цілей за допомогою: CHROOTів репозиторіїв Linux, VPS та різних під-оточень. Результатом функціонування Складальника є: свіжі та підписані репозиторії Linux, штампи Live Дисків та інші бінарні архіви OpenSCADA.

Роман Савоченко
Опис
Спрямуванням підпроєкту є спрощення розповсюдження-дистриб'юції проєкту OpenSCADA через автоматичне складання бінарних пакетів, їх готових до використання репозиторіїв та інших складних дистрибутивів на кшталт Живих Дисків.

Складач представлено двома загальними BASH-скриптами та декільком BASH-скриптами перевірки:

  • oscadaCheck* — дуже прості скрипти із переліком профілів складання для перевірки oscadaRepBranches та у залежності від хосту складання; вони запускаються зазвичай CRON планувальником, для нічних складань, або вручну. Відомий наразі перелік профілів відповідно до Таблиці 2:
    • oscadaCheck — загальний, використовується на OpenSCADA сервері;
    • oscadaCheck_WorkAtLTS — додатковий загальний, використовується на OpenSCADA сервері при новому випуску LTS версії;
    • oscadaCheck_ExtGen — зовнішній загальний, використовується на Домашньому ПК Автора;
    • oscadaCheck_ExtGen_WorkAtLTS — додатковий зовнішній загальний, використовується на Домашньому ПК Автора при новому випуску LTS версії;
    • oscadaCheck_RPi — зовнішні "Raspbian" цілі, використовується на RPi3 Автора;
    • oscadaCheck_RPi_WorkAtLTS — додаткові зовнішні "Raspbian" цілі, використовується на RPi3 Автора при новому випуску LTS версії.
  • oscadaRepBranches — для опрацювання переліку профілів вказаних у командному рядку у форматі "{Target}[:option[,optionN]] {EN}{ForWork}{ForLTS}{ForLTSServ}{OmitSourceTree}", де:
    • "EN"{0|1} — увімкнення цілі;
    • "ForWork"{0|1} — включення до складання для Робочої (Work) гілки;
    • "ForLTS"{0|1} — включення до складання для загальних оновлень Стабільної (LTS) гілки;
    • "ForLTSServ"{0|1} — включення до складання для сервісних оновлень Стабільної (LTS) гілки;
    • "OmitSourceTree"{0|1} — оминати завантаження дерева вихідних із SVN, переважно для складання Живих штампів.
  • oscadaBuild — для складання та розміщення результатних пакетів і іншого для Стабільної (LTS) та Робочої (Work) гілок OpenSCADA.

Структура файлів системи автоматичного складання передбачає:

\-- /data/
    |-- oscada/
    |   |-- bin/
    |   |   |-- oscadaBuild
    |   |   |-- oscadaRepBranches
    |   |   |-- oscadaCheck
    |   |   \-- oscadaCheck_WorkAtLTS
    |   |-- build/                 => робоча тека складання, яка містить розпаковані CHROOTи
    |   |   |-- log/               => протоколи складань
    |   |   \-- *.stamp            => штампи-ознаки вдалих складань
    |   \-- chroot-data.tgz        => містить GPG ключ підпису пакетів та їх репозиторіїв для складальника
    \-- share_res/
        \-- ftp/                   => FTP тека результатів складання
            |-- {ALTLinux,Debian}/ => Теки репозиторіїв Linux Дистрибутивів Автоматизації
            |-- Misc/
            |   \-- chroots/       => Тека архівів складальних CHROOTів
            \-- OpenSCADA/         => Теки репозиторіїв OpenSCADA
                |-- LTS/           => Теки Стабільних (LTS) репозиторіїв OpenSCADA
                \-- Work/          => Теки Робочих (Work) репозиторіїв OpenSCADA

Автоматична складальна система підтримує також її розподіл за специфічними оточеннями (для деяких типів складання) на кшталт різних апаратних платформ, інколи замість їх CHROOTів. Розподіл відбувається перенесенням частини автоматичного складальника назовні шляхом: розгортання структури на горі лише для потрібних цілей, організації локального файлового серверу та планування синхронізації скрипту oscadaSyncFtp на ядрі автоматичного складальника (скажіть Роману Савоченко щодо цього) — основний FTP-сервер.

Наразі автоматичний складальник передбачає складання:

  • Робочої (Work) версії (1) щодо останньої SVN-ревізії із тегом "(stable)";
  • Стабільної (LTS) версії (0.9.U.S) щодо загального (U) та сервісного (S) оновлення.

Table 1: Implemented profiles — the building types.

Target Result Method of the building External deploying Additional
SrcTar Source packages packed as XZ TAR packages CHROOT "Debian_7_32" Yes Updates the OpenSCADA documentation for LTS.
SrcRPM, CentOs*, SuSE*, Fedora*, ALTLinux*, Mandriva* RedHat source and binary packages for the hardware architectures x86_32 and x86_64 CHROOT Yes Allows for tuning to the specific by the patches "openscada_*.patch".
Allows, calling the allowed script "reposUpdate" into the results directory, for the packages repository: create, update, sign the packages and the repository in whole.
Target options:
  • "rep" — to the repository folder instead OpenSCADA folder;
  • "dev" — mount the system folders to the CHROOT (/dev, /dev/pts, /proc).
Debian*, Raspbian*, Ubuntu* Debian packages for the hardware architectures x86_32, x86_64 and ARMHF CHROOT Yes Allows for tuning to the specific by the patches "openscada[-{platform}]_*.patch".
Allows, calling the allowed script "reposUpdate" into the results directory, for the packages repository: create, update, sign the packages and the repository in whole.
Target options:
  • "rep" — to the repository folder instead OpenSCADA folder.
Nokia* Debian packages for the hardware architecture ARMEL Scratchbox Yes Allows for tuning to the specific by the patches "openscada_*.patch".
Gen32PLC*, LP8x81* TAR packages of the PLC firmwares for the hardware architecture x86_32 VPS: bldrALT32.oscada No Uses the ALTLinux mkimage profiles: "mkimage-profiles-5-plc", "mkimage-profiles-5-plc-LP8x81", "mkimage-profiles-6-plc", "mkimage-profiles-6-plc-LP8x81".
Target options:
  • "UI" — include User Interface, for ALTLinux 5 only;
  • "rt1" — use the kernel "rt1-up", for ALTLinux 6.
Live_ALT Hybrid ISO image or TAR package of the Live disk of the Automation Linux distributive based on ALTLinux VPS: bldrALT32.oscada No Uses the ALTLinux mkimage profile "mkimage-profiles-6-kdesktop".
Updates MD5SUM of the ISO images in the file "MD5SUM".
Target options:
  • "flash" — build the TAR package instead the ISO image.
Live_Deb Hybrid ISO image of the Live disk of the Automation Linux distributive based on Debian VPS: bldrDeb8.oscada, bldrDeb9.oscada; home.home No Uses Live Build profiles of Debian: live7-32, live7-64, live8-32, live8-64, live9-32, live9-64, live10-32, live10-64.
Updates MD5SUM of the ISO images in the file "MD5SUM".
ICP_DAS_LP_ARM, SMH2Gi TAR packages of the PLC firmwares for the hardware architecture ARM. VPS: bldrDeb8.oscada + TOOLCHAIN No Uses the proper TOOLCHAINs.

Table 2: The actual building targets.

Target(s) OpenSCADA Host Notes
SrcTar Work+LTS oscada.org
SrcRPM LTS oscada.org
Debian
Debian_10_{32,64,armhf} -
Debian_10_{32,64,armhf}:rep Work+LTS home.home
Debian_9_{32,64,armhf} -
Debian_9_{32,64,armhf}:rep Work+LTS home.home
Debian_8_{32,64,armhf} -
Debian_8_{32,64,armhf}:rep Work+LTS oscada.org
Debian_7_{32,64} -
Debian_7_{32,64}:rep Work+LTS oscada.org
Debian_6_{32,64} -
Raspbian, the same Debian but for Raspberry Pi — a very specific ARMv6 environment for the BCM2835 and early chips mostly.
Raspbian_9_armhf Work+LTS pi.home
Raspbian_8_armhf LTS pi.home
Ubuntu
Ubuntu_20.04_{32,64} Work+LTS home.home The 32-bit architecture is some limited and it lacks MariaDB and libphonon4qt5 packages.
Ubuntu_18.04_{32,64} LTS home.home Very new Linux kernel for CHROOT on oscada.org
Ubuntu_16.04_{32,64} LTS oscada.org
Ubuntu_14.04_{32,64} LTS oscada.org
Ubuntu_12.04_{32,64} LTS oscada.org
Ubuntu_11.10_{32,64} -
Ubuntu_10.04_{32,64} -
CentOs
CentOs_8_64:dev Work+LTS+ServLTS home.home
CentOs_7_64 LTS oscada.org
CentOs_6_{32,64} LTS oscada.org
SuSE
SuSE_15_64:dev LTS home.home Very new Linux kernel for CHROOT on oscada.org. GPG2 needs for mounting the system folders.
SuSE_13_{32,64} LTS oscada.org
SuSE_12_{32,64} LTS oscada.org
SuSE_11_{32,64} -
ALTLinux
ALTLinux_7_{32,64} -
ALTLinux_7_{32,64}:rep LTS oscada.org
ALTLinux_6_{32,64} -
ALTLinux_6_{32,64}:rep Work+LTS oscada.org
ALTLinux_5_{32,64} -
ALTLinux_5_{32,64}:rep -
Fedora
Fedora_12_32 LTS oscada.org
Mandriva
Mandriva_2011_{32,64} -
Mandriva_2010_{32,64} -
Nokia
Nokia_800 LTS oscada.org
Nokia_900 LTS oscada.org
Nokia_950 LTS oscada.org
PLC+Embedded
Gen32PLC_ALT6 LTS oscada.org
Gen32PLC_ALT6:rt1 LTS oscada.org
Gen32PLC_ALT5 -
Gen32PLC_ALT5:UI -
LP8x81_ALT6 LTS oscada.org
LP8x81_ALT6:rt1 LTS oscada.org
LP8x81_ALT5 -
LP8x81_ALT5:UI -
SMH2Gi LTS oscada.org
ICP_DAS_LP_ARM -
TionPro270 -
Live
Live_Deb10_{32,64} Work+LTS home.home
Live_Deb9_{32,64} Work+LTS home.home
Live_Deb8_{32,64} Work+LTS oscada.org
Live_Deb7_{32,64} Work+LTS oscada.org
Live_ALT Work+LTS oscada.org
Live_ALT:flash -