diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5c858b87f..000000000 --- a/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: node_js -node_js: - - 'node' # Latest stable Node.js release -cache: - directories: - - src/node_modules/ -env: - - ON_TRAVIS=true -before_install: cd src -before_script: - - npm install -script: - - npm run test - - npm run build - diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 000000000..9dc86fdf8 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,78 @@ +pipeline { + agent none + environment { + ON_JENKINS = 'TRUE' + } + stages { + stage ('Lisk Provisioning') { + steps { + node('master-nano-01'){ + lock(resource: "master-nano-01", inversePrecedence: true) { + sh '''#!/bin/bash + env + + # Clean up old processes + pkill -f selenium -9 || true + pkill -f Xvfb -9 || true + rm -rf /tmp/.X0-lock || true + pkill -f app.js || true + pkill -f webpack-dev-server -9 || true + + # Start lisk and make sure its current + cd /var/lib/jenkins/workspace/ + git clone https://github.com/LiskHQ/lisk.git + cd /var/lib/jenkins/workspace/lisk + git checkout development + git pull + dropdb lisk_test || true + createdb lisk_test + psql -d lisk_test -c "alter user "$USER" with password 'password';" + cp /var/lib/jenkins/workspace/lisk-node-Linux-x86_64.tar.gz . + tar -zxvf lisk-node-Linux-x86_64.tar.gz + npm install + git submodule init + git submodule update + cd public + npm install + bower install + grunt release + cd .. + cd test/lisk-js/; npm install; cd ../.. + cp test/config.json test/genesisBlock.json . + export NODE_ENV=test + BUILD_ID=dontKillMe ~/start_lisk.sh + + # Build nano + cd $WORKSPACE/src + npm install + + # Add coveralls config file + cp ~/.coveralls.yml-nano .coveralls.yml + + # Prepare lisk core for testing + bash ~/tx.sh + + # Run test + npm run test + + # Commented until e2e is ready + # export CHROME_BIN=chromium-browser + # export DISPLAY=:0.0 + # Xvfb :0 -ac -screen 0 1280x1024x24 & + # ./node_modules/protractor/bin/webdriver-manager update + # npm run e2e-test + + # Commented until e2e is ready + # cat .protractor.log + # cat .lisk-nano.log + + pkill -f app.js -9 || true + pkill -f webpack-dev-server -9 || true + ''' + milestone 1 + } + } + } + } + } +} diff --git a/src/karma.conf.js b/src/karma.conf.js index 46f25eb94..d41bd107c 100644 --- a/src/karma.conf.js +++ b/src/karma.conf.js @@ -16,6 +16,7 @@ preprocessors[test] = ['webpack']; const opts = { onTravis: process.env.ON_TRAVIS, + onJenkins: process.env.ON_JENKINS, live: process.env.LIVE, }; @@ -43,14 +44,10 @@ module.exports = function (config) { // Rest results reporter to use // Possible values: 'dots', 'progress' // Available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['coverage', 'mocha'].concat(opts.onTravis ? ['coveralls'] : []), + reporters: ['coverage', 'mocha'].concat(opts.onTravis ? ['coveralls'] : []).concat(opts.onJenkins ? ['coveralls'] : []), preprocessors, - mochaReporter: { - output: 'autowatch', - }, - babelPreprocessor: { options: { presets: ['es2015'], @@ -82,11 +79,16 @@ module.exports = function (config) { }, coverageReporter: { - reporters: [ - { - type: opts.onTravis ? 'lcov' : 'html', - dir: 'coverage/', - }].concat(opts.onTravis ? [{ type: 'text' }] : []), + reporters: [{ + type: 'text', + dir: 'coverage/', + }, { + type: opts.onTravis ? 'lcov' : 'html', + dir: 'coverage/', + }, { + type: opts.onJenkins ? 'lcov' : 'html', + dir: 'coverage/', + }], }, // Start these browsers diff --git a/src/package.json b/src/package.json index 99f84bd22..9aec22c27 100644 --- a/src/package.json +++ b/src/package.json @@ -61,6 +61,7 @@ "karma-chrome-launcher": "=2.0.0", "karma-coverage": "=1.1.1", "karma-coveralls": "=1.1.2", + "karma-jenkins-reporter": "0.0.2", "karma-mocha": "=1.3.0", "karma-mocha-reporter": "=2.2.2", "karma-ng-html2js-preprocessor": "=1.0.0",