2012-06-22 15 views

Respuesta

48

Muy fácil de hacer con el complemento Post build task.

Jenkins - "Post build task" option

+36

Recomendaría el [complemento PostBuildScript] (https://wiki.jenkins-ci.org/display/JENKINS/PostBuildScript+Plugin) en su lugar para simplemente ejecutar un script. Es más simple y más robusto si no necesita condicionalizar el resultado del registro. Por ejemplo, permite ejecutar cualquier paso de compilación en las acciones posteriores a la construcción. – Sampo

+8

También tenga en cuenta que el plugin Post Build Task pone toda la salida de la consola en la memoria para realizar la prueba condicional ... que puede ocupar mucha memoria si tiene cientos de trabajos produciendo una gran cantidad de salida ... Nuestro maestro jenkins simplemente colapsó debido a este complemento ... – grayaii

+1

El complemento PostBuildScript ha sido suspendido. – Upen

0

Debería configurar el script de shell posterior a la creación como un trabajo separado de Jenkins y activarlo como un paso posterior a la construcción. Parece que necesitará usar el Parameterized Trigger Plugin ya que la opción estándar "Crear otros proyectos" solo funciona si la compilación de activación es exitosa.

+0

cómo puedo activar la secuencia de comandos si la generación falla basa exclusivamente en cualquiera shell script ejecutable que tengo bajo mis tareas de trabajo? Gracias – kforkarim

+0

Pensando en esto, podría ser más fácil de controlar en el script de compilación en sí. ¿Qué estructura de construcción estás usando? –

+0

Usando script de shell para construir el marco de iOS – kforkarim

3

Si estoy leyendo correctamente su pregunta, desea ejecutar un script en la parte posterior de la compilación.

Yo uso PostBuildScript Plugin para ejecutar git clean -fxd después de que la compilación haya archivado los artefactos y publicado los resultados de las pruebas. Mis esclavos Jenkins tienen discos SSD, por lo que no tengo espacio para guardar los archivos generados en el área de trabajo.

2

Debería poder hacer eso con el Batch Task plugin.

  1. crear una tarea de proceso por lotes en el proyecto.
  2. Agregue una opción de post-compilación "Invocar tareas por lotes" seleccionando el mismo proyecto.

Una alternativa también puede ser el complemento Post build task.

9

También puede ejecutar comandos arbitrarios usando el Groovy Post Build, y eso le dará mucho control sobre cuándo se ejecutarán y demás. Usamos eso para ejecutar un script de shell 'finger of blame' en el caso de compilaciones fallidas o inestables.

if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) { 
    item = hudson.model.Hudson.instance.getItem("PROJECTNAMEHERE") 
    lastStableBuild = item.getLastStableBuild() 
    lastStableDate = lastStableBuild.getTime() 
    formattedLastStableDate = lastStableDate.format("MM/dd/yyyy h:mm:ss a") 
    now = new Date() 
    formattedNow = now.format("MM/dd/yyyy h:mm:ss a") 
    command = ['/appframe/jenkins/appframework/fob.ksh', "${formattedLastStableDate}", "${formattedNow}"] 
    manager.listener.logger.println "FOB Command: ${command}" 
    manager.listener.logger.println command.execute().text 
} 

(Nuestro comando toma la última fecha de fabricación estable y la hora actual como parámetros para que pueda ir a investigar quién podría haber roto la construcción, pero se puede ejecutar cualquier comando te gusta de una manera similar)

Cuestiones relacionadas