1 Rutiner for bygging og utrulling av FS-plattform-applikasjonen
Her beskriver vi hvordan du går fram for å bygge og rulle ut nye versjoner av FS-plattformen. Når en endring blir merget inn i main-branchen-settes det automatisk i gang en GitLab-pipeline som bygger og ruller ut den nye versjonen til test-miljøet (https://api-test.fsweb.no/graphql). Den samme pipelinen benyttes for å rulle versjonen videre ut til demo og produksjon.
1.1 Finn riktig pipeline
For å starte utrulling til test og produksjon, må du først finne riktig pipeline i GitLab. Dette gjør du enklest ved å
gå til https://gitlab.sikt.no/fs/fs-plattform/-/pipelines?page=1&scope=branches&ref=main. Der skal du finne en pipeline
for den siste endringen som ble flettet inn i main.
Dersom du har installert glab så er følgende kommando enda enklere:
glab ci list --source parent_pipeline -n sis --ref main -F json | jq -r '.[0].web_url'
1.2 Rulle ut nye versjoner via GitLab
Nye versjoner rulles ut via GitLab CI/CD. Det er foreløpig to manuelle steg i denne prosessen, men målet er kontinuerlig utrulling.
Det er opp til deg om du ønsker å rulle ut til begge miljø samtidig, eller om du vil ta det i rekkefølge.
1.2.1 Rull ut til demo
For å rulle ut endringene til demo-miljøet starter du deploy-demo-jobben.
Ved å starte denne jobben vil det starte jobber som oppgraderer alle databasene og til slutt applikasjonen dersom alt gikk bra.
1.2.2 Rull ut til produksjon
For å rulle ut endringene til produksjonsmiljøet starter du deploy-production-jobben.
Ved å starte denne jobben vil det starte jobber som oppgraderer alle databasene og til slutt applikasjonen dersom alt gikk bra.
1.3 Green og blue i test og produksjon i Gravitee
I test- og produksjonsmiljøene har vi to forskjellige databaseskjema for APIet, kalt blue og green.
Fargen blue er koblet til databaseskjemaene FSAPI_V2A mens green er FSAPI_V2B.
Pipeline sørger automatisk for å:
- deploye til det databaseskjemaet som ikke er i bruk av den kjørende instansen
- bytte over til det nye databaseskjemaet
1.4 Endringer ved release av nye versjoner
1.4.1 FS GraphQL API
Når en ny versjon av FS-plattformen blir lagt ut i test og produksjon, blir det automatisk publisert informasjon om endringene i Apollo Studio
Produksjon
Test
1.4.2 Gemini
For Gemini ligger oversikt over endringer foreløpig i Vortex, og kan endres her:
Endringer i Gemini blir dokumentert ved behov av team Lanterne, så andre team kan overse disse.
2 Konfigurasjon av pipelinen
Her finner du mer detaljert informasjon om konfigurasjonen av de forskjelle leddene i pipelinen.
2.1 GitLab CI/CD
Konfigurasjon for GitLab CI/CD ligger i sis/.gitlab-ci.yml.
2.2 Artifactory
Hovedartefakten er docker imaget som bygges av mvn-build jobben i pipeline.
Versjoner bygget fra main-branchen blir publisert til
https://artifactory.sikt.no/ui/repos/tree/General/docker/studieadministrasjon/fsapi-rest.
I tillegg publiseres jar og war-filer fra maven-bygget til
https://artifactory.sikt.no/ui/native/libs-releases/no/fellesstudentsystem/fsapi-rest/.
Versjoner av jar og war-filer fra andre brancher enn main havner i https://artifactory.sikt.no/ui/native/libs-snapshots-local/no/fellesstudentsystem/fsapi-rest/.