web-dev-qa-db-fra.com

VSO (TFS) - récupère l'heure de la date actuelle sous forme de variable

Comment obtenir une date-heure actuelle et la transmettre en tant que variable à une tâche de déploiement?

8

Vous pouvez définir une variable avec n'importe quelle valeur, puis la modifier en tant que date actuelle. Étapes de détail comme ci-dessous:

Définir une variable en version

Supposons que le nom de la variable est time et que nous définissions la valeur par none Si vous devez utiliser la variable pour un environnement, vous pouvez la définir dans les variables d'environnement. Sinon, vous devriez le définir dans les variables Tab .  enter image description here

Ajoutez une tâche Power Shell au début des tâches de déploiement:

Type: script en ligne.

Script en ligne:

$date=$(Get-Date -Format g);
Write-Host "##vso[task.setvariable variable=time]$date"

 enter image description here

Remarque:

  • J'utilise le format de date en tant que MM/DD/YYYY HH:MM AM/PM ici. Vous pouvez utiliser d'autres formats date .
  • Pour la tâche de déploiement suivante, si vous souhaitez utiliser l'heure de la date actuelle, vous pouvez utiliser directement $(time).
20
Marina Liu - MSFT

Pour ceux qui utilisent Linux sur tfs:

Définir la variable

Assurez-vous qu’il est réglé sur "Réglable au moment de la mise en file d'attente"  enter image description here

Créez un script à la racine de votre référentiel

set-build.date.sh:

#!/usr/bin/env bash
DATE=$(date '+%d/%m/%Y %H:%M:%S') 
echo "##vso[task.setvariable variable=BUILD_DATE;]$DATE"

Les autres options sont listées ici .

Ajouter un script shell juste après l'obtention des sources

Tapez bash pour trouver cette tâche.

 enter image description here

C'est fait, vous pouvez utiliser la variable BUILD_DATE dans les tâches ultérieures :)

2
Kuba Ptak

Il existe maintenant une variable spécifique à une étape de publication nommée "Release.Deployment.StartTime" ou, si vous l'utilisez dans powershell, la variable d'environnement est "Release_Deployment_StartTime".

Il est au format UTC et le format est "aaaa-MM-jj HH: mm: ssZ"
ex: "2018-11-09 21: 23: 27Z"

REMARQUE: Cette variable est définie au moment où la phase de déploiement est démarrée . Ainsi, si vous avez des approbations préalables au déploiement, l'heure sera définie avant que toutes les approbations ne soient terminées. D'après mes tests, si vous avez plusieurs étapes qui s'exécutent en même temps, elles seront identiques, même si une étape attend l'autre en raison de la disponibilité limitée de l'agent.

J'utilise Azure DevOps en ligne, sans savoir si les installations TFS locales disposeront de cela.

0
JeffR