2011-06-09 18 views
9

Actualmente tengo una actividad de flujo de trabajo personalizada para ejecutar un proceso externo, después de que la solución se haya compilado correctamente, devuelve un Código de Exit <> 0 si el proceso externo ha fallado. Una vez que sé que el proceso ha fallado, quiero establecer el estado de compilación en FAIL (como vería si el código no se ha compilado), así que agregué una actividad SetBuildProperties que establecerá la propiedad Estado en BuildStatus.Failed pero esto solo parece dar como resultado una construcción Parcialmente exitosa cuando la construcción finaliza.Forzar una compilación de flujo de trabajo TFS2010 en FAIL en lugar de EXITOS PARCIALMENTE

He intentado establecer el estado de compilación de la compilación a error dentro de mi actividad personalizada que da como resultado una compilación Fallida, pero realmente no quiero tener que hacer eso ya que es engañosa cuando se compila la solución.

¿Alguien puede decirme cómo puedo forzar a una construcción a fallar? (Preferiblemente sin tener que establecer el estado de compilación a fallado!)

Gracias

+0

ps, ​​al principio seguí la guía de Ewalf Hofman para evitar una compilación desde una aplicación de consola, pero esta guía solo da como resultado una compilación Parcialmente exitosa – Vermin

+0

Bueno, si quieres que el estado de compilación sea exitoso siempre obtendrás una compilación parcialmente exitosa como la compilación ha tenido éxito pero algo más ha fallado, por lo que la compilación tiene parcialmente éxito – thekip

Respuesta

4

Lo que pasó aquí es que cuando la acumulación termina, el gestor de flujo de trabajo sobrescribirá el estado de construcción en un valor que depende de la combinación de estados del proceso de construcción. En su caso, el estado de compilación es satisfactorio, pero hay una falla de actividad personalizada (establece el estado de compilación en Failed), por lo que el estado general sería parcialmente logrado.

La única solución aquí es establecer CompilationStatus en Failed or Unknown (Error o Desconocido), luego el estado de compilación será Fallido.

No he intentado establecer CompilationStatus en Unknown though. Pero si puede hacerlo, más adelante puede regresar y cambiarlo a Pasado. Solo una forma de distinguir con las compilaciones de compilación fallidas reales.

No es una gran solución, sé :(

ACTUALIZACIÓN:. El uso de la actividad SetBuildProperties para establecer el estado de generación para falló y pude fallar la acumulación a pesar de que la compilación logró

+0

Acabo de ver el código fuente. Podría ser un error en nuestro código que no respete la configuración de estado. Voy a responder de nuevo con más detalles después de tratar de reproducir esto yo mismo. Si es así, lo arreglaremos en la próxima versión. Gracias por encontrarlo –

+0

gracias por su respuesta. Es una pena que no pueda hacer que funcione de la manera deseada, pero estoy muy contento de haber encontrado un error en TFS lol – Vermin

+0

Ahora he intentado establecer el estado de compilación en desconocido, y esto da como resultado una compilación parcialmente exitosa . Para que la compilación fallara por completo, tuve que configurar el estado de compilación para que fallara. – Vermin

1

En TFS 2013, utilizando una plantilla de compilación personalizada, puede establecer el estado de la compilación en Failed (Fallido) dejando los valores válidos en CompilationStatus y TestStatus. Tiene que hacerlo después de la ejecución de prueba, de lo contrario se actualiza nuevamente. Use SetBuildProperties actividad y establecer la propiedad "Estado".

Cuestiones relacionadas