diff --git a/Jenkinsfile b/Jenkinsfile index 590cdcc..504f75d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,10 +1,52 @@ pipeline { agent any + environment { + MAX_RETRIES = 5 + } stages { stage('Gradle') { steps { - sh 'npm install --force --legacy-peer-dep' - sh 'npm run build' + script { + def retryCount = 0 + def success = false + + // Clean npm cache and try normal install and npm ci once + sh 'npm cache clean --force' + try { + sh 'npm install' + success = true + } catch (Exception e1) { + echo "npm install failed, trying npm ci..." + try { + sh 'npm ci' + success = true + } catch (Exception e2) { + echo "npm ci failed, proceeding to retry with --legacy-peer-deps and --force..." + } + } + + // Retry with --legacy-peer-deps and --force if necessary + while (retryCount < MAX_RETRIES.toInteger() && !success) { + try { + sh 'npm install --legacy-peer-deps' + success = true + } catch (Exception e3) { + try { + sh 'npm install --force' + success = true + } catch (Exception e4) { + retryCount++ + echo "Retry ${retryCount}/${MAX_RETRIES} failed" + } + } + } + + if (!success) { + error "Failed to install dependencies after ${MAX_RETRIES} attempts" + } + + sh 'npm run build' + } } } stage('Archive') { @@ -18,4 +60,4 @@ pipeline { } } } -} \ No newline at end of file +}