blob: 3036c3ad6988faa7c2acbffda291562a6d9892e0 [file] [log] [blame]
Matteo Scandolo83df8d22017-03-09 10:39:17 -08001def filename = 'manifest-${branch}.xml'
2
3node ('master') {
4 checkout changelog: false, poll: false, scm: [$class: 'RepoScm', currentBranch: true, manifestBranch: params.branch, manifestRepositoryUrl: 'https://gerrit.opencord.org/manifest', quiet: true]
5
6 stage 'Generate and Copy Manifest file'
7 sh returnStdout: true, script: 'repo manifest -r -o ' + filename
8 sh returnStdout: true, script: 'cp ' + filename + ' ' + env.JENKINS_HOME + '/tmp'
9}
10
11timeout (time: 240) {
12 node ("${targetVM}") {
13 stage 'Checkout cord repo'
14 checkout changelog: false, poll: false, scm: [$class: 'RepoScm', currentBranch: true, manifestBranch: params.branch, manifestRepositoryUrl: 'https://gerrit.opencord.org/manifest', quiet: true]
15
16 dir('orchestration/xos-gui') {
17 try {
Matteo Scandolo7897e442017-03-09 10:55:29 -080018
19 stage 'Install Node Modules'
20 sh 'npm install'
21
Matteo Scandolo83df8d22017-03-09 10:39:17 -080022 stage 'Check Code Style'
23 sh 'npm run lint'
24
25 stage 'Run Unit Tests'
26 sh 'npm test'
27
28 stage 'Build GUI docker container'
Matteo Scandolo54980082017-04-26 17:08:26 -070029 sh 'docker pull nginx'
30 sh 'docker tag nginx nginx:candidate'
Matteo Scandoloc62f58b2017-03-09 13:21:34 -080031 sh 'docker build --no-cache -t xosproject/xos-gui .'
32 sh 'docker run -p 4000:4000 --net=host --name xos-gui -d xosproject/xos-gui'
Matteo Scandolo303bb322017-03-09 13:35:05 -080033
34 stage 'Run E2E Tests'
Matteo Scandolo2b877db2017-03-09 13:15:14 -080035 sh 'curl 127.0.0.1:4000/spa/ --write-out %{http_code} --silent --output /dev/null | grep 200'
Matteo Scandolo83df8d22017-03-09 10:39:17 -080036
37 currentBuild.result = 'SUCCESS'
38 } catch (err) {
39 currentBuild.result = 'FAILURE'
40 step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: 'teo@onlab.us', sendToIndividuals: true])
41 } finally {
Matteo Scandolo303bb322017-03-09 13:35:05 -080042 stage 'Clean'
Matteo Scandolo83df8d22017-03-09 10:39:17 -080043 sh 'docker stop xos-gui'
44 sh 'docker rm xos-gui'
Matteo Scandolof26daa82017-04-27 08:48:41 -070045 sh 'docker rmi -f xosproject/xos-gui:latest'
46 sh 'docker rmi -f nginx:candidate'
47 sh 'docker rmi -f nginx:latest'
Matteo Scandolo83df8d22017-03-09 10:39:17 -080048 }
49 echo "RESULT: ${currentBuild.result}"
50 }
51
52 }
53}