← Cloudflare Workers / workers / ci-cd / builds
Pokročilá nastavení
Monorepa
Monorepozitář je jediný repozitář obsahující více aplikací. Toto uspořádání může být užitečné z několika důvodů:
- Zjednodušená správa závislostí: Spravujte závislosti napříč všemi svými workery a sdílenými balíčky z jednoho místa pomocí nástrojů jako pnpm workspaces ↗ a syncpack ↗.
- Sdílení a opětovné použití kódu: Snadno vytvářejte a sdílejte společnou logiku, typy a pomocné nástroje mezi workery pomocí sdílených balíčků.
- Atomické commity: Změny ovlivňující více workerů nebo sdílené knihovny lze commitnout společně, což usnadňuje pochopení historie a snižuje riziko nekonzistencí.
- Konzistentní nástroje: Použijte stejné konfigurace sestavení, testování, lintování a formátování (např. prostřednictvím Turborepo ↗ pro orchestraci úloh a sdílené konfigurace v
packages/) across all projects, ensuring consistent tooling and code quality across Workers. - Jednodušší refaktorování: Refaktorování kódu, který zasahuje do více Workerů nebo sdílených balíčků, je v rámci jednoho repozitáře výrazně jednodušší.
Příklady monorepozitářů Workers:
- cloudflare/mcp-server-cloudflare ↗
- jahands/workers-monorepo-template ↗
- cloudflare/templates ↗
- cloudflare/workers-sdk ↗
Začínáme
Chcete-li nastavit pracovní postup pro monorepo:
- Najděte Workery přidružené k vašemu projektu v Workers & Pages Dashboard ↗.
- Připojte svůj monorepozitář ke každému Workeru v repozitáři.
- Nastavte kořenový adresář pro každý Worker, abyste určili umístění jeho
wrangler.jsonca kde by se měly spouštět příkazy pro sestavení a nasazení. - Volitelně můžete pro každý Worker nakonfigurovat vlastní příkazy pro sestavení a nasazení.
- Volitelně nakonfigurujte sledované cesty sestavení pro každého Workera, aby sledoval změny v zadaných cestách.
Když je do monorepa proveden nový commit, spustí se nový build a nasazení pro každý Worker, pokud změna spadá do některé z jeho sledovaných cest (watch paths). Stav jednotlivých buildů přidružených k vašemu repozitáři můžete zkontrolovat také přímo v GitHubu pomocí kontrolní běhy nebo v rámci GitLabu s stavy commitů.
Příklad
V příkladu ecommerce-monorepo, měl by být vytvořen projekt Workers pro product-service, order-service, a notification-service.
Připojení Git k ecommerce-monorepo by mělo být přidáno do všech projektů Workers. Pokud používáte nástroj pro monorepo, jako je Turborepo ↗, pro každý Worker můžete nastavit jiný příkaz pro nasazení, například turbo deploy -F product-service.
Nastavte kořenový adresář každého Workeru na místo, kde se nachází jeho konfigurační soubor Wrangler. Například pro product-service, kořenový adresář by měl být /workers/product-service/. Volitelně můžete přidat sledované cesty sestavení pro optimalizaci sestavení.
Když je proveden nový commit do ecommerce-monorepo, spustí se sestavení a nasazení pro každý z Workers, pokud se změna nachází v jeho sledovaných cestách, a to pomocí nakonfigurovaných příkazů pro daný Worker.
- ecommerce-monorepo/
- workers/
- product-service/
- src/
- wrangler.jsonc
- order-service/
- src/
- wrangler.jsonc
- notification-service/
- src/
- wrangler.jsonc
- product-service/
- packages/
- schema/
- README.md
- workers/
Prostředí Wrangleru
Můžete použít Prostředí Wrangleru s Workers Builds provedením následujících kroků:
- Nasaďte přes Wrangler pro vytvoření Workerů pro vaše prostředí na Dashboardu, pokud je ještě nemáte.
- Najděte Workery pro svá prostředí. Obvykle se jmenují
[name of Worker] - [environment name]. - Připojte svůj repozitář ke každému Workeru ve svém prostředí.
- V každém z Workers upravte příkazy Wrangler tak, aby obsahovaly příznak
--env: <environment name>v konfiguracích sestavení jak pro příkaz nasazení, tak pro příkaz nasazení neprodukční větve (je-li relevantní).
Když je v repozitáři zjištěn nový commit, spustí se nový build a nasazení pro každý přidružený Worker.
Příklad
Představte si, že máte Worker s názvem my-worker, a chcete nastavit dvě prostředí staging a production nastaven v wrangler.jsonc. Pokud jste tak ještě neučinili, můžete nasadit my-worker pro každé prostředí pomocí příkazů wrangler deploy --env staging a wrangler deploy --env production.
Ve svém Cloudflare Dashboardu byste měli najít dva Workery my-worker-staging a my-worker-production. Poté připojte Git repozitář pro Worker, my-worker, pro oba Workery daných prostředí. V konfiguracích sestavení každého Workeru prostředí upravte deploy commands na npx wrangler deploy --env staging a npx wrangler deploy --env production a příkazy pro nasazení neprodukční větve byly npx wrangler versions upload --env staging a npx wrangler versions upload --env production v uvedeném pořadí.