Matteo Scandolo | 83df8d2 | 2017-03-09 10:39:17 -0800 | [diff] [blame] | 1 | def filename = 'manifest-${branch}.xml' |
| 2 | |
| 3 | node ('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 | |
| 11 | timeout (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 Scandolo | 7897e44 | 2017-03-09 10:55:29 -0800 | [diff] [blame] | 18 | |
| 19 | stage 'Install Node Modules' |
| 20 | sh 'npm install' |
| 21 | |
Matteo Scandolo | 83df8d2 | 2017-03-09 10:39:17 -0800 | [diff] [blame] | 22 | stage 'Check Code Style' |
| 23 | sh 'npm run lint' |
| 24 | |
| 25 | stage 'Run Unit Tests' |
| 26 | sh 'npm test' |
| 27 | |
Matteo Scandolo | a4a2df7 | 2017-06-15 17:59:02 -0700 | [diff] [blame^] | 28 | // stage 'Build GUI docker container' |
| 29 | // sh 'docker pull nginx' |
| 30 | // sh 'docker tag nginx nginx:candidate' |
| 31 | // 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 Scandolo | d3b57a1 | 2017-04-20 14:33:04 -0700 | [diff] [blame] | 33 | } catch (err) { |
| 34 | currentBuild.result = 'FAILURE' |
| 35 | step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: 'teo@onlab.us', sendToIndividuals: true]) |
| 36 | } |
| 37 | } |
| 38 | dir('build/platform-install') { |
| 39 | stage 'Build Mock R-CORD Config' |
Matteo Scandolo | f4e27a2 | 2017-06-15 13:30:08 -0700 | [diff] [blame] | 40 | sh 'ansible-playbook -i inventory/mock-rcord deploy-xos-playbook.yml' |
Matteo Scandolo | d3b57a1 | 2017-04-20 14:33:04 -0700 | [diff] [blame] | 41 | } |
| 42 | dir('orchestration/xos-gui') { |
| 43 | try { |
Matteo Scandolo | 303bb32 | 2017-03-09 13:35:05 -0800 | [diff] [blame] | 44 | stage 'Run E2E Tests' |
Matteo Scandolo | a4a2df7 | 2017-06-15 17:59:02 -0700 | [diff] [blame^] | 45 | sh 'UI_URL=127.0.0.1:4000/xos/#' protractor conf/protractor.conf.js |
Matteo Scandolo | 83df8d2 | 2017-03-09 10:39:17 -0800 | [diff] [blame] | 46 | currentBuild.result = 'SUCCESS' |
| 47 | } catch (err) { |
| 48 | currentBuild.result = 'FAILURE' |
| 49 | step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: 'teo@onlab.us', sendToIndividuals: true]) |
Matteo Scandolo | 83df8d2 | 2017-03-09 10:39:17 -0800 | [diff] [blame] | 50 | } |
Matteo Scandolo | d3b57a1 | 2017-04-20 14:33:04 -0700 | [diff] [blame] | 51 | } |
| 52 | dir('build/platform-install') { |
Matteo Scandolo | 4b1e61d | 2017-06-15 13:38:02 -0700 | [diff] [blame] | 53 | sh 'ansible-playbook -i inventory/mock-rcord teardown-playbook.yml' |
Matteo Scandolo | 83df8d2 | 2017-03-09 10:39:17 -0800 | [diff] [blame] | 54 | echo "RESULT: ${currentBuild.result}" |
| 55 | } |
Matteo Scandolo | 83df8d2 | 2017-03-09 10:39:17 -0800 | [diff] [blame] | 56 | } |
| 57 | } |