Skip to content

Commit

Permalink
[stable8.1] Test jenkins pipeline (#25401) (#25504)
Browse files Browse the repository at this point in the history
* [stable8.1] Test jenkins pipeline (#25401)

* Use phantomjs-prebuilt as warning is telling us

* Php7.0 is not supported and there are no primary storage tests on stable8.2

* [Stable8.2] fix unit test on new jenkins setup and adjust Jenkinsfile (#25772) (#25775) (#25783)

* Next step jenkinsfile (#25622)

* Adding timestamper and evaluation of test results even in case of failure

* Adding build timeout

* use fixed value 120 minutes as timeout for each test executing for now

* Terminate the build as soon as test execution fails

* Adjust external testing as well

* Finalize use of executeAndReport

* Array sort order is of no relevance
  • Loading branch information
DeepDiver1975 committed Aug 14, 2016
1 parent 646a3bb commit 57fd461
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 2 deletions.
87 changes: 87 additions & 0 deletions Jenkinsfile
@@ -0,0 +1,87 @@
#!groovy
/*
* This Jenkinsfile is intended to run on https://ci.owncloud.org and may fail anywhere else.
* It makes assumptions about plugins being installed, labels mapping to nodes that can build what is needed, etc.
*/

timestampedNode('SLAVE') {
stage 'Checkout'
checkout scm
sh '''git submodule update --init'''

stage 'JavaScript Testing'
executeAndReport('tests/autotest-results-js.xml') {
sh '''./autotest-js.sh'''
}

stage 'PHPUnit'
executeAndReport('tests/autotest-results-sqlite.xml') {
sh '''
export NOCOVERAGE=1
unset USEDOCKER
phpenv local 5.6
./autotest.sh sqlite
'''
}
executeAndReport('tests/autotest-results-mysql.xml') {
sh '''
export NOCOVERAGE=1
unset USEDOCKER
phpenv local 5.4
./autotest.sh mysql
'''
}
executeAndReport('tests/autotest-results-pgsql.xml') {
sh '''
export NOCOVERAGE=1
unset USEDOCKER
phpenv local 5.6
./autotest.sh pgsql
'''
}
executeAndReport('tests/autotest-results-oci.xml') {
sh '''
export NOCOVERAGE=1
unset USEDOCKER
phpenv local 5.5
./autotest.sh oci
'''
}

stage 'Files External Testing'
executeAndReport('tests/autotest-external-results-sqlite-webdav-ownCloud.xml') {
sh '''phpenv local 5.6
export NOCOVERAGE=1
unset USEDOCKER
./autotest-external.sh sqlite webdav-ownCloud
'''
}
}

void executeAndReport(String testResultLocation, def body) {
def failed = false
// We're wrapping this in a timeout - if it takes longer, kill it.
try {
timeout(time: 120, unit: 'MINUTES') {
body.call()
}
} catch (Exception e) {
failed = true
echo "Test execution failed: ${e}"
} finally {
step([$class: 'JUnitResultArchiver', testResults: testResultLocation])
}

if (failed) {
error "Test execution failed. Terminating the build"
}
}

// Runs the given body within a Timestamper wrapper on the given label.
def timestampedNode(String label, Closure body) {
node(label) {
wrap([$class: 'TimestamperBuildWrapper']) {
body.call()
}
}
}
2 changes: 1 addition & 1 deletion build/package.json
Expand Up @@ -16,7 +16,7 @@
"karma-junit-reporter": "*",
"karma-coverage": "*",
"karma-phantomjs-launcher": "*",
"phantomjs": "*"
"phantomjs-prebuilt": "*"
},
"engine": "node >= 0.8"
}
4 changes: 3 additions & 1 deletion tests/karma.config.js
Expand Up @@ -216,7 +216,9 @@ module.exports = function(config) {
reporters: ['dots', 'junit', 'coverage'],

junitReporter: {
outputFile: 'tests/autotest-results-js.xml'
outputDir: 'tests',
outputFile: 'autotest-results-js.xml',
useBrowserName: false
},

// web server port
Expand Down

0 comments on commit 57fd461

Please sign in to comment.