python-appv2/Jenkinsfile
2025-12-15 17:44:59 +00:00

70 lines
No EOL
1.2 KiB
Groovy

pipeline {
agent {
docker {
image 'python:3.11-slim'
}
}
environment {
APP_PORT = '3001'
}
stages {
stage('Install Dependencies') {
steps {
sh '''
python --version
pip install --upgrade pip
pip install -r requirements.txt
'''
}
}
stage('Unit Tests') {
steps {
sh 'pytest test_app.py'
}
}
stage('Run & Integration Test') {
parallel {
stage('Start App') {
steps {
sh '''
gunicorn --bind 0.0.0.0:${APP_PORT} app:app &
echo $! > gunicorn.pid
'''
}
}
stage('Integration Test') {
steps {
sh '''
sleep 5
curl -f http://localhost:${APP_PORT}
'''
}
}
}
post {
always {
sh '''
if [ -f gunicorn.pid ]; then
kill $(cat gunicorn.pid) || true
fi
'''
}
}
}
stage('Containerization') {
steps {
echo 'Docker Build Image...'
echo 'Docker Tag Image...'
echo 'Docker Push Image...'
}
}
}
}