2010-10-06 9 views
8

me gustaría usar una carrera guiones se dirigen a etiquetar mi revisión en mercurial y subirlo a un servidor. Creé un nuevo destino de secuencias de comandos de ejecución que depende del otro objetivo que crea mi aplicación, luego agregué dos secuencias de secuencia de comandos de ejecución directamente una detrás de otra.Cómo abortar si la fase de construcción secuencia de comandos ejecutada da un error

Ahora mi pregunta: ¿Cómo puedo prevenir la ejecución de secuencia de comandos de ejecución fase # 2 si script que se ejecuta la fase # 1 da un error (código de retorno del guión es diferente a 0)?

El segundo guión podría subir los archivos a un servidor, por lo que sólo desea ejecutar esta fase, si todo ha ido bien hasta entonces.

Respuesta

11

Una solución sería dejar general edificio cuando se producen errores:

XCode -> Preferencias -> Edificio -> Opciones de construcción "Continuar edificio después de errores".

Si desmarca de eso, la acumulación se detendrá si el script devuelve algo diferente a 0 y no se ejecutará el segundo guión. Si usa xcodebuild, el nombre para la configuración es "PBXBuildsContinueAfterErrors".

+0

Interesante! ¿También es posible establecerlo para un objetivo específico? – GorillaPatch

+0

¿Te refieres a través de xcodebuild? Si usted está construyendo múltiples objetivos con una llamada, sólo les separan de utilizar diferentes comandos xcodebuild, cada uno con un diferente ... y -target -PBXBuildsContinueAfterErrors = 0/1 –

+1

pensé más sobre las compilaciones inician desde Xcode. – GorillaPatch

4

Su primer guión puede abortar la construcción con "la salida 1", así:

if [ error ] then 
    echo "There are some errors, etc..." 
    exit 1 
fi 
Cuestiones relacionadas