diff --git a/.nvmrc b/.nvmrc index 762ed9162..2a5dd0d63 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -8.11.2 +8.14.0 diff --git a/Jenkinsfile b/Jenkinsfile index c7bb9788d..3905d0082 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,7 +3,7 @@ pipeline { agent { node { label 'lisk-explorer' } } environment { - LISK_VERSION = '1.0.0-beta.9.2' + LISK_CORE_VERSION = '1.3.0' EXPLORER_PORT = "604$EXECUTOR_NUMBER" LISK_HOST = 'localhost' REDIS_DB = "$EXECUTOR_NUMBER" @@ -12,82 +12,112 @@ pipeline { stages { stage ('Build dependencies') { steps { - script { - cache_file = restoreCache("package.json") - sh 'npm install' - saveCache(cache_file, './node_modules', 10) + nvm(getNodejsVersion()) { + sh 'npm ci' } } } stage ('Run ESLint') { steps { - sh 'npm run eslint' + nvm(getNodejsVersion()) { + sh 'npm run eslint' + } } } stage ('Build bundles') { steps { - sh 'npm run build' + nvm(getNodejsVersion()) { + sh 'npm run build' + } } } stage ('Build candles') { steps { - // marketwatcher needs to be enabled to builds candles - sh ''' - cp ./test/known.test.json ./known.json - redis-cli -n $REDIS_DB flushdb - grunt candles:build - ''' + nvm(getNodejsVersion()) { + // marketwatcher needs to be enabled to builds candles + sh ''' + cp ./test/known.test.json ./known.json + redis-cli -n $REDIS_DB flushdb + grunt candles:build + ''' + } } } stage ('Start Lisk') { steps { - dir("$WORKSPACE/$BRANCH_NAME/") { - ansiColor('xterm') { - sh ''' - rsync -axl --delete ~/lisk-docker/examples/development/ ./ - cp ~/blockchain_explorer.db.gz ./blockchain.db.gz - make coldstart - ''' - // show some build-related info - sh ''' - sha1sum ./blockchain.db.gz - docker-compose config - docker-compose ps - ''' - // Explorer needs the topAccounts feature to be enabled - sh ''' - docker-compose exec -T lisk sed -i -r -e 's/(\\s*"topAccounts":)\\s*false,/\\1 true,/' config.json - docker-compose restart lisk - ''' - } + dir('lisk') { + checkout([$class: 'GitSCM', + branches: [[name: "v${env.LISK_CORE_VERSION}" ]], + userRemoteConfigs: [[url: 'https://github.com/LiskHQ/lisk']]]) + } + + ansiColor('xterm') { + sh '''#!/bin/bash -xe + rm -rf $WORKSPACE/$BRANCH_NAME/ + cp -rf $WORKSPACE/lisk/docker/ $WORKSPACE/$BRANCH_NAME/ + wget -nv https://downloads.lisk.io/lisk-explorer/dev/dev_blockchain.db.gz -O $WORKSPACE/$BRANCH_NAME/dev_blockchain.db.gz + cd $WORKSPACE/$BRANCH_NAME + cp .env.development .env + + sed -i -r -e '/ports:/,+2d' docker-compose.yml + # random port assignment + cat <docker-compose.override.yml +version: "2" +services: + + lisk: + ports: + - \\${ENV_LISK_HTTP_PORT} + - \\${ENV_LISK_WS_PORT} +EOF + + ENV_LISK_VERSION="$LISK_CORE_VERSION" make coldstart + ''' + // show some build-related info + sh ''' + cd $WORKSPACE/$BRANCH_NAME + sha1sum dev_blockchain.db.gz + docker-compose config + docker-compose ps + ''' + // Explorer needs the topAccounts feature to be enabled + sh ''' + cd $WORKSPACE/$BRANCH_NAME + docker-compose exec -T lisk sed -i -r -e 's/(\\s*"topAccounts":)\\s*false,/\\1 true,/' config/default/config.json + docker-compose restart lisk + ''' } } } stage ('Start Explorer') { steps { - sh ''' - cd $WORKSPACE/$BRANCH_NAME - LISK_PORT=$( docker-compose port lisk 4000 |cut -d ":" -f 2 ) - cd - - LISK_PORT=$LISK_PORT node app.js -p $EXPLORER_PORT &>/dev/null & - sleep 20 - ''' + nvm(getNodejsVersion()) { + sh ''' + cd $WORKSPACE/$BRANCH_NAME + LISK_PORT=$( docker-compose port lisk 4000 |cut -d ":" -f 2 ) + cd - + LISK_PORT=$LISK_PORT node app.js -p $EXPLORER_PORT &>/dev/null & + sleep 20 + ''' + } } } stage ('Run API tests') { steps { - sh ''' - sed -i -r -e "s/6040/$EXPLORER_PORT/" test/node.js - npm run test - ''' + nvm(getNodejsVersion()) { + sh ''' + sed -i -r -e "s/6040/$EXPLORER_PORT/" test/node.js + npm run test + ''' + } } } // stage ('Run E2E tests') { // steps { // wrap([$class: 'Xvfb']) { - // sh ''' - // npm run e2e -- --params.baseURL http://localhost:$EXPLORER_PORT - // ''' + // nvm(getNodejsVersion()) { + // sh 'npm run e2e -- --params.baseURL http://localhost:$EXPLORER_PORT' + // } // } // } // }