¿Cómo ejecutar el paquete para un submódulo solo en Jenkins?
sbt (2)
Tengo un proyecto sbt con 4 módulos: module-a , module-b , module-c , module-d .
Cada módulo se puede empaquetar como GUERRA. Quiero configurar una implementación en Jenkins que construya solo uno de los 4 módulos y desplegarlo en un contenedor.
En detalle, quiero tener 4 trabajos de Jenkins - job-a , job-b , job-c , job-d , cada edificio solo el módulo definido (de la a d).
Por ahora, estoy usando clean update test package como el comando para la compilación de Jenkins sbt, pero esto da como resultado el empaquetado de los 4 módulos que no es necesario.
Ya probé project -module-a clean update test package pero sin suerte.
Cite el argumento para proyectar, es decir, project module-a , y no use un guion antes del nombre del submódulo.
La línea de comando completa para el trabajo de Jenkins sería la siguiente:
./sbt "project module-a" clean update test
También puede ejecutar las tareas de test y clean ámbito del proyecto de la siguiente manera:
sbt module-a/clean module-a/test
La solución es un poco más corta y clara en cuanto a qué proyecto se aplican los siguientes comandos.
No es necesario ejecutar la tarea de update ya que se ejecuta implícitamente mediante test como se describe en inspect tree test .
Hay una manera de hacerlo más limpio con un alias. Use lo siguiente en build.sbt :
addCommandAlias("jenkinsJob4ModuleA", "; module-a/clean; module-a/test")
Con el alias, ejecute jenkinsJob4ModuleA para tener el mismo efecto que la solución anterior.