pipeline {
    agent {
        label 'windows'
    }
    options {
        disableConcurrentBuilds()
        timeout(time: 30, unit: 'MINUTES')
    }
    parameters {
        booleanParam(name: 'CLEANUP', defaultValue: true, description: 'Clean up workspace after build')
        booleanParam(name: 'ARCHIVE_ARTIFACTS', defaultValue: false, description: 'Archive artifacts after build')
       // no lo necesito choice(name: 'CI_BUILD_CONFIGURATION', choices: ['Release', 'Debug'], description: 'Build configuration for application')
    }
    environment{
        SONAR_TOKEN = credentials('sonar_admin_token')// en local tengo que definir este token
        DOCKER_BUILDKIT = 0
    }
    stages {
        stage('Build') {
            steps {
                withCredentials([usernamePassword(credentialsId: 'nexus.statsperform.tools/users/jenkins', usernameVariable: 'NEXUS_USER', passwordVariable: 'NEXUS_PASSWORD')]) {
                  /* esto crea la aplicacion con msbuilt
                    powershell '''
                        . .\\CI\\BuildApplicationSpecific\\GLOBAL_VARIABLES.ps1
                        $SOLUTION_SUBFOLDER = '.' # dot '.' means current working directory; add deeper path to the solution gonna be built
                        \$ErrorActionPreference='Stop';
                        .\\CI\\BuildApplicationSpecific\\Set-AppVariables.ps1
                        .\\CI\\BuildScripts\\CI-webapp.ps1 
                    '''
                    */ //con lo de abajo puebo que funciona el powershell
                    powershell '''
                        . .\\CI\\BuildApplicationSpecific\\GLOBAL_VARIABLES.ps1
                        $SOLUTION_SUBFOLDER = '.' # dot '.' means current working directory; add deeper path to the solution gonna be built
                        \$ErrorActionPreference='Stop';
                        .\\CI\\BuildApplicationSpecific\\Set-AppVariables.ps1
                    '''

                }
            }
        }
        stage('ArchiveArtifacts') {
            when {
                expression { params.ARCHIVE_ARTIFACTS == true }
            } 
            steps {
                powershell '''                   
                    $PROJECT_FOLDER = ".\\TennisScraper" # e.g .\\TennisEntry
                    $BINARIES_PATH = "${PROJECT_FOLDER}\\bin\\artifacts\\web\\${env:CI_BUILD_CONFIGURATION}\\*"
                    $ARCHIVE_NAME = "TennisScraper" # e.g. TennisEntry
                    Compress-Archive -Path $BINARIES_PATH -DestinationPath "${PROJECT_FOLDER}\\bin\\${ARCHIVE_NAME}.zip" -Force
                    $PROJECT_FOLDER_2 = ".\\TennisScraperMonitor" # e.g .\\TennisEntry
                    $BINARIES_PATH_2 = "${PROJECT_FOLDER_2}\\bin\\artifacts\\web\\${env:CI_BUILD_CONFIGURATION}\\*"
                    $ARCHIVE_NAME_2 = "TennisScraperMonitor" # e.g. TennisEntry
                    Compress-Archive -Path $BINARIES_PATH_2 -DestinationPath "${PROJECT_FOLDER_2}\\bin\\${ARCHIVE_NAME_2}.zip" -Force
                '''

                archiveArtifacts artifacts: "*/bin/*.zip"
            }
        }
    }  
    post {
        always {
            script {
                if (params.CLEANUP == true) {
                    echo 'Cleaning up workspace'
                    deleteDir()
                }
            }
        }
    }
}