50 lines
1.1 KiB
Groovy
50 lines
1.1 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
DEPLOY_DIR = '/var/www/portfolio'
|
|
}
|
|
|
|
stages {
|
|
stage('Checkout') {
|
|
steps {
|
|
checkout scm
|
|
}
|
|
}
|
|
|
|
stage('Install') {
|
|
steps {
|
|
sh 'npm install'
|
|
}
|
|
}
|
|
|
|
stage('Build') {
|
|
steps {
|
|
sh 'npm run build'
|
|
}
|
|
}
|
|
|
|
stage('Deploy') {
|
|
steps {
|
|
sh '''
|
|
cp -r .next /var/www/portfolio/
|
|
cp -r public /var/www/portfolio/ 2>/dev/null || true
|
|
cp package.json /var/www/portfolio/
|
|
cp -r node_modules /var/www/portfolio/
|
|
'''
|
|
sh '''
|
|
ssh -o StrictHostKeyChecking=no root@172.17.0.1 "cd /var/www/portfolio && pm2 delete portfolio || true && pm2 start npm --name portfolio -- start -- -p 3333 && pm2 save"
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
success {
|
|
echo '✅ Portfolio deployed!'
|
|
}
|
|
failure {
|
|
echo '❌ Deploy fehlgeschlagen!'
|
|
}
|
|
}
|
|
} |