From 1794ab224560c9deb55ce7428de33a2c0e7a70b7 Mon Sep 17 00:00:00 2001 From: Johannes Faltermeier Date: Fri, 8 Dec 2023 11:05:19 +0100 Subject: [PATCH] Allow to build Theia IDE based on local Theia sources #304 Build on Eclipse CI Contributed on behalf of STMicroelectronics Signed-off-by: Johannes Faltermeier --- next/Jenkinsfile | 163 +++++++++++++++++++++++++++++------------------ 1 file changed, 102 insertions(+), 61 deletions(-) diff --git a/next/Jenkinsfile b/next/Jenkinsfile index 589d003e2..f744ae40f 100644 --- a/next/Jenkinsfile +++ b/next/Jenkinsfile @@ -61,7 +61,7 @@ spec: container('theia-dev') { withCredentials([string(credentialsId: "github-bot-token", variable: 'GITHUB_TOKEN')]) { script { - buildNext(false, 1200) + buildNext() } } } @@ -78,7 +78,8 @@ spec: } steps { script { - buildNext(false, 60) + sh "ls -al" + // buildNext() } } post { @@ -94,8 +95,8 @@ spec: steps { script { sh "npm config set msvs_version 2017" - sh "npx node-gyp install 14.20.0" - buildNext(true, 60) + // sh "npx node-gyp@9.4.0 install 14.20.0" + // buildNext() } } post { @@ -123,70 +124,110 @@ spec: } } -def buildNext(boolean runTests, int sleepBetweenRetries) { - int MAX_RETRY = 3 - - checkout scm - - // merge next branch into master to get any known fixes for next version - // TODO there might be a more elegant way to merge a branch into this one - // using a jenkings plugin from here +def buildNext() { sh "git config user.email \"not@real.user\"" sh "git config user.name \"Not a real user\"" - sh "git fetch origin next" - sh "git merge FETCH_HEAD" sh "node --version" - sh "export NODE_OPTIONS=--max_old_space_size=4096" + cleanWs() + checkout scm + sh "git clone https://github.com/eclipse-theia/theia.git" - // regular build - sh "printenv && yarn cache dir" + sh ''' + mkdir cache + export LOCAL_CACHE_PATH=${PWD}/cache + echo $LOCAL_CACHE_PATH - sh "yarn cache clean" - try { - sh(script: 'yarn --frozen-lockfile --force') - } catch(error) { - retry(MAX_RETRY) { - sleep(sleepBetweenRetries) - echo "yarn failed - Retrying" - sh(script: 'yarn --frozen-lockfile --force') - } - } + mkdir verdaccio + export VERDACCIO_STORAGE_PATH=${PWD}/verdaccio + echo $VERDACCIO_STORAGE_PATH + cd verdaccio + export npm_config_cache=$VERDACCIO_STORAGE_PATH + npm install verdaccio + echo "Starting verdaccio" + REGISTRY=http://localhost:4873/ + node_modules/verdaccio/bin/verdaccio & + VERDACCIO_PID=$! + echo $VERDACCIO_PID - echo "Updating theia versions to next" - sh "yarn update:next" - try { - sh(script: 'yarn --force') - } catch(error) { - retry(MAX_RETRY) { - sleep(sleepBetweenRetries) - echo "yarn failed - Retrying" - sh(script: 'yarn --force') - } - } + echo "Build Theia..." + cd ../theia + npm config set registry $REGISTRY + yarn config set registry $REGISTRY + npm config set cache $LOCAL_CACHE_PATH + yarn + yarn build - echo "Upgrading versions" - sh "yarn upgrade" - sh "git clean -xfd" - try { - sh(script: 'yarn --force') - } catch(error) { - retry(MAX_RETRY) { - sleep(sleepBetweenRetries) - echo "yarn failed - Retrying" - sh(script: 'yarn --force') - } - } + echo "Publish Theia..." + yarn lerna publish preminor --exact --canary --preid next --dist-tag next --no-git-reset --no-git-tag-version --no-push --yes --registry $REGISTRY - sh "rm -rf ./${distFolder}" - sh "yarn build" - sh "yarn download:plugins" - sshagent(['projects-storage.eclipse.org-bot-ssh']) { - sh "yarn electron package:preview" - } - if (runTests) { - wrap([$class: 'Xvnc', takeScreenshot: false, useXauthority: true]) { - sh 'yarn electron test' - } - } + echo "Stop Verdaccio" + kill $VERDACCIO_PID + ''' + + // int MAX_RETRY = 3 + + // checkout scm + + // // merge next branch into master to get any known fixes for next version + // // TODO there might be a more elegant way to merge a branch into this one + // // using a jenkings plugin from here + // sh "git config user.email \"not@real.user\"" + // sh "git config user.name \"Not a real user\"" + // sh "git fetch origin next" + // sh "git merge FETCH_HEAD" + // sh "node --version" + + // sh "export NODE_OPTIONS=--max_old_space_size=4096" + + // // regular build + // sh "printenv && yarn cache dir" + + // sh "yarn cache clean" + // try { + // sh(script: 'yarn --frozen-lockfile --force') + // } catch(error) { + // retry(MAX_RETRY) { + // sleep(sleepBetweenRetries) + // echo "yarn failed - Retrying" + // sh(script: 'yarn --frozen-lockfile --force') + // } + // } + + // echo "Updating theia versions to next" + // sh "yarn update:next" + // try { + // sh(script: 'yarn --force') + // } catch(error) { + // retry(MAX_RETRY) { + // sleep(sleepBetweenRetries) + // echo "yarn failed - Retrying" + // sh(script: 'yarn --force') + // } + // } + + // echo "Upgrading versions" + // sh "yarn upgrade" + // sh "git clean -xfd" + // try { + // sh(script: 'yarn --force') + // } catch(error) { + // retry(MAX_RETRY) { + // sleep(sleepBetweenRetries) + // echo "yarn failed - Retrying" + // sh(script: 'yarn --force') + // } + // } + + // sh "rm -rf ./${distFolder}" + // sh "yarn build" + // sh "yarn download:plugins" + // sshagent(['projects-storage.eclipse.org-bot-ssh']) { + // sh "yarn electron package:preview" + // } + // if (runTests) { + // wrap([$class: 'Xvnc', takeScreenshot: false, useXauthority: true]) { + // sh 'yarn electron test' + // } + // } }