pipeline {
    agent any

    parameters {
        string(name: 'KAGGLE_USERNAME', defaultValue: 'gulczas', description: 'Kaggle username')
        password(name: 'KAGGLE_KEY', defaultValue: '', description: 'Kaggle API key')
    }

    stages {
        stage('Clone Repository') {
            steps {
               git 'https://git.wmi.amu.edu.pl/s464953/ium_464953.git'
            }
        }
        
        stage('Stop and remove existing container') {
            steps {
                script {
                    sh "docker stop s464953 || true"
                    sh "docker rm s464953 || true"
                }
            }
        }

        stage('Build Docker image') {
            steps {
                script {
                    withEnv([
                        "KAGGLE_USERNAME=${env.KAGGLE_USERNAME}", 
                        "KAGGLE_KEY=${env.KAGGLE_KEY}"
                    ]) {
                        sh "docker build --build-arg KAGGLE_USERNAME=$KAGGLE_USERNAME --build-arg KAGGLE_KEY=$KAGGLE_KEY -t s464953 ."
                    }
                }
            }
        }

        stage('Run Docker container') {
            steps {
                script {
                    withEnv([
                        "KAGGLE_USERNAME=${env.KAGGLE_USERNAME}", 
                        "KAGGLE_KEY=${env.KAGGLE_KEY}"
                    ]) {
                        sh "docker run --name s464953 -e KAGGLE_USERNAME=$KAGGLE_USERNAME -e KAGGLE_KEY=$KAGGLE_KEY -v ${WORKSPACE}:/app s464953"
                    }
                }
            }
        }

        stage('Archive stats.txt artifact') {
            steps {
                archiveArtifacts artifacts: 'model.pkl', allowEmptyArchive: true
            }
        }
    }
}