Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

[TFS] Qui a dit que la build compilait toujours la dernière version?

L’affirmation qui dit que la build compile toujours la dernière version est ni vrai ni fausse, juste incomplète: la build ne compile pas la dernière version du code au moment où la build récupère le code, mais au moment où elle démarre. Cela fait toute la différence et c’est tant mieux en fait!

 

Démonstration:

Je prends un projet dans l’état suivant: avant la build le dernier changeset archivé est le #13. Je lance la build. Remarquez quelle version est prise:

image

On en apprend pas beaucoup à ce moment là.

A ce moment même, j’archive un bout de code: c’est le changeset #14. La build a continué de son coté et son status changé entretemps:

image

La build ne prend pas en compte ce changeset et s’arrète au #13!

Explication:

Voilà ce qu’il s’est passé: avant que j’archive le changeset #14, la build a déterminé que le dernier changeset correspondant à la “Latest” était le #13. Donc quelque soient les nouveaux changesets créés, la version du source qui sera utilisée pour la build sera la dernière version jusqu’au changeset# 13. Donc mon changeset #14 n’est pas pris en compte. Cela est très utile pour plusieurs cas:

  • Imaginons une build avec 2 solutions: A et B. si la build commence à compiler la “latest” pour A puis la “latest” pour B si peut y avoir potentiellement un soucis si par exemple la “latest” de B prend en compte un changeset qui comprend des modifications de A ainsi que des modifications de B qui ont besoin des modifications de A. Le résultat est un plantage de la build. Pourtant lorsqu’on récupère la dernière version du code: tout marche!
  • Avec ce numéro de changeset la build peut être relancée plusieurs fois avec le même code source (changeset ou label). Pour cela il suffit d’aller dans les propriétés avancées lors du lancement de la build:

 

image

Build me baby one more time!

 

Un tout petit détail: et bien en fait cela ne marche pas! Il faut modifier le template de build car celui par défaut ignore complètement cette propriété. Pour cela, j’ai ajouté la tâche suivante dans le workflow:

image

Elle est ajoutée dans la séquence “Run On Agent” et la tâche SetBuildProperties a les propriétées suivantes:

 

image

Avec tout cela la version compilée par vos builds n’aura plus de secrets pour vous!

 

End Of Line

Publié lundi 11 avril 2011 09:00 par Miiitch
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01