Action scriptet kjører på en ubuntu virtuell maskin hos Github, action scriptet har tilgang til alle filene i GitHub repoet og publiserer alle produserte filer til gh-pages branch
For å bygge FHIR ig publisher kjøres det en docker container med byggemiljøet hl7fhir/ig-publisher-base inne i ubuntu maskinen
Inne i byggemiljøet monteres GitHub repoet gjennom docker run kommandoen og -v opsjonen, slik at docker containeren har tilgang til filene fra Github repoet
ig-publisher henter lokale pakker fra /home/publisher/.fhir/packages
Arbeidskatalogen i docker imaget er /github/workspace (her monteres github repo opp)
Når man benytter npm for å installere fhir pakker så legges disse under gjeldende katalog ./node_modules/
FHIR pakker må derfor kopieres til riktig sted i byggemiljøet for at SUSHI og publisher skal kunne ta tak i dem.
Sette opp fungerende dependencies
Pakkene må inneholde snapshots (SIMPLIFIER ig repo gir dessverre pakker uten snapshots som default)
Det er derfor lurt å legge .tgz av pakkene man inkluderer i en snapshot katalog i repoet og installere pakkene derfra
Pakkene må ligge på riktig sted.
/home/publisher/.fhir/packages
Navnet på katalogene må være hl7.fhir.no.basis#2.1.2-beta
Selve filene fra pakken må være pakket ut til hl7.fhir.no.basis#2.1.2-beta/package/
SIMPLIFIER legger ikke med Implementation guide fil når de produserer pakkene så dette må legges til manuelt
ImplementationGuide ressursen må ha riktig version i version element (2.1.2-beta)
(Denne koden er kommentert ut av scriptet og er ikke lenger nødvendig)
Om bygging i docker
enklest å lage et bash-script for å kjøre alle kommandoene som må til for å få inn snapshots i docker bildet som bygger IG'en
Pakkene som lastes ned direkte fra SIMPLIFIER er ikke kompatible med SUSHI byggeprosessen siden de ikke inneholder snapshots
Pakker som inneholder snapshots må lastes ned manuelt fra SIMPLIFIER
FEIL: så må man manuelt legge til en ImplementationGuide fil (manuelt) (dette er ikke nødvendig det var men gammel SUSHI versjon)
Det hele må ligge på riktig sted slik at SUSHI og publisher finner dem når man bygger det hele ved hjelp av docker bildet (de må ligge inne i dockeren)
kopiering av filene fra node_modules katalogen til .fhir/packages katalogen må gjøres som en del av bash-scriptet
Det går ikke ann å kjøre kopieringskommandoen direkte fra github action scriptet (docker run hl7fhir/ig-publisher-base:latest cp node_modules/. /.fhir/packages) da får man bare FEIL "cannot stat 'node_modules/.': No such file or directory"
Sørge for at preinstallerte pakker blir lastet inn i container som kjører den faktiske byggeprosessen: Docker hl7 image Eksempel på bruk En annen metode med jobs og container kommando