¿Alguien ha probado esa característica y tiene alguna opinión? O ¿Alguien sabe algunas muestras útiles para buscar?Experiencia con Hudson - Proyecto de matriz de construcción
Respuesta
He probado esta característica hace algunos meses, pero ya no la uso (solo porque no la necesito, no porque no sea una buena característica).
Básicamente, usted define n Eje, cada eje es una propiedad con varios valores.
Veamos un ejemplo: define el eje "JDK", con el posible valor "1.4", "1.5", "1.6", y define otra propiedad "base de datos", donde los posibles valores son "oráculo", "mysql".
Por lo tanto, Hudson lanzará su construcción: 6 veces
- con JDK 1.4, con la base de datos Oracle propiedad = (es decir, la JVM se puso en marcha con -Ddatabase = oráculo)
- con JDK 1.5, con la base de datos propiedad = oráculo
- con JDK 1.6, con la base de datos propiedad = oráculo
- con JDK 1.4, con la base de datos propiedad = mysql
- con JDK 1.5, con la base de datos propiedad = mysql
- con JDK 1.6, con la base de datos MySQL propiedad =
Entonces, una vez que todo ha terminado, usted será capaz de ver los resultados de cada iteración.
Esta función puede ser muy útil cuando necesite probar su aplicación en varios entornos (en mi ejemplo, con diferentes versiones de JDK o base de datos).
Tenga en cuenta que, a excepción del eje JDK, debe gestionar usted mismo la propiedad dada como entrada por Hudson. En mi ejemplo, la aplicación debe tener en cuenta la propiedad "base de datos". Eventualmente, una buena idea es usar esta propiedad para habilitar un perfil particular en la configuración de Maven2, si el proyecto está mavenizado (ver here para obtener más detalles al respecto).
espero que mis explicaciones son claras suficiente :)
Matrix construye una serie de cuestiones:
- En términos incompatibles con plugins - que son cada vez mejores, pero hay que estar manteniendo mucho hasta hasta la fecha.
- Artefactos: mucho más difícil de escabullir - Los URls son un poco más incómodos, encontrarlos en el FS (que de todos modos deberías evitar) es ahora una pesadilla.
Lo cual es una pena, porque el concepto es muy bueno y muy útil donde funciona.
Editar
- imposibilidad de iniciar puntos individuales.
Nuestra forma habitual de resolver esto es tener las compilaciones parametrizadas configuradas para ejecutarse de forma simultánea, lo que trae sus propios problemas, pero nos ahorra tener muchos trabajos con el mismo código y diferentes constantes.
¿Tiene una mejor sugerencia? Estoy buscando usar una construcción matricial para dividir nuestra suite unittest en una cantidad de trabajos idénticos que cada uno ejecute un subconjunto diferente de la suite (para acelerar nuestro ciclo de prueba de nuestros 40 minutos actuales a <5 minutos) – PerilousApricot
Usamos código en los pasos de compilación para iniciar trabajos parametrizados, por lo que un trabajo principal "kicker" o "scheduler" inicia los trabajos posteriores. Usamos un parámetro de causa para vincularlos una copia de seguridad y parámetros de guía para encontrar los trabajos una vez fuera de la cola para que el trabajo principal pueda mostrar todos los trabajos secundarios que inició. Esto fue: un solo trabajo está parametrizado, y las herramientas padre + otras de creación de vistas se pueden usar para verlas. Usamos la función permitir carreras concurrentes también. –
- 1. ¿Alguna experiencia con los bloques de construcción Threading de Intel?
- 2. Despliegue del proyecto PHP con Hudson/Jenkins
- 3. ¿Cómo construyo un proyecto Play con Hudson?
- 4. Cómo eliminar artefactos de construcción innecesarios en Hudson
- 5. Cómo usar Hudson en la construcción de múltiples plataformas
- 6. ¿Alguna experiencia con un dispositivo de integración continua?
- 7. ¿Herramientas de gestión/construcción de proyecto para un proyecto de Django?
- 8. Construcción paralela de una matriz de distancia
- 9. Agregue un enlace personalizado a la página del proyecto hudson
- 10. edificio independiente de la implementación con Hudson
- 11. ¿Alguna experiencia con Protocol Buffers?
- 12. Experiencia con el algoritmo de nivel PHP
- 13. ¿Alguien tiene experiencia con AppScale?
- 14. ¿Alguien tiene alguna experiencia con math.net
- 15. proyecto de construcción Android con tener hormiga una dependencia proyecto de biblioteca en otro proyecto de biblioteca
- 16. Despliegue de .NET con Jenkins/Hudson
- 17. Problema con la construcción del proyecto Android NDK
- 18. ¿Experiencia con Hadoop?
- 19. Experiencia con MKMapView Rotación
- 20. Ant/Ivy para la construcción del proyecto
- 21. Xcode: Adición de un proyecto como una dependencia de construcción
- 22. ¿Cómo podría integrar phpunit con Hudson CI?
- 23. No se pueden obtener artefactos de construcción para mostrar correctamente en Jenkins/Hudson
- 24. Cobertura de código de Java en Hudson
- 25. Experiencia con PHP QuickHash para arreglos grandes
- 26. Pasos de construcción personalizados en el proyecto IDEA de Intellij
- 27. ¿Alguien tiene experiencia lenta con VS2010?
- 28. Hudson compilación falla con FATAL: null java.lang.AbstractMethodError
- 29. Maven: El paquete de este proyecto no asignó un archivo al artefacto de construcción
- 30. La experiencia con los sistemas de facturación
¿Cómo accedes a estas propiedades para proyectos que no son de Java? Como variables de entorno? –
@Sridhar Normalmente sí, estas propiedades las establece Hudson como variables de entorno para la compilación actual. – romaintaz
OK, esta pregunta ha expirado hace tiempo, pero tengo dificultades para configurar un proyecto de matriz, ¿algún consejo sobre cómo configurar uno? :) –