DutchWorkz Build- en Release Tools

DutchWorkz Build- en Release Tools

Binnen DutchWorkz en bij onze klanten wordt veelvuldig gebruik gemaakt van de Microsoft stack. Ontwikkelaars gebruiken Visual Studio, testers werken met Test Manager en Azure is de laatste jaren gemeengoed geworden. Als consultant werken sommige DutchWorkerz al lange tijd bij dezelfde klant, maar sommige DutchWorkerz geven de voorkeur aan kortere opdrachten om zodoende meer verschillende organisaties te leren kennen. Toch is er één gemeenschappelijke visie: we willen niet elke keer het wiel opnieuw uitvinden. Daarom is er gekozen om een DutchWorkz Toolbox op te zetten met herbruikbare componenten, in diverse werkgebieden.

De DutchWorkz Build- en Release Tools zijn een set met tools die door diverse collega’s zijn ontwikkeld. Door de broncode in Visual Studio Team Services te hosten is er geen enkel probleem om vanuit diverse locaties, met meerdere mensen aan deze software te werken. Onafhankelijk van het project geldt: bepaalde taken komen vaak terug en kunnen prima gedeeld worden tussen klanten en ontwikkelaars. Deze veelgebruikte build- en release-taken zijn daarom ook in de publieke Visual Studio Marketplace opgenomen.

Het maken van een build-taak (release-taken idem dito) voor TFS of VSTS is niet erg complex. Microsoft heeft prima documentatie gepubliceerd waarmee je in een paar stappen een eerste taak kan opzetten. Heb je dit eenmaal geprobeerd dan zal je al snel de smaak te pakken krijgen: dit inspireert enorm en voor je het weet heb je een set met taken die het leven in een DevOps-rol veel eenvoudiger zullen maken. Een build-taak zorgt er namelijk voor dat je op een dynamische manier herhalende taken kan configureren die tijdens een build worden uitgevoerd. Door slim gebruik te maken van de diverse controls (textbox, picklist, filepath en checkbox) kan je voorkomen dat je eind-gebruikers (doorgaans build-administrators en ontwikkelaars) fouten maken. Een kleine set met input-controls kan “achter de schermen” een complex stukje logica uitvoeren, waar je niemand mee wil “lastig vallen”. En wanneer je eenmaal de basis-begrippen van zo’n buildtaak in de vingers hebt dan kan je het nog mooier en beter maken, door webservices te integreren in je taken. Zo hebben wij een aantal taken geschreven die dynamisch gevulde picklists bevatten zodat het configureren van dit soort zaken altijd met geldige data gebeurt. De taken kunnen in zowel PowerShell als in NodeJS geschreven worden en welke smaak je voorkeur ook heeft: in de basis wordt alleen met json gewerkt, dus het geheel is lichtgewicht, duidelijk leesbaar en vooral portable.

Het schrijven van dit soort taken heeft wel een aantal uitdagingen: als je taken ook op VSTS bruikbaar moeten zijn dan moet je je er op instellen dat bepaalde zaken met nieuwe product-updates kunnen ‘omvallen’. Ook zijn er vaak gebruikers die jouw taak op een Hosted Agent zullen willen gebruiken. Dit zijn doorgaans redelijk uitgeklede buildagents waar je niet eenvoudig op kan troubleshooten en waarop je maar beter geen “niet-standaard tools” kan gebruiken. Het debuggen van een build-taak kan je op zich prima doen door óf een eigen agent te gebruiken (als je taak daarop is uitgerold dan kan je lokaal gewoon wijzigingen aanbrengen om uit te proberen) of door veelvuldig Write-Verbose toe te passen. Wanneer je een build start met variabele “System.Debug” en de waarde “True” dan worden al deze verbose-regels in de build-output getoond.

Wil je de DutchWorkz Build- en Release Tools zelf bekijken, bezoek dan onderstaande link om alle beschikbare taken te installeren of te downloaden. De broncode is vrij te bekijken en naar eigen inzicht uit te breiden.

Alle tools van DutchWorkz op de VSTS Marketplace

  • Open Source
8
60 views