pipeline { agent any stages { stage('Checkout') { steps { checkout scm } } stage('Build Image') { steps { script { dir('project2') { // Construim imaginea aplicației sh "docker build -t quotes-app ." } } } } stage('Run & Save Quote') { steps { script { dir('project2') { echo "🚀 Rulăm aplicația și salvăm citatul..." /* -v \$(pwd):/app -> mapează folderul curent din Jenkins în /app din container. Astfel, quote.txt creat de Python va apărea direct în folderul project2. */ sh "docker run --rm --network host -v \$(pwd):/app -e QUOTE_API_URL='https://api.quotable.io/random' quotes-app" } } } } } post { success { script { def discordUrl = "https://discord.com/api/webhooks/1471492658336891013/T5s6ZKZjJjDMHXc3k3jjZdk6m5EV12bKF1wda9d5I_gZJrsDZQ1m1m078IiLJWK38mqa" def quoteContent = readFile('project2/quote.txt').trim() echo "Trimitem citatul pe Discord..." sh """ curl -X POST -H 'Content-Type: application/json' \ -d '{"content": "✅ **Build #${env.BUILD_NUMBER} Finalizat cu Succes!**\\n\\n${quoteContent}"}' \ '${discordUrl}' """ } } failure { script { def discordUrl = "https://discord.com/api/webhooks/1471492658336891013/T5s6ZKZjJjDMHXc3k3jjZdk6m5EV12bKF1wda9d5I_gZJrsDZQ1m1m078IiLJWK38mqa" sh """ curl -X POST -H 'Content-Type: application/json' \ -d '{"content": "❌ **Build #${env.BUILD_NUMBER} a eșuat!** Verifică log-urile din Jenkins."}' \ '${discordUrl}' """ } } } }