pipeline { agent any triggers { // Every Friday at 21:15 cron('15 21 * * 5') } options { timeout(time: 15, unit: 'MINUTES') timestamps() buildDiscarder(logRotator(numToKeepStr: '10')) disableConcurrentBuilds() } stages { stage('Install dependencies') { steps { sh """ python3 -m venv venv . venv/bin/activate pip install --upgrade pip --quiet pip install --quiet atproto requests ffmpeg python-dotenv pillow """ } } stage('Post Divendres') { steps { // Securely injects Jenkins credentials as environment variables // Note the added curly braces wrapping the sh block withCredentials([ string(credentialsId: 'BSKY_GROMENAWARE_HANDLE', variable: 'BSKY_GROMENAWARE_HANDLE'), string(credentialsId: 'BSKY_GROMENAWARE_APP_PASSWORD', variable: 'BSKY_GROMENAWARE_APP_PASSWORD') ]) { sh """ . venv/bin/activate python3 bsky_post.py \ --text "DIVENDRES NIT PER FI!!!!!!!!!!!" \ --image media/divendres_nit.mp4 \ --alt "La bogeria del divendres nit" \ --bsky-handle "$BSKY_GROMENAWARE_HANDLE" \ --bsky-password "$BSKY_GROMENAWARE_APP_PASSWORD" \ --bsky-base-url "https://eurosky.social" \ --bsky-langs "ca" """ } } } } post { success { echo '✅ Divendres post published successfully.' } failure { echo '❌ Divendres post failed.' } } }