Comment obtenir une date-heure actuelle et la transmettre en tant que variable à une tâche de déploiement?
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:
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 .
Type: script en ligne.
Script en ligne:
$date=$(Get-Date -Format g);
Write-Host "##vso[task.setvariable variable=time]$date"
MM/DD/YYYY HH:MM AM/PM
ici. Vous pouvez utiliser d'autres formats date .$(time)
.Pour ceux qui utilisent Linux sur tfs:
Assurez-vous qu’il est réglé sur "Réglable au moment de la mise en file d'attente"
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 .
Tapez bash pour trouver cette tâche.
C'est fait, vous pouvez utiliser la variable BUILD_DATE
dans les tâches ultérieures :)
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.