Compartir a través de


Compilar y probar proyectos de Go

Azure DevOps Services

Use Azure Pipelines para compilar, probar e implementar automáticamente los proyectos de Go. En este artículo se muestra cómo crear una canalización que compile y pruebe el código de Go cada vez que inserte cambios en el repositorio.

Prerrequisitos

  • Una organización y proyecto de Azure DevOps. cree una de forma gratuita.
  • Un proyecto de Go en un repositorio de GitHub o Azure Repos. Si no tiene un proyecto, puede usar el repositorio de ejemplo proporcionado en este artículo.

Cree su primera canalización

¿No está familiarizado con Azure Pipelines? Pruebe esta sección antes de pasar a otras secciones.

Bifurque el repositorio siguiente en GitHub:

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

Inicio de sesión en Azure Pipelines

Inicie sesión en Azure Pipelines. Una vez que haya iniciado sesión, el explorador accederá a https://dev.azure.com/my-organization-name y aparecerá el panel de Azure DevOps.

  1. En un explorador, vaya a dev.azure.com e inicie sesión.
  2. Seleccione su organización.
  3. Para crear un nuevo proyecto, seleccione Nuevo proyecto o Crear proyecto si va a crear el primer proyecto de la organización.
  4. Escriba un nombre de proyecto.
  5. Seleccione la visibilidad del proyecto.
  6. Selecciona Crear.

Creación de la canalización

  1. En el proyecto de Azure DevOps, seleccione Canalizaciones en el menú de navegación izquierdo.

  2. Seleccione Nueva canalización o Crear canalización si esta canalización es la primera del proyecto.

  3. En la pantalla Where is your code (Dónde está el código ), seleccione GitHub.

  4. Puede que se le redirija a GitHub para iniciar sesión. Si es así, escriba sus credenciales de GitHub.

  5. En la pantalla Seleccionar un repositorio , seleccione el repositorio en el que se encuentra la aplicación .NET.

  6. Es posible que se le redirija a GitHub para instalar la aplicación Azure Pipelines. Si es así, seleccione Aprobar e instalar.

Cuando aparezca la pestaña Configurar , seleccione Ir. Aparece la nueva canalización, con el azure-pipelines.yml archivo YAML listo para configurarse. Consulte las secciones siguientes para obtener información sobre algunas de las formas más comunes de personalizar la canalización.

Entorno de compilación

Puede usar Azure Pipelines para compilar los proyectos de Go sin configurar ninguna infraestructura propia. Puede usar agentes de Linux, macOS o Windows para ejecutar las compilaciones.

Actualice el siguiente fragmento de código en azure-pipelines.yml el archivo para seleccionar la imagen adecuada.

pool:
  vmImage: 'ubuntu-latest'

Las versiones modernas de Go están preinstaladas en agentes hospedados por Microsoft. Para conocer las versiones exactas de Go preinstalada, consulte Agentes hospedados por Microsoft en Azure Pipelines.

Configurar Go

Importante

Compatibilidad con versiones de Go: El proyecto Go ya no mantiene versiones de Go anteriores a la 1.11 y estas versiones no reciben actualizaciones de seguridad. Los agentes hospedados por Microsoft solo incluyen versiones de Go admitidas actualmente. Si el proyecto usa Go 1.10 o versiones anteriores, actualice a Go 1.21 o posterior para beneficiarse de las mejoras de rendimiento, revisiones de seguridad y compatibilidad de módulos integrados. Consulte el historial de versiones de Go para obtener detalles de soporte técnico de versiones.

A partir de Go 1.11, ya no es necesario definir una $GOPATH variable de entorno, configurar un diseño de área de trabajo ni usar el dep módulo. La administración de dependencias ahora está integrada con módulos de Go.

Este YAML implementa el go get comando para descargar paquetes de Go y sus dependencias. A continuación, usa go build para generar el contenido publicado por la PublishBuildArtifacts@1 tarea.

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

Construir

Use go build para compilar el proyecto de Go. Agregue el siguiente fragmento de código a su archivo azure-pipelines.yml:

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

Prueba

Use go test para probar el módulo go y sus subdirectorios (./...). Agregue el siguiente fragmento de código a su archivo azure-pipelines.yml:

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

Cuando esté listo, confirme un nuevo archivo azure-pipelines.yml en el repositorio y actualice el mensaje de confirmación. Seleccione Guardar y ejecutar.

Botón Guardar y ejecutar en un nuevo flujo de trabajo de YAML

Si desea ver la canalización en acción, seleccione la compilación en la opción Trabajos en el panel de Azure Pipelines. Compilación de canalización en acción cuando se selecciona la opción Trabajos de Azure Pipelines.

Dado que el código parecía ser una buena coincidencia con la plantilla de Go, Azure Pipelines creó automáticamente la canalización.

Ahora ya tiene una canalización YAML en funcionamiento (azure-pipelines.yml) en el repositorio que está lista para que la personalice.

Cuando esté listo para realizar cambios en la canalización, selecciónela en la página Canalizaciones y, luego, haga clic en Editar para modificar el archivo azure-pipelines.yml.

Sugerencia

Para realizar cambios en el archivo YAML como se describe en este artículo, seleccione la canalización en la página Canalizaciones y, a continuación, seleccione Editar para abrir un editor para el azure-pipelines.yml archivo. Captura de pantalla que muestra cómo editar Azure Pipeline desde el panel con más opción seleccionada y Editar resaltada.

Compilación de una imagen e inserción en Azure Container Registry

Para la aplicación Go, también puede compilar una imagen e insertarla en un registro de contenedor.