Jak a proč sdílet environment variables mezi projekty
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:
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