-
Notifications
You must be signed in to change notification settings - Fork 0
Dataplattform: CI CD Pipeline
Kort fortalt er en CI/CD pipeline en prosess som automatiserer oppgaver som testing og deployment, slik at utviklere kun skal trenge å forholde seg til selve utviklingsarbeidet. Hensikten er ikke bare å spare utviklerne for arbeid, men også skape trygghet i arbeidsprosessen.
Ved manuell deployment er det ingen ting som forhindrer menneskelige feil, og det er fort gjort å produksjonssette utestet kode. En automatisk prosess for deployment kan sørge for at kode kun deployes dersom alle tester er kjørt.
Uten en automatisk prosess for testing må utviklere selv huske på å kjøre tester lokalt på sin egen maskin før deployment. Dette er ikke bare tidkrevende, men også lite trygt da det er fort gjort å glemme eller hoppe over. I tillegg har enhver utvikler forskjellig kjøremiljø på sin egen maskin, som gjør at tester kan gi forskjellig resultat avhengig av hvem som kjører den. En automatisk testprosess kan sørge for at all kode blir testet, og at testene alltid blir kjørt med samme kjøremiljø.
CI/CD flyten til Dataplattform er implementert ved bruk av Github Actions som konfigureres til å kjøre automatisk ved Github events som pull-requests og merge. Så denne måten kan testing og deployment skje automatisk i skyen når nye endringer legges inn.
Tjenester kan testes på fire forskjellige måter:
- Lint
- Unit test
- Ende-til-ende (E2E) testing
- Manuelle tester
Når vi automatiserer disse testene følger vi "test-pyramiden", hvor tester med lav kostnad kjøres først og ofte, mens tester med høyere kostnad kjøres sjeldnere, og kun dersom de billige testene ikke feiler.

Flyten er implementert på følgende måte:
- Alle pull-requests til
maingjennomgår Lint og Unit test. For at merge skal være mulig må ingen av disse testene feile. - Alle endringer som merges inn i
mainblir deployet til utviklingsmiljøet i AWS. - E2E tester utføres manuelt i Dev miljøet. Dersom alt virker som det skal, opprettes en ny release.
- Når en ny release opprettes deployes endringene til Prod-miljøet i AWS.
