pipeline { agent { /* privileged mode is necessary for fuse */ docker { label 'linux-new' image 'statusteam/windows-desktop-ubuntu:1.1.0' args ( "--privileged "+ "-v /dev/fuse:/dev/fuse "+ "-v /var/tmp/lein:/var/tmp/lein:rw "+ "-v /var/tmp/npm:/var/tmp/npm:rw "+ "-v /opt/StatusIm-Windows-base-image_20181113.zip:/opt/StatusIm-Windows-base-image.zip:ro" ) } } options { /* Prevent Jenkins jobs from running forever */ timeout(time: 45, unit: 'MINUTES') /* Limit builds retained */ buildDiscarder(logRotator( numToKeepStr: '60', daysToKeepStr: '30', artifactNumToKeepStr: '60', )) } /** * WARNING: Jenkins ignores PATH changes in Docker * https://issues.jenkins-ci.org/browse/JENKINS-49076 **/ environment { NODE_VERSION = 'v10.14.1' BUILD_PLATFORM = 'linux' LANG = 'en_US.UTF-8' LANGUAGE = 'en_US.UTF-8' LC_ALL = 'en_US.UTF-8' NPM_CONFIG_CACHE = '/var/tmp/npm' LEIN_HOME = '/var/tmp/lein' TARGET_SYSTEM_NAME = 'Windows' CONAN_PRINT_RUN_COMMANDS = '1' CONAN_SYSREQUIRES_MODE = 'disabled' CONAN_SYSREQUIRES_SUDO = '0' STATUSIM_WINDOWS_BASEIMAGE_ZIP = '/opt/StatusIm-Windows-base-image.zip' } stages { stage('Prep') { steps { script { nvm(env.NODE_VERSION) { /* Necessary to load methods */ desktop = load 'ci/desktop.groovy' cmn = load 'ci/common.groovy' sh 'env' desktop.prepDeps() } } } } stage('Lint') { steps { nvm(env.NODE_VERSION) { script { cmn.runLint() } } } } stage('Tests') { steps { nvm(env.NODE_VERSION) { script { cmn.runTests() } } } } stage('Build') { steps { nvm(env.NODE_VERSION) { script { desktop.buildClojureScript() } } } } stage('Compile') { steps { nvm(env.NODE_VERSION) { script { desktop.compile() } } } } stage('Bundle') { steps { script { app = desktop.bundleWindows(cmn.getBuildType()) } } } stage('Archive') { steps { archiveArtifacts app } } } }