web-dev-qa-db-fra.com

Comment récupérer un espace de travail actuel à l'aide du script Jenkins Pipeline Groovy?

J'essaie d'obtenir l'espace de travail actuel de ma version Jenkins à l'aide d'un script de pipeline Groovy:

node('master') {
    // PULL IN ENVIRONMENT VARIABLES
    // Jenkins makes these variables available for each job it runs
    def buildNumber = env.BUILD_NUMBER
    def workspace = env.WORKSPACE
    def buildUrl = env.BUILD_URL

    // PRINT ENVIRONMENT TO JOB
    echo "workspace directory is ${workspace}"
    echo "build URL is ${env.BUILD_URL}"
}

Il retourne:

[Pipeline] Allocate node : Start
Running on master in /Users/Shared/Jenkins/Home/jobs/test/workspace
[Pipeline] node {
[Pipeline] echo
workspace directory is null
[Pipeline] echo
build URL is http://localhost:8080/job/test/5/
[Pipeline] } //node
[Pipeline] Allocate node : End
[Pipeline] End of Pipeline
Finished: SUCCESS
16
N.Reddy

Pour moi, ${workspace} fonctionnait sans même initialiser la variable "espace de travail".

13
Litty Philip

Il n'y a pas encore de variable incluse pour cela, vous devez donc utiliser la méthode Shell-out-read-file:

sh 'pwd > workspace'
workspace = readFile('workspace').trim()

Ou (si exécuté sur le noeud principal):

workspace = pwd()
6
Krzysztof Krasoń

Je pense que vous pouvez également exécuter la fonction pwd () sur le noeud particulier:

node {
    def PWD = pwd();
    ...
}
4
chris_f

C'est ici que vous pouvez trouver la réponse dans le fichier job-dsl-plugin .

En gros, vous pouvez faire quelque chose comme ça:

readFileFromWorkspace('src/main/groovy/com/groovy/jenkins/scripts/enable_safehtml.groovy')
0
Dresden