INTEGRITY Dokumentace

Monorepa

Zatímco některé aplikace vznikají z jediného repozitáře, Pages podporuje i aplikace se složitějším uspořádáním. Monorepo je repozitář s více podadresáři, z nichž každý obsahuje vlastní aplikaci.

Nastavení

Ze stejného repozitáře můžete vytvořit více projektů, stejným způsobem, jakým byste vytvořili jakýkoli jiný projekt Pages. Příkaz pro sestavení a/nebo kořenový adresář projektu můžete upravit a určit tak Pages, kde má příkaz pro sestavení proběhnout. Všechny názvy projektů musí být jedinečné i v případě, že jsou připojeny ke stejnému repozitáři.

Builds

Když k Pages připojíte repozitář git, ve výchozím nastavení spustí sestavení Pages změna kteréhokoli souboru v repozitáři.

Ukázkový diagram monorepa

Vezměme si například my-monorepo výše se dvěma přidruženými projekty Pages (marketing-app a ecommerce-app) a jejich uvedené závislosti. Ve výchozím nastavení platí, že pokud změníte soubor v adresáři projektu pro marketing-app, pak proběhne build pro ecommerce-app projekt se také spustí, i když ecommerce-app a jeho závislosti se nezměnily. Abyste se vyhnuli takovým duplicitním sestavením, můžete zahrnout i vyloučit oba sledované cesty sestavení nebo větve a určete, zda má Pages u daného projektu sestavení přeskočit.

Integrace Git

Jakmile pro každý z projektů ve svém Git repozitáři vytvoříte samostatný Pages projekt, každý Git push spustí nové sestavení a nasazení pro všechny propojené projekty, pokud v konfiguraci sestavení neurčíte jinak.

Pokud je k větvi přiřazen Pull Request, GitHub zobrazí pro každý projekt samostatný komentář s aktualizovanou adresou URL projektu a nasazení.

kontroly GitHub a stavy commitů GitLab

Pokud máte s repozitářem propojených více projektů, váš kontrola GitHub nebo stav commitu GitLab se ve vašem repozitáři zobrazí takto:

kontrola GitHubStav commitu GitLab

Pokud se sestavení z libovolného důvodu přeskočí (například kvůli CI Skip, sledovaným cestám sestavení nebo ovládacím prvkům nasazení větví), nezobrazí se kontrolní běh ani stav commitu.

Nástroje pro správu monorepa:

Pages sice neposkytuje specializované nástroje pro správu závislostí v monorepu, ale můžete si přinést vlastní nástroje, které vám se správou repozitáře pomohou. Pro jednoduchou správu dílčích balíčků můžete využít nástroje jako npm, pnpm, a Yarn workspaces. Můžete také použít výkonnější nástroje, jako například Turborepo, NX, nebo Lerna pro další správu závislostí a spouštění úloh.

Omezení