Přeskočit na hlavní obsah

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ě:

  • Item moduly popisují artefakty, jako jsou archivy, dokumentace, obrázky nebo 3D modely.
  • Job moduly popisují transformace mezi artefakty.
  • Environment moduly popisují, kde se výkon odehrává.
  • Executor moduly 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ů:

  • ApisItemData reprezentuje artefakt v grafu závislostí.
  • ApisJobData reprezentuje 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:

  1. INITIALING
  2. BUILDING
  3. TESTING
  4. PACKAGING
  5. PUBLISHING

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.