La lecture du fichier d'espace de travail de Jenkins avec Groovy script
Je veux ajouter une étape de génération avec le Groovy plugin pour lire un fichier et de déclencher un build échoue en fonction du contenu du fichier.
Comment puis-je injecter de l'espace de travail fichier chemin d'accès dans le groovy plugin ?
myFileDirectory = //Get workspace filepath here ???
myFileName = "output.log"
myFile = new File(myFileDirectory + myFileName)
lastLine = myFile.readLines().get(myFile.readLines().size().toInteger() - 1)
if (lastLine ==~ /.Fatal Error.*/ ){
println "Fatal error found"
System.exit(1)
} else{
println "nothing to see here"
}
Jenkins peut échouer, en fonction par exemple de résultats de test. Exactement ce que Vous voulez atteindre? Peut-être il y a un plugin pour ça déjà. Au lieu de passer un nom de fichier Vous pouvez mettre en œuvre la recherche de fichier.
J'ai un programme externe (exe) que je vais appeler pour générer un exécutable, il a également générer un fichier journal. Je veux voir dans ce fichier de journal et de l'échec de la compilation si [Erreur Fatale] est trouvé.
Eh bien, ok. Je suppose que ce journal a certains noms qui peuvent être facilement reconnus. Si oui, trouver ce fichier et chemin d'accès donné et en vérifier le contenu.
J'ai un programme externe (exe) que je vais appeler pour générer un exécutable, il a également générer un fichier journal. Je veux voir dans ce fichier de journal et de l'échec de la compilation si [Erreur Fatale] est trouvé.
Eh bien, ok. Je suppose que ce journal a certains noms qui peuvent être facilement reconnus. Si oui, trouver ce fichier et chemin d'accès donné et en vérifier le contenu.
OriginalL'auteur Sergio Couture | 2014-04-07
Vous devez vous connecter pour publier un commentaire.
En fonction de vos commentaires, vous seriez mieux avec Texte-finder plugin.
Il permet de rechercher des fichier(s), ainsi que de la console, pour une expression régulière, puis définissez le construire soit
unstable
oufailed
si trouvé.Comme pour le Groovy, vous pouvez utiliser les méthodes suivantes pour accéder à
${WORKSPACE}
variable d'environnement:def workspace = manager.build.getEnvVars()["WORKSPACE"]
OriginalL'auteur Slav
Je me rends compte que cette question a été sur la création d'un plugin, mais depuis la nouvelle Jenkins 2 Pipeline construit utilisation de Groovy, je me suis retrouvé ici, tout en essayant de comprendre comment lire un fichier à partir d'un espace de travail dans un Pipeline de build. Alors peut-être que je peux aider quelqu'un comme moi dans l'avenir.
S'avère que c'est très facile, il y a un readfile étape, et je devrais avoir rtfm:
le résultat est une Chaîne de sorte que vous pouvez analyser et split sur \n si vous souhaitez regarder ligne par ligne
OriginalL'auteur thaddeusmt
Si vous essayez de lire un fichier à partir de l'espace de travail lors d'un pipeline, une étape de génération, il y a une méthode pour que:
Pour référence, voir https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#readfile-read-file-from-workspace.
readFile()
(je n'ai pas trouvéreadFileFrom Workspace()
) - mais merci quand même, parce que readFile() a résolu mon problème!OriginalL'auteur birdamongmen
Si vous avez déjà le Groovy (Postbuild) le plugin installé, je pense que c'est valable désir d'obtenir ce fait avec (générique) Groovy au lieu d'installer un (spécialisée) de plugin.
Cela dit, vous pouvez obtenir de l'espace de travail à l'aide de
manager.build.workspace.getRemote()
. N'oubliez pas d'ajouterFile.separator
entre le chemin d'accès et nom de fichier.OriginalL'auteur sschuberth
Comme mentionné dans un autre post Lire .fichier txt à partir de l'espace de travail groovy script dans Jenkins j'avais du mal à le faire travailler pour la pom modules pour un fichier dans l'espace de travail, dans le
Choix Étendu De Paramètres. Voici ma solution avec le printlns:
OriginalL'auteur coz