pipeline {
    agent any

    options {
        timeout(time: 15, unit: 'MINUTES')
        timestamps()
        buildDiscarder(logRotator(numToKeepStr: '10'))
        disableConcurrentBuilds()
    }
    
    triggers {
        // Runs every 30 minutes, matching your GitHub Action cron
        cron('H/30 * * * *')
    }

    stages {
        stage('Checkout & Setup') {
            steps {
                checkout scm
                sh '''
                # Create and activate the virtual environment, then install dependencies
                python3 -m venv venv
                . venv/bin/activate
                pip install atproto fastfeedparser beautifulsoup4 httpx arrow charset-normalizer Pillow
                '''
            }
        }

        stage('Post RSS to Bluesky') {
            steps {
                // 🔐 Fetch the EQI specific credentials
                withCredentials([
                    string(credentialsId: 'BSKY_EQI_HANDLE', variable: 'BSKY_EQI_HANDLE'),
                    string(credentialsId: 'BSKY_EQI_USERNAME', variable: 'BSKY_EQI_USERNAME'),
                    string(credentialsId: 'BSKY_EQI_APP_PASSWORD', variable: 'BSKY_EQI_APP_PASSWORD')
                ]) {
                    sh '''
                    . venv/bin/activate
                    
                    # Execute the script with the hardcoded EQI URL and credentials
                    python3 rss2bsky.py \\
                        "https://feeds.megaphone.fm/equipo-investigacion" \\
                        "$BSKY_EQI_HANDLE" \\
                        "$BSKY_EQI_USERNAME" \\
                        "$BSKY_EQI_APP_PASSWORD"
                    '''
                }
            }
        }
    }
}