Gå til hovedinnhold

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 å:

  1. deploye til det databaseskjemaet som ikke er i bruk av den kjørende instansen
  2. 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/.