Skrevet i samarbeid med KI - Gemini 3.7 Flash
Verktøy - GitHub Actions, TypeScript
- Gjennomgang av GitHub Actions offisielle dokumentasjon for å analysere multiplikatorer for ulike operativsystemer
- Gjennomgang av kvoten på 2000 byggeminutter i GitHub Actions for å unngå overskridelser.
- Konfigurering av byggeprosesser til kun å trigges ved sammenslåing til hovedgrenen.
- Oppretting av automatisert CI/CD-prosess for versjonering, testing og distribusjon.
- Optimalisering av ressursbruk og tidsforbruk i utviklingsløpet.
Dagen har vært så fin som det er mulig.
Utfordring & Løsninger
Gjennom utviklingen oppstod det et behov for å innføre automatiserte rutiner for versjonering, utviklingsnotater, testing og bygging av nettsiden når den er produksjonsklar. I GitHub Actions tildeles en fast månedlig kvote på 2000 gratis byggeminutter for private repositorier. Kvoten forbrukes med ulik hastighet, hvor Linux forbruker 1x, mens Windows forbruker 2x og macOS forbruker 10x av kvoten per minutt.
Hensikten var å maksimere utnyttelsen av byggeminuttene i GitHub Actions gjennom en kostnadseffektiv konfigurasjon og samtidig fjerne manuelle rutine oppgaver.
- Undersøkte den offisielle dokumentasjonen for fakturering av GitHub Actions for å kartlegge ressursforbruket på tvers av plattformer.
- Valgte å kjøre alle byggeprosesser på Linux for å opprettholde en multiplikator på 1x fremfor multiplikatoren til macOS på 10x.
- Begrenset kjøringen av byggejobbene til å utløses når kode slås sammen med hovedgrenen og når alle testene har bestått, i stedet for ved hver enkelt oppdatering.
- Opprettet en automatisert CI/CD-prosess for å håndtere versjonering, tester og nettsidebygging uten at utvikleren griper inn i prosessen.
Den automatiserte byggeprosessen er nå stabil og kostnadseffektiv. Dette sikrer at kvoten på 2000 byggeminutter varer lengst mulig. Som en konsekvens av disse tiltakene ble prosjektets ressursbruk og forbedret kontrollen over utgiftene knyttet til skytjenesten. Erfaringen viser at bevisste valg av kjøremiljø og triggere er avgjørende for å forhindre unødvendig ressursbruk i skybaserte verktøy.