APIS Modules
APIS moduly definují, čemu systém rozumí, co umí produkovat a co umí vykonávat.
V praxi jsou moduly stavební bloky, které popisují projektovou automatizaci. Říká se v nich APIS, jaké artefakty existují, které joby je umí transformovat a které runtime komponenty jsou dostupné pro výkon flow.
Proč moduly existují
Reálný projekt bývá zřídka jedním plochým repozitářem s jediným výstupem. Ve většině případů jde o graf repozitářů, artefaktů a navazujících kroků.
APIS používá moduly k tomu, aby tento graf modeloval strukturovaně:
Itemmoduly popisují artefakty, jako jsou archivy, dokumentace, obrázky nebo 3D modely.Jobmoduly popisují transformace mezi artefakty.Environmentmoduly popisují, kde se výkon odehrává.Executormoduly popisují, jak se práce skutečně vykoná.
Díky tomuto návrhu umí APIS generovat flow vědomé o závislostech místo spoléhání na hardcoded skripty pro každý projekt.
Jak moduly zapadají do generování flow
Kódová základna převádí moduly do dvou hlavních flow prvků:
ApisItemDatareprezentuje artefakt v grafu závislostí.ApisJobDatareprezentuje job, který jednu sadu artefaktů spotřebovává a jinou produkuje.
Když APIS moduly načte, vytvoří graf vstupů a výstupů. Ten se pak dá použít pro generování projektového flow, vizualizaci závislostí a spouštění automatizace lokálně i v CI/CD.
Typy modulů
Item moduly
Item moduly definují pojmenované typy artefaktů. Aktuální kódová základna už obsahuje příklady jako:
- archivy
- výstupy pro SCP publikaci
- výstupy pro HTTP post
- spustitelne soubory
- 3D modely
- dokumentace
- PCB schéma, BOM, CPL a gerber výstupy
- obrázky
Každý item zároveň patří do širší kategorie, např. FILE, DIRECTORY, DOCUMENT, IMAGE, TABLE nebo DATA.
Job moduly
Job moduly definují samotné transformace v grafu.
Job modul deklaruje:
- jméno modulu
- runtime image
- vstupní typy artefaktů
- výstupní typy artefaktů
- volitelnou konfigurační dataclass
- stage v exekuční pipeline
Stage jsou v aktuální kódové základně řazeny takto:
INITIALINGBUILDINGTESTINGPACKAGINGPUBLISHING
Tento stage model dává APIS předvídatelnou exekuční strukturu a přitom nechává konkrétní job logiku modulární.
Environment moduly
Environment moduly reprezentují kontext vykonání a poskytují file tree i execution hooky.
Jejich účelem je popsat, kde APIS běží a jaká projektová data tam má k dispozici.
Executor moduly
Executor moduly reprezentují komponentu, která výkon skutečně provádí.
Díky tomu zůstává definice jobů oddělena od mechanismu, který je fyzicky spouští.
Konfigurační model
Job moduly mohou mít připojené konfigurační objekty odvozené od ApisJobConf.
Tyto konfigurace jsou složené z typovaných parametrů, např.:
- řetězce
- hesla
- IP adresy
- URL adresy
To umožňuje nastavovat moduly bez toho, aby se každý job měnil v jednorázový skript.
Vlastní moduly
APIS je navržen tak, aby načítal moduly z balíčků i z modulových adresářů v projektové konfiguraci.
To znamená, že projekt může rozšířit built-in chování o vlastní moduly specifické pro firemní infrastrukturu, artefakty i pravidla distribuce.
Built-in moduly, které jsou aktuálně v repozitáři, jsou popsané na další stránce.