2010-10-25 17 views
6

Hemos empezado a utilizar Hudson, y el flujo de trabajo actual es:edificio independiente de la implementación con Hudson

la caja localmente> code> ejecutar pruebas> Actualización> ejecutar pruebas> cometen

En lugar de que el sondeo, Hudson simplemente se sienta allí hasta que instanciamos una construcción. Es entonces:

la caja localmente> ejecutar secuencias de comandos Phing

El guión Phing a continuación:

SVN Exportar última revisión> pruebas realizadas (si tiene éxito)> genera informes, etc ..> comprime la exportación> SCP para la producción servidor> ... hacer magia para hacer sitio en vivo ...

Todo funciona bien y dandy, sin embargo, realmente no nos da la capacidad de ningún tipo de QA de "puesta en escena" y cada construcción construye la cabeza del repositorio revisión. Idealmente nos gustaría Hudson sondee o uso posterior cometer ganchos construyen cada confirmación y:

la caja localmente> Phing tarea Ejecutar para ejecutar pruebas y si tiene éxito, genera informes, etc ..

entonces será capaz de crear una instancia manualmente una implementación automatizada (a través de la tarea Phing) para "organizar el entorno de QA o la producción desde cada compilación específica. No todas las confirmaciones se implementarán en el control de calidad.

¿Es posible este flujo de trabajo con Hudson, o vamos a necesitarlo? para ejecutar manualmente nuestras tareas de implementación Phing después.

Respuesta

2

Terminé haciendo algo similar a la sugerencia de Peter Schuetze. Sin embargo, usé el único trabajo. Utilizo 3 parámetros de compilación, implementación (bool), entorno (elección) y revisión (texto). Luego modifiqué mis scripts de Phing para que solo realicen despliegues si el parámetro deploy es verdadero, en cuyo caso implementará la revisión especificada en el entorno especificado. Por defecto, deploy es falso, la revisión es cabeza y el entorno está en etapas. Ahora, cuando Hudson sondea svn, ve que el parámetro deploy es falso y omite las tareas de implementación.

0

No soy del todo aclare lo que quiere lograr, pero me pregunto si está usando el complemento Phing Tal vez lo que usted desea actualmente no sea posible a través de Hudson y puede ser necesario cambiar su proceso de desarrollo para hacerlo posible.

4

Separa el trabajo de compilación/prueba (trabajo1) y el trabajo de despliegue (trabajo2). Job1 se ejecuta en el tronco después de cada confirmación (Hudson sondea, pero el enganche post commit también funciona). También archiva los artefactos de construcción. Job2 se iniciará manualmente. Obtiene el build_number de job1 como parámetro de compilación (Me gusta el parámetro de ejecución) y descarga los artefactos de job1 en su propio espacio de trabajo. Les ejecuta la implementación. En su caso, agregaría otro parámetro (parámetro de elección) para determinar el entorno que desea implementar.

Con el plugin setter de descripción, puede imprimir el número de ejecución de job1 y el entorno y puede ver fácilmente en el historial de trabajos qué estructura se implementó en qué entorno.

+1

Terminé haciendo algo similar. Sin embargo, usé el único trabajo. Utilizo 3 parámetros de compilación, implementación (bool), entorno (elección) y revisión (texto). Luego modifiqué mis scripts de Phing para que solo realicen despliegues si el parámetro deploy es verdadero, en cuyo caso implementará la revisión especificada en el entorno especificado. Por defecto, deploy es falso, la revisión es cabeza y el entorno está en etapas. Ahora, cuando Hudson sondea svn, ve que el parámetro deploy es falso y omite las tareas de implementación. – xzyfer

+0

Quiero hacer lo mismo, ya que soy nuevo en Jenkins/hudson, ¿puedes dar más detalles técnicos si es posible? –

+0

¿Dónde luchas? Primero crea un trabajo de construcción. Eso debería darte alguna experiencia práctica para hacer preguntas más específicas (que probablemente debería ser su propia pregunta y no un comentario a una respuesta). –

Cuestiones relacionadas