.run e .runwait

.run [-c "<condition>"] "<ProjectName>" ["<ProjectSnapshotName>"]
.runwait [-c "<condition>"] "<ProjectName>" ["<ProjectSnapshotName>"]

É possível usar os comandos .run e .runwait para ativar um projeto em cadeia a partir de um comando da etapa. Para especificar uma captura instantânea do projeto, use o parâmetro <ProjectSnapshotName> opcional.

Os comandos diferem na maneira como se comportam após iniciarem um projeto:

Iniciação Condicional

Você pode utilizar o parâmetro -c opcional para tornar o início dependente de uma condição. É possível utilizar as variáveis de ambiente na condição. A condição pode ocorrer de várias formas:
Comparação de cadeia
É possível utilizar os operadores igual (=) ou diferente (!=) para avaliar as cadeias. A cadeia é iniciada se a comparação for avaliada como verdadeira.
Comparação numérica
É possível utilizar <, >, <>, >< ou os operadores = para comparar dois valores numéricos.
Êxito de Comando
É possível utilizar um comando incluído entre sinais de crase como o valor do parâmetro -c. O sistema executa o comando; se obtiver êxito, a cadeia é iniciada.

Exemplos

.run "BuildWindowsDriver"

O sistema inicia o projeto BuildWindowsDriver. O projeto de iniciação continua com a próxima etapa imediatamente.

.runwait "BuildWindowsDriver"

O sistema inicia o projeto BuildWindowsDriver. O sistema pausa o projeto de iniciação na etapa .runwait. Quando o projeto BuildWindowsDriver for concluído e aprovado, o status da etapa .runwait será configurado para aprovado.

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

O sistema executa o projeto Simple Echo se, e somente se, a variável HOMEDRIVE tiver o valor C.

Esse comando produz uma saída de log da seguinte maneira (na seção EXEC do log de etapas):
  • Quando HOMEDRIVE for C:
    .run Condition: 'C:' = 'C:' satisfied.
    
    Queueing Project "Simple Echo" on server [WinBox].
    Queued Build 'BUILD_202' of project 'Simple Echo'.
  • Quando HOMEDRIVE não for C:
    .run -c "$HOMEDRIVE=C:" "Simple Echo"     
    
    .run Condition: 'D:' = 'C:' unsatisfied, no project queued.

O sistema pode comparar numericamente as cadeias se elas contiverem números. Por exemplo, ele trata dos seguintes casos, conforme mostrado.

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

.run Condition: '12' < '42' satisfied. 
Queueing Project "Simple Echo" on server [WinBox]. 
Aguardando o build de .run (4411) ser concluído. 
build de .run em execução. 
build de .run concluído. 
Build 'BUILD_203' of project 'Simple Echo' completed. 

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

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

Os exemplos a seguir mostram como utilizar os comandos como condições. Note que o comando deve estar entre ambos, aspas e acento grave.

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

Env .run encontrou um erro durante a expansão da variável, parâmetro [`exit1`] expandido para []. 
A expansão retornou para a saída diferente de zero, o projeto não será enfileirado. 

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

A expansão retornou à saída zero, o projeto será enfileirado. 
Queueing Project "Simple Echo" on server [WinBox]. 
Queued Build 'BUILD_204' of project 'Simple Echo'.

Quando você usa .runwait e uma construção falha, o log se parece com o seguinte.

.runwait "Fail Build"

Queueing Project "Fail Build" on server [WinBox]. 
Aguardando build de .run (4413) ser concluído. 
build de .run em execução. 
build de .run concluído. 
Build 'BUILD_3' of project 'Fail Build' Failed, setting step status to fail.

Feedback