Skip to content

Commit

Permalink
Allow to build Theia IDE based on local Theia sources #304
Browse files Browse the repository at this point in the history
Build on Eclipse CI

Contributed on behalf of STMicroelectronics

Signed-off-by: Johannes Faltermeier <[email protected]>
  • Loading branch information
jfaltermeier committed Dec 8, 2023
1 parent 40c7244 commit 43065ef
Showing 1 changed file with 104 additions and 61 deletions.
165 changes: 104 additions & 61 deletions next/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ spec:
container('theia-dev') {
withCredentials([string(credentialsId: "github-bot-token", variable: 'GITHUB_TOKEN')]) {
script {
buildNext(false, 1200)
buildNext()
}
}
}
Expand All @@ -78,7 +78,8 @@ spec:
}
steps {
script {
buildNext(false, 60)
sh "ls -al"
// buildNext()
}
}
post {
Expand All @@ -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 {
Expand Down Expand Up @@ -123,70 +124,112 @@ 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 \"[email protected]\""
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
touch .npmrc
npm config set cache $LOCAL_CACHE_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
touch .npmrc
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 \"[email protected]\""
// 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'
// }
// }
}

0 comments on commit 43065ef

Please sign in to comment.