Delen via


Go-projecten bouwen en testen

Azure DevOps Services

Gebruik Azure Pipelines om uw Go-projecten automatisch te bouwen, testen en implementeren. In dit artikel leest u hoe u een pijplijn maakt waarmee uw Go-code wordt gebouwd en getest telkens wanneer u wijzigingen naar uw opslagplaats pusht.

Vereiste voorwaarden

  • Een Azure DevOps-organisatie en -project. Maak gratis een account.
  • Een Go-project in een GitHub- of Azure Repos-opslagplaats. Als u geen project hebt, kunt u de voorbeeldopslagplaats in dit artikel gebruiken.

Uw eerste pijplijn maken

Nieuw bij Azure Pipelines? Probeer deze sectie voordat u verdergaat met andere secties.

Fork het volgende repository op GitHub:

https://github.com/MicrosoftDocs/pipelines-go

Aanmelden bij Azure Pipelines

Meld u aan bij Azure Pipelines. Nadat u zich hebt aangemeld, gaat uw browser naar https://dev.azure.com/my-organization-name en geeft u uw Azure DevOps-dashboard weer.

  1. Ga in een browser naar dev.azure.com en meld u aan.
  2. Selecteer uw organisatie.
  3. Maak een nieuw project door Nieuw project of Project maken te selecteren als u het eerste project in de organisatie maakt.
  4. Voer een projectnaam in.
  5. Selecteer de zichtbaarheid voor uw project.
  6. Klik op Creëren.

De pijplijn maken

  1. Selecteer In uw Azure DevOps-project pijplijnen in het linkernavigatiemenu.

  2. Selecteer Nieuwe pijplijn of Pijplijn maken als deze pijplijn de eerste is in het project.

  3. Selecteer GitHub in het scherm Waar is uw code.

  4. U wordt mogelijk omgeleid naar GitHub om u aan te melden. Voer in dat geval uw GitHub-referenties in.

  5. Selecteer in het scherm Een opslagplaats selecteren de opslagplaats waarin uw .NET-app zich bevindt.

  6. U wordt mogelijk omgeleid naar GitHub om de Azure Pipelines-app te installeren. Als dat het zo is, selecteert u Goedkeuren en installeren.

Wanneer het tabblad configureren wordt weergegeven, selecteert u Go-. De nieuwe pijplijn wordt weergegeven, met het azure-pipelines.yml YAML-bestand dat klaar is om te worden geconfigureerd. Zie de volgende secties voor meer informatie over een aantal veelgebruikte manieren om uw pijplijn aan te passen.

Omgeving bouwen

U kunt Azure Pipelines gebruiken om uw Go-projecten te bouwen zonder een eigen infrastructuur in te stellen. U kunt Linux-, macOS- of Windows-agents gebruiken om uw builds uit te voeren.

Werk het volgende fragment in het azure-pipelines.yml-bestand bij om de juiste afbeelding te selecteren.

pool:
  vmImage: 'ubuntu-latest'

Moderne versies van Go zijn vooraf geïnstalleerd op door Microsoft gehoste agents. Raadpleeg voor de exacte versies van vooraf geïnstalleerde Go de door Microsoft gehoste agents in Azure Pipelines.

Go instellen

Belangrijk

Ondersteuning voor Go-versies: Het Go-project onderhoudt Go-versies niet langer ouder dan 1.11 en deze versies ontvangen geen beveiligingsupdates. Door Microsoft gehoste agents bevatten alleen ondersteunde Go-versies. Als uw project Gebruikmaakt van Go 1.10 of eerder, voert u een upgrade uit naar Go 1.21 of hoger om te profiteren van ingebouwde moduleondersteuning, beveiligingspatches en prestatieverbeteringen. Zie de Go-releasegeschiedenis voor versieondersteuningsdetails.

Vanaf Go 1.11 hoeft u geen omgevingsvariabele $GOPATH meer te definiëren, een werkruimte-indeling in te stellen of de module dep te gebruiken. Afhankelijkheidsbeheer is nu ingebouwd met Go-modules.

Met deze YAML wordt de go get-opdracht geïmplementeerd om Go-pakketten en hun afhankelijkheden te downloaden. Vervolgens gebruikt het go build om de inhoud te genereren die door de PublishBuildArtifacts@1 taak wordt gepubliceerd.

trigger: 
 - main

pool:
   vmImage: 'ubuntu-latest'

steps: 
- task: GoTool@0
  inputs:
    version: '1.22'  # Use a currently supported Go version
- task: Go@0
  inputs:
    command: 'get'
    arguments: '-d'
    workingDirectory: '$(System.DefaultWorkingDirectory)'
- task: Go@0
  inputs:
    command: 'build'
    workingDirectory: '$(System.DefaultWorkingDirectory)'
- task: CopyFiles@2
  inputs:
    TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
     artifactName: drop

Bouwen

Gebruik go build om uw Go-project te bouwen. Voeg het volgende fragment toe aan uw azure-pipelines.yml bestand:

- task: Go@0
  inputs:
    command: 'build'
    workingDirectory: '$(System.DefaultWorkingDirectory)'

Testen

Gebruik go test dit om uw Go-module en de bijbehorende submappen (./...) te testen. Voeg het volgende fragment toe aan uw azure-pipelines.yml bestand:

- task: Go@0
  inputs:
    command: 'test'
    arguments: '-v'
    workingDirectory: '$(System.DefaultWorkingDirectory)'

Wanneer u klaar bent, voert u een nieuw azure-pipelines.yml-bestand door naar uw opslagplaats en werkt u het doorvoerbericht bij. Selecteer Opslaan en uitvoeren.

Opslaan en uitvoeren-knop in een nieuwe YAML-pijplijn

Als u de pijplijn in actie wilt bekijken, kiest u de build in het gedeelte Taken op uw Azure Pipelines-dashboard. De pijplijn wordt gebouwd wanneer de optie voor Azure Pipelines-taken is geselecteerd.

Omdat uw code een goede overeenkomst leek te zijn voor de Go-sjabloon, heeft Azure Pipelines automatisch uw pijplijn aangemaakt.

U hebt nu een werkende YAML-pijplijn (azure-pipelines.yml) in uw opslagplaats die u kunt aanpassen.

Wanneer u klaar bent om wijzigingen aan te brengen in uw pijplijn, selecteert u deze op de pagina Pijplijnen en het azure-pipelines.yml-bestand bewerken.

Hint

Als u wijzigingen wilt aanbrengen in het YAML-bestand zoals beschreven in dit artikel, selecteert u de pijplijn in pijplijnen pagina en selecteert u vervolgens Bewerken om een editor voor het azure-pipelines.yml-bestand te openen. schermopname waarin wordt getoond hoe u de Azure-pijplijn kunt bewerken vanuit het dashboard, met meer opties geselecteerd en Bewerken gemarkeerd.

Een image bouwen en pushen naar de Azure Container Registry

Voor uw Go-app kunt u ook een image bouwen en deze naar een containerregister pushen.