DevOpsZelf een Azure DevOps Custom Extension bouwen

Azure DevOps komt met een grote set aan taken die gebruikt kunnen worden om een build en/of release pipeline op te zetten. Deze taken variëren van het kopiëren van bestanden tot het opbouwen van resources in Azure. Buiten deze basisset van Microsoft, is er ook een Visual Studio Marketplace waar taken gedownload kunnen worden. Veel van deze taken zijn door mensen buiten Microsoft gebouwd en beschikbaar gesteld.

Visual Studio Marketplace - Azure DevOps extensions

Wat nu als je op zoek bent naar een taak die niet bestaat? Dan kun je zelf een script schrijven voor de stap die je wilt uitvoeren. Maar als je dit script in meerdere pipelines wilt gebruiken, bestaat er een reële kans dat het script niet overal wordt bijgewerkt in deze pipelines als er wijzigingen zijn.

De beste manier om dit te voorkomen, is om je eigen Azure Devops Extension te bouwen. In deze extension kun je dit script omtoveren tot taak, zodat je zeker weet dat de stap die je wilt uitvoeren in alle projecten en pipelines op dezelfde manier wordt uitgevoerd.

Waar bestaat zo’n custom extension uit?

Voor het bouwen van een extension zijn een aantal bestanden en mappen nodig.

  • Extension Manifest: Hier wordt bijgehouden welke taken er worden geleverd met de extensie.
  • Extension Icon: Het icoon dat de gebruikers zien.
  • Task1: Folder met scripts, icons en de json die nodig zijn voor het draaien van de taak.
    • Task.json: Hier worden de velden gedefinieerd die het script nodig heeft om alle informatie bij elkaar te verzamelen.
    • Icon.png: Het icoon dat in de pipeline getoond wordt
    • Script.<ext>: Het script dat uitgevoerd moet worden.

Extension Manifest

Een versie van een extension bestaat uit 3 lagen. Major.Minor.Patch. Een goede vuistregel is dat de Major wordt opgehoogd zodra een invoerveld wordt toegevoegd, verwijderd of gewijzigd binnen de taak. De taak versie die een eindgebruiker kan kiezen is gekoppeld aan de Major. Op deze manier breekt de pipeline niet en kan de gebruiker zelf kiezen wanneer de nieuwe versie van de taak in gebruik wordt genomen.

Zelf een Azure Devops Custom Extension bouwen

Publiceren

Nadat je extension klaar is, kun je deze uploaden in de marketplace. Het publiceren kan private, zodat alleen Azure DevOps accounts die specifiek door jou zijn aangemeld het kunnen gebruiken, of je kunt je extension publiekelijk beschikbaar maken voor iedereen.

Voor meer informatie heeft Microsoft een aantal handleidingen geschreven:
Bouw je eigen extension
De mappenstructuur binnen de extension

In deel 2 van deze blogserie laat ik zien hoe je een eenvoudige Azure DevOps extension bouwt. In het derde deel ga ik vervolgens in op hoe je een geavanceerde extension uitwerkt.

Peter Barendse, DevOps Engineer

Download ons eBook "Ultimate guide to Azure DevOps"