SiteFrontend/Jenkinsfile
Teriuihi 98b86363f5 Add npm install fallback and remove unused variable
Added a fallback npm install command in the Jenkinsfile to handle legacy peer dependencies. Also removed an unused variable from genericForm.tsx to improve code clarity and performance.
2024-08-10 03:19:26 +02:00

76 lines
2.7 KiB
Groovy

pipeline {
agent any
environment {
MAX_RETRIES = 5
}
stages {
stage('Gradle') {
steps {
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"
}
}
try {
sh 'npm install --legacy-peer-deps --force'
success = true
} catch (Exception e4) {
echo "npm install --legacy-peer-deps --force failed"
}
}
if (!success) {
error "Failed to install dependencies after ${MAX_RETRIES} attempts"
}
sh 'npm run build'
}
}
}
stage('Archive') {
steps {
archiveArtifacts artifacts: 'build/**', followSymlinks: false
}
}
stage('discord') {
when {
anyOf {
branch 'main'
branch 'master'
}
}
steps {
discordSend description: "Build: ${BUILD_NUMBER}", showChangeset: true, result: currentBuild.currentResult, title: currentBuild.fullProjectName, webhookURL: env.discordwebhook
}
}
}
}