Compilación y prueba de proyectos de Go

Azure Pipelines

Use una canalización para compilar y probar automáticamente los proyectos de Go.

Cree su primera canalización

¿No está Azure Pipelines? Si es así, se recomienda probar esta sección antes de pasar a otras secciones.

Bifurcar este repositorio 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.

En la organización seleccionada, cree un proyecto. Si no tiene ningún proyecto en la organización, aparecerá la pantalla Cree un proyecto para empezar. De lo contrario, seleccione el botón Crear proyecto en la esquina superior derecha del panel.

Creación de la canalización

  1. Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.

  2. Vaya a Pipelinesy, a continuación, seleccione Nueva canalización.

  3. Siga los pasos del asistente y seleccione primero GitHub como ubicación del código fuente.

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

  5. Cuando aparezca la lista de repositorios, seleccione el que corresponda.

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

Cuando aparezca la pestaña Configurar, seleccione Ir.

  1. Cuando aparezca la nueva canalización, echa un vistazo a YAML para ver lo que hace. Cuando esté listo, seleccione Guardar y ejecute.

    Botón Guardar y ejecutar en una nueva canalización de YAML

  2. Se le pedirá que confirme un nuevo archivo azure-pipelines.yml en el repositorio. Una vez satisfecho con el mensaje, seleccione Guardar y ejecutar de nuevo.

    Si desea ver la canalización en acción, seleccione el trabajo de compilación.

    Acaba de crear y ejecutó una canalización que creamos automáticamente, porque el código parece ser una buena coincidencia para la plantilla de Go.

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

  3. Cuando esté listo para realizar cambios en la canalización, selecciónelo en la página de Pipelines y, a continuación, edite el archivo.

Consulte las secciones siguientes para obtener información sobre algunas de las formas más comunes de personalizar la canalización.

Sugerencia

Para realizar cambios en el archivo YAML como se describe en este tema, seleccione la canalización en Pipelines y, a continuación, seleccione Editar para abrir un editor para el archivo.

Entorno de compilación

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

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

pool:
  vmImage: 'ubuntu-latest'

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

Configuración de Go

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

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

trigger: 
 - master

pool:
   vmImage: 'ubuntu-latest'

steps: 
- task: GoTool@0
  inputs:
    version: '1.13.5'
- 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

Build

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

- 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 al azure-pipelines.yml archivo:

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

Compilación de una imagen e inserción en el registro de contenedor

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

Extensión go para Visual Studio Code (Microsoft)