Écrire ce fichier via jenkins post-script groovy sur l'esclave
Je voudrais faire quelque chose de très simple: Créer/écrire dans un fichier situé à la distance de l'espace de travail d'un esclave via le jenkins groovy post-script de création de plug-in
def props_file = new File(manager.build.workspace.getRemote() + "/temp/module.properties")
def build_num = manager.build.buildVariables.get("MODULE_BUILD_NUMBER").toInteger()
def build_props = new Properties()
build_props["build.number"] = build_num
props_file.withOutputStream { p ->
build_props.store(p, null)
}
La dernière ligne échoue, le fichier n'existe pas. Je suis en train de penser a quelque chose à voir avec le flux de sortie pointant vers le maître exécuteur testamentaire, plutôt que la distance de l'espace de travail, mais je ne suis pas sûr:
Groovy script failed:
java.io.FileNotFoundException: /views/build_view/temp/module.properties (No such file or directory)
Ne suis-je pas écrit dans le fichier correctement?
OriginalL'auteur Nathan Perrier | 2012-02-21
Vous devez vous connecter pour publier un commentaire.
De recherche pour des mots
The post build plugin runs on the manager and doing it as you say will fail if you are working with slaves!
sur la page du plugin (le lien que vous avez fourni) et de voir si la solution de contournement permet de.La solution a été un coup. La difficulté est qu'il s'exécute sur le maître, vous allez à partir de là.
OriginalL'auteur malenkiy_scot
Lors de l'écriture sur l'esclave, vous devez vérifier le canal en premier et ensuite vous pouvez créer un descripteur de fichier et démarrer la lecture ou l'écriture dans ce fichier:
espérons que cette aide!
Si le travail n'est pas à distance il n'y aura pas de canal
OriginalL'auteur AJ.P
Le dossier
/views/build_view/temp
existent?Si non, vous aurez besoin de faire
new File( "${manager.build.workspace.remote}/temp" ).mkdirs()
OriginalL'auteur tim_yates