pipeline {
    agent any

    environment {
        PACKAGE_NAME = "base-files"
        APTLY_REPO = "espos-unstable"

        APTLY_HOST = "ubuntu@elordenador.org"

        DEB_FILE = "*.deb"
    }

    stages {
        
        stage('Checkout') {
            steps {
                checkout scm
            }
        }

        stage('Install Build Dependencies') {
            steps {
                sh '''
                sudo apt update
                sudo apt install -y build-essential devscripts debhelper lintian
                '''
            }
        }

        stage("Build Debian Package") {
            steps {
                sh '''
                dpkg-buildpackage -us -uc 
                ls -lah ..
                '''
            }
        }

        stage("Lintian Check") {
            steps {
                sh '''
                lintian ../*.deb || true
                '''
            }
        }
        stage("Upload to aptly") {
            steps {
                sshagent(['srv01_elordenador_org']) {
                    sh '''
                    ssh-keyscan -H elordenador.org >> ~/.ssh/known_hosts
                    scp ../${DEB_FILE} ${APTLY_HOST}:/tmp/
                    '''
                }
            }
        }
        stage("Publish Repository") {
            steps {
                sshagent(['srv01_elordenador_org']) {
                
                    withCredentials([
                        string(
                            credentialsId: 'aptly_gpg_pass',
                            variable: 'GPG_PASS'
                        )
                    ]) {
                    
                        sh '''
                        ssh ${APTLY_HOST} "
                            aptly repo add espos-unstable /tmp/*.deb
        
                            if aptly publish list | grep -q espos-unstable
                            then
                                aptly publish update \
                                    -passphrase='${GPG_PASS}' \
                                    espos-unstable
                            else
                                aptly publish repo \
                                    -distribution=espos-unstable \
                                    -component=main \
                                    -passphrase='${GPG_PASS}' \
                                    espos-unstable
                            fi
                        "
                        '''
                    }
                }
            }
        }  
    }
    post {
        success {
            echo "Paquete publicado correctamente"
        }
        failure {
            echo "Error construyendo paquete"
        }
    }
}