2017-10-21 56 views
0

Nous utilisons TFSdeployer pour déclencher le déploiement de Build pour déployer la construction.Comment obtenir le nom de définition de construction en cours à l'aide de PowerShell dans TFS

Mais coincé avec comment obtenir la définition de construction de la construction actuelle pour laquelle nous essayons et ne pouvait pas réussir.

Comment obtenir le nom de définition de construction actuel en utilisant le script PowerShell ci-dessous au lieu d'un code fixe.

Scénario: Si je me déclenche à partir de Test1 BuildQuality, alors le premier code devrait fonctionner. Si je déclenche à partir de Test2 BuildQuality, alors le second code devrait fonctionner. (Sinon si le code fonctionne parfaitement)

$ TFSDeployerBuildDetail.DefinitionName essayé d'utiliser $ Build.Name

Mais cela semble être ne fonctionne pas, Toute aide est appréciée.

$BuildDefinitionName = "Test1" 
$PackagePath = "C:\extra\Package_Files" 
$DestPath1 ="C:\extra\Test1" 
$DestPath2 ="C:\extra\Test2" 
$logFile ="C:\extra\logs" 
$utilPath = "C:\util\" 


if ($BuildDefinitionName -eq "Test1") 
{ 

Write-Host "Testing 1st Copy" 

Add-Content -Path $logFile "Copying to Test1" 
& $utilPath\robocopy $PackagePath $DestPath1 /s >> $logFile 

} 

elseif($BuildDefinitionName -eq "Test2") 
{ 

Write-Host "Testing 2nd Copy" 
Add-Content -Path $logFile "Copying to Test2" 
& $utilPath\robocopy $PackagePath $DestPath2 /s >> $logFile 

} 
+0

Quelle version de TFS utilisez-vous? Utilisez-vous des versions XAML ou le système de génération Web? –

+0

J'utilise xaml build et ms build combinés avec tfs deployer pour l'automatisation de la construction et du déploiement. –

Répondre

1

Comme vous avez indiqué que vous utilisez XAML build, serait la variable d'environnement $env:TF_BUILD_BUILDDEFINITIONNAME.

L'autre réponse est correcte pour le nouveau système de construction Web.

+0

Merci comment est-ce que je l'enregistre dans des variables? –

+0

@JohnZachariah Pourquoi voulez-vous l'enregistrer dans des variables? C'est la variable prédéfinie, vous pouvez l'utiliser directement. –