.run y .runwait

Nota: En los motores de Java en Build Forge 8.0, las condiciones [-c<condition>] para .run y .runwait no están soportadas. Para que el inicio dependa de una condición, utilice un paso condicional en su lugar.
.run [-c "<condition>"] "<nombre_proyecto>" 
.runwait [-c "<condición>"] "<nombre_proyecto>" 

Puede utilizar los mandatos .run y .runwait para iniciar un proyecto encadenado desde un mandato de paso. Si el proyecto tiene varias instantáneas, el sistema ejecuta la instantánea predeterminada.

Los mandatos tienen comportamientos diferentes una vez que inician un proyecto:

Inicios condicionales

Puede utilizar el parámetro -c opcional para que la condición dependa de una condición. Puede utilizar variables de entorno en la condición. La condición puede tener varias formas:
Comparación de serie
Puede utilizar los operadores igual (=) o no igual (!=) para evaluar las series. La cadena se inicia si la comparación se evalúa como verdadero.
Comparación numérica
Puede utilizar los operadores <, >, <>, >< o = para comparar dos valores numéricos.
Éxito del mandato
Puede utilizar un mandato entre acentos graves como valor del parámetro -c. El sistema ejecuta el mandato; si se ejecuta satisfactoriamente, se inicia la cadena.

Ejemplos

.run "BuildWindowsDriver"

El sistema inicia el proyecto BuildWindowsDriver. El proyecto de inicio continúa inmediatamente con el paso siguiente.

.runwait "BuildWindowsDriver"

El sistema inicia el proyecto BuildWindowsDriver. El sistema detiene el proyecto de inicio en el paso .runwait. Cuando el proyecto BuildWindowsDriver finaliza y tiene éxito, el estado del paso .runwait se establece en éxito.

.run -c "$HOMEDRIVE=C:" "Simple Echo"

El sistema ejecuta el proyecto Simple Echo si y sólo si la variable HOMEDRIVE tiene el valor C.

Este mandato produce una salida de registro como la siguiente (en la sección EXEC del registro de pasos):
  • Si HOMEDRIVE es C:
    .run Condition: 'C:' = 'C:' satisfied.
    
    Queueing Project "Simple Echo" on server [WinBox].
    Queued Build 'BUILD_202' of project 'Simple Echo'.
  • Si HOMEDRIVE no es C:
    .run -c "$HOMEDRIVE=C:" "Simple Echo"     
    
    .run Condition: 'D:' = 'C:' unsatisfied, no project queued.

El sistema puede comparar numéricamente series si contienen números. Por ejemplo, maneja los casos siguientes, tal como se muestra a continuación.

.runwait -c "a12b<c42d" "Simple Echo"

.run Condition: '12' < '42' satisfied. 
Queueing Project "Simple Echo" on server [WinBox]. 
Waiting for .run build (4411) to complete. 
.run build is now running. 
.run build has finished. 
Build 'BUILD_203' of project 'Simple Echo' completed. 

.runwait -c "f43g<>h43i" "Simple Echo"

.run Condition: '43' <> '43' unsatisfied, no project queued. 

Los ejemplos siguientes muestran cómo utilizar los mandatos como condiciones. Observe que el mandato debe ir entre comillas y con el signo de acento grave.

.run -c "`exit 1`" "Simple Echo"

Env .run encountered an error during variable expansion, 
   parameter [`exit1`] expanded to []. 
Expansion returned non-zero exit, project will not be queued. 

.run -c "`exit 0`" "Simple Echo"

Expansion returned zero exit, project will be queued. 
Queueing Project "Simple Echo" on server [WinBox]. 
Queued Build 'BUILD_204' of project 'Simple Echo'.

Cuando utiliza .runwait y falla una compilación, el registro tienen un aspecto similar al siguiente.

.runwait "Fail Build"

Queueing Project "Fail Build" on server [WinBox]. 
Waiting for .run build (4413) to complete. 
.run build is now running. 
.run build has finished. 
Build 'BUILD_3' of project 'Fail Build' Failed, setting step status to fail.

Comentarios