Formålet med dette dokument er at beskrive, hvordan et udviklingsmiljø, til videreudvikling af NAP ref-implementation, skal sættes op, samt hvordan koden deployes og testes.
Software requirements:
| Software | Version |
|---|---|
| Java | 8 |
| Docker | Gerne nyeste |
| node | 10+ |
Det lokale udviklingsmiljø er opsat med docker-compose.
For at kunne køre de compose filer, der bliver beskrevet nedenfor kræves et docker netværk kaldet nap_net. Hvis dette ikke allerede er lavet kør `docker network create nap_net`.
Der udstilles ingen porte på docker-hosten, og alt trafik routes således igennem en lokal reverse proxy https://svn.nspop.dk/svn/components/nap/nap-compose/ som er på nap_net og eksponere en port 8080 på localhost.
Således bliver nap-ref-web tilgængelig på http://localhost:8080/nap/reference/web/.
Det meste funktionalitet af Nap-Ref-web kræver, at den er framet i en værts-applikation. For at gøre dette, skal opsætning for nap-java-host, nap-lobby-web, nap-admin køres parallelt (Platformsservices (NAP) - Leverancebeskrivelse).
Installer dependencies med `npm install` i rodfolderen.
Under compose folderen findes forskellige composefiler til udvikling, test og release.
Vær opmærksom på kun at køre en service ved navn naprefweb. Stop derfor altid servicen og kør `docker-compose down`, når der skal skiftes setup.
For at starte en webpack dev server i docker køres `docker-compose build && docker-compose up` fra compose/develop.
Developper setuppet volume mapper ./src folderen og konfiguraitons filer fra compose/configuration, hvilket betyder, at ændringer i kildekoden bliver compilet og deployet med det samme.
Hvis dependencies ændres skal containeren bygges igen, ellers er det fremover nok at køre `docker-compose up` når services skal startes.
Applikationen kan nu nåes internt i docker på netværket nap_net på http://naprefweb:8080 (såfremt yderlige porte ikke eksponeres) og på http://localhost:8080/nap/reference/web/, hvis nap-compose reverse proxy, står foran som nævnt ovenfor.
Jenkins bygger og deployer i snapshot versioner af NSPs wildfly container. Dette byg kan testes ved at køre at `docker-compose up` i compose/test.
Apllikationen kan nåes på samme url som ovenfor.
compose/release konfigurationen bruges udelukkende i produktions øjemed.
For at køre unit-tests med Karma kør `npm run test`. Det kører alle unit tests i en headless chromium browser.
Istanbul generer en coverage rapport kommer i /coverage.
Jenkinsfilen beskriver en pipeline med install, test og build, der køres i NSPs node-chrome image, for at kunne afvikle test i en headless chromium browser.
Installer dependencies med `mvn install` i rodfolderen.
Under compose folderen findes forskellige composefiler til udvikling, test og release.
Vær opmærksom på kun at køre en service ved navn napreffacade. Stop derfor altid servicen og kør `docker-compose down`, når der skal skiftes setup.
For at starte en wildfly server til udvikling køres `docker-compose build --no-cache && docker-compose up´. Denne compose fil sørger for at kopier den nygenerede war fil og konfigurationerne fra compose/configuration over i et image og køre det.
og nap-ref-facade på http://localhost:8080/nap/reference/web/services/main.
HVORDAN DEBUGGES DISSE WILDFLY servere. Jacob vil vende tilbage...
Jenkins bygger og deployer i snapshot versioner af NSPs wildfly container. Dette byg kan testes ved at køre at `docker-compose up` i compose/test.
Apllikationen kan nåes på samme url som ovenfor.
compose/release konfigurationen bruges udelukkende i produktions øjemed.
JUnit anvendes til implementering af unit tests. Der er kontinuert gennemført unit tests på alle komponenter i projektet.
Unit tests kan afvikles ved at køre: `mvn test` og Coverage rapport generes med maven-surefire og publiceres med jacoco.
Jenkinsfilen beskriver en pipeline med install og tests, der køres i NSPs java image. Jenkins bygger og deployer i snapshot versioner af NSPs wildfly container.