web-dev-qa-db-fra.com

Obtention de l’horodatage actuel dans un script de pipeline en ligne à l’aide du plugin pipeline de hudson

Je souhaite obtenir l’obtention de l’horodatage actuel dans un script de pipeline en ligne à l’aide du plugin pipeline de hudson. Pour configurer le nom d'affichage de la construction.

Script groovy intégré utilisé:

def jobName = env.JOB_NAME + "_" + new Date()
currentBuild.displayName = "$jobName"
node {
   echo "job name $jobName"
}

Erreur sur la console:

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: 
  Scripts not permitted to use new Java.util.Date
7

Les scripts Jenkins s'exécutent dans un bac à sable. Par défaut, le script Groovy ne dispose pas des autorisations nécessaires pour certaines opérations. 

Lorsque vous effectuez une opération sans autorisation, la variable RejectAccessException est renvoyée. Donc, vous devez exécuter votre script, puis lorsque l'exception est levée, allez à:

http://yourHost/jenkins/scriptApproval/

Et approuver l'autorisation nécessaire:

 enter image description here

5
albciff

vous pouvez aussi l'utiliser, j'en avais besoin sous ms donc:

echo "TimeStamp: ${currentBuild.startTimeInMillis}"

echo "TimeStamp: ${Util.getTimeSpanString(System.currentTimeMillis())}"
10
dsaydon

Il suffit de formater l'objet Date:

stage('Foo') {
  steps {
    script {
        def now = new Date()
        println now.format("yyMMdd.HHmm", TimeZone.getTimeZone('UTC'))
    }
  } 
}
2
Camilo Silva