< Zpět na články

Jak a proč sdílet environment variables mezi projekty

Martin MacuraMartin Macura
06. září 2024

K čemu jsou environment variables a proč bychom je měli sdílet mezi projekty? A jak to vypadá v praxi?

K čemu jsou environment variables?

Environment variables umožňují zvenčí měnit chování nebo nastavení aplikace bez úpravy zdrojového kódu. V Ackee je používáme například k nastavení adresy API nebo autentizačních tokenů, ať už je to pro nasazení, Sentry nebo pro přístup k překladům. Environment variables navíc mohou mít různé hodnoty v různých prostředích, při vývoji přece nechceme měnit produkční data.

Co lze sdílet mezi projekty (repozitáři)?

Sdílet adresu API moc smysl nedává, většina projektů spolu žádné API nesdílí. A když už ano, radši použijeme monorepo a pak máme jen jeden repozitář. Co ale smysl dává, jsou právě autentizační tokeny nebo přístupové údaje na platformy, jakou jsou Vercel nebo Fly.io, které typicky kopírujeme z našeho skeletonu nebo z Passwd.

Proč je sdílení dobré?

Sdílení má podobné výhody jako sdílení kódu v rámci samotných aplikací. Když potřebujeme dělat změnu, děláme ji na jednom místě. To znamená, že třeba tokenům můžeme nastavit expiraci a už není problém ho změnit všude, kde je to potřeba.

Jak se dají environment variables sdílet?

V Ackee používáme GitLab, kde máme skupiny projektů typicky podle toho, jaký tým na nich pracuje. Jelikož máme týmy podle technologií a použitých platforem, dává smysl si proměnné sdílet vždy v daném týmu. Environment variables se pak nastavují v nastavení týmu → CI/CD → Variables. Pokud záložku settings nevidíte, je možné, že na nastavení nemáte právo. Například ve frontend týmu to vypadá takto:

5.png

Na GitHubu se proměnné nastavují obdobně.

Shrnutí: Environment variables a jejich sdílení

Environment variables jsou nedílnou součástí moderního kódu, jejich sdílení není složité, zjednoduší nám setup nových projektů a umožní lepší bezpečností praktiky. Jaký setup máte vy? Dejte nám vědět třeba na Twitteru.

Zdroje: https://docs.gitlab.com/ee/ci/variables/#for-a-group

Martin Macura
Martin Macura
Frontend DeveloperMartin rád vybírá divná místa na práci, vedle front-endu ho baví celý full-stack vývoj a vzdělávání sebe i ostatních. Kromě práce má rád hudbu, špatné vtípky a “občasný” kebab.

Máte zájem o spolupráci? Pojďme to probrat osobně!

Napište nám >