pipeline {
  agent {
    label 'windows'
  }
  parameters {
    string(defaultValue: "version", description: "Version du dépôt 'eole-workstation-joineole'", name: 'version')
  }
  stages {

    stage('build exe') {
      steps {
          bat """
            Write-Host "psversion: $PSVersionTable.PSVersion.Major"
            Set-Location $env:WORKSPACE
            
            Write-Host "Actualise l'executable Console"
            & workstation/ps2exe.ps1 -inputFile 'workstation\\installMinion.ps1' -outputFile 'workstation\\installMinion.exe' -verbose -noConfigfile -requireAdmin -iconFile 'build\\eole.ico' -title 'Installateur Client EOLE' -version '1.0.0.1'
            
            Write-Host "Actualise l'executable GUI"
            & workstation/ps2exe.ps1 -inputFile 'workstation\\installMinion.ps1' -outputFile 'workstation\\installMinionGUI.exe' -verbose -noConsole -noConfigfile -requireAdmin -iconFile 'build\\eole.ico' -title 'Installateur Client EOLE' -version '1.0.0.1'

            Get-ChildItem 
          """
      }
    }

    stage('commit exe') {
      steps {
        withCredentials([sshUserPrivateKey(credentialsId: 'jenkins', keyFileVariable: 'JENKINS_PUBKEY')]){
          sh """

            # On désactive la vérification de la clé hôte pour les opérations Git
            export GIT_SSH_COMMAND="ssh -o 'StrictHostKeyChecking=no' -o 'UserKnownHostsFile=/dev/null' -i \${JENKINS_PUBKEY}"

            # On met à jour le nom/adresse utilisateur Git pour identifier Jenkins
            unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_COMMITER_NAME GIT_COMMITER_EMAIL
            git config user.email eole@ac-dijon.fr
            git config user.name Jenkins

            HAS_CHANGES=\$(git status --porcelain)
            if [ ! -z "\${HAS_CHANGES}" ]; then
              # On ajoute le fichier nouvellement généré, on commit puis on pousse la mise à jour
              git add "\${ZEPHIR_COMPOSE_FILE}"
              git commit -am "Update Exe file to ref ${IMAGE_COMMIT_TAG}"
              git push origin "${params.zephirFormulaStagingBranch}"
            fi

          """
        }
      }
    }

  }
}
