scripted script scm examples example groovy jenkins

scm - Lectura de archivos desde Workspace en Jenkins con script de Groovy



jenkinsfile scripted pipeline example (4)

En función de tus comentarios, estarías mejor con el complemento Text-Finder .

Permite buscar archivos, así como consola, para una expresión regular y luego establecer la compilación, ya sea unstable o failed si se encuentra.

En cuanto a Groovy, puede usar lo siguiente para acceder a la variable de entorno ${WORKSPACE} :
def workspace = manager.build.getEnvVars()["WORKSPACE"]

Quiero agregar un paso de compilación con el complemento de Groovy para leer un archivo y desencadenar un error de compilación según el contenido del archivo.

¿Cómo puedo inyectar la ruta del archivo del espacio de trabajo en el plugin groovy?

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" }


Si ya tiene instalado el complemento Groovy (Postbuild), creo que es un deseo válido hacer esto con Groovy (genérico) en lugar de instalar un complemento (especializado).

Dicho esto, puede obtener el espacio de trabajo utilizando manager.build.workspace.getRemote() . No olvide agregar File.separator entre la ruta y el nombre del archivo.


Me di cuenta de que esta pregunta era sobre la creación de un complemento, pero dado que las nuevas compilaciones de Jenkins 2 Pipeline utilizan Groovy, me encontré aquí mientras intentaba descifrar cómo leer un archivo desde un espacio de trabajo en una compilación Pipeline. Entonces quizás pueda ayudar a alguien como yo en el futuro.

Resulta que es muy fácil, hay un paso de readfile , y debería tener rtfm:

env.WORKSPACE = pwd() def version = readFile "${env.WORKSPACE}/version.txt"