生成和测试 Go 项目

Azure DevOps Services

使用管道自动生成和测试 Go 项目。

创建第一个管道

你是 Azure Pipelines 的新手? 如果是这样,我们建议先阅读本部分,然后继续阅读其他部分。

在 GitHub 创建以下存储库分支:

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

登录到 Azure Pipelines

登录到 Azure Pipelines。 登录后,浏览器会转到 https://dev.azure.com/my-organization-name 并显示 Azure DevOps 仪表板。

  1. 在浏览器中,转到 dev.azure.com 并登录。
  2. 选择你的组织。
  3. 通过选择新建项目创建项目(如果是在组织中创建第一个项目)来创建一个新项目。
  4. 输入项目名称
  5. 选择项目的可见性
  6. 选择创建
  1. 在浏览器中,转到 Azure DevOps Server。
  2. 选择你的集合。
  3. 通过选择新建项目创建项目(如果是在集合中创建第一个项目)来创建一个新项目。
  4. 输入项目名称
  5. 选择项目的可见性
  6. 选择创建

创建管道

  1. 登录到你的 Azure DevOps 组织,并转到你的项目。

  2. 转到“管道”,然后选择“新建管道”或是“创建管道”(如果是首次创建管道)。

  3. 完成向导中的各个步骤。首先选择 GitHub 作为源代码位置。

  4. 可能会重定向到 GitHub 进行登录。 如果是这样,请输入 GitHub 凭据。

  5. 看到存储库列表时,请选择你的存储库。

  6. 你可能会被重定向到 GitHub 来安装 Azure Pipelines 应用。 如果是,请选择批准并安装

出现“配置”选项卡时,选择“Go”。 新管道随即出现,可以配置其 azure-pipelines.yml YAML 文件。 请参阅以下部分来了解一些比较常见的管道自定义方法。

生成环境

可以使用 Azure Pipelines 生成 Go 项目,而无需设置你自己的任何基础结构。 可以使用 Linux、macOS 或 Windows 代理来运行你的生成。

更新 azure-pipelines.yml 文件中的以下代码片段以选择适当的映像。

pool:
  vmImage: 'ubuntu-latest'

Microsoft 托管的代理上预装了较新版本的 Go。 有关确切的 Go 预装版本,请参阅 Azure Pipelines 中 Microsoft 托管的代理

设置 Go

从 Go 1.11 开始,不再需要定义 $GOPATH 环境、设置工作区布局或使用 dep 模块。 依赖项管理现在是内置的。

此 YAML 实现 go get 命令以下载 Go 包及其依赖项。 然后它使用 go build 来生成通过 PublishBuildArtifacts@1 任务发布的内容。

trigger: 
 - main

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

生成

使用 go build 生成 Go 项目。 若要将以下代码片段添加到 azure-pipelines.yml 文件,请执行以下操作:

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

测试

使用 go test 测试 Go 模块及其子目录 (./...)。 若要将以下代码片段添加到 azure-pipelines.yml 文件,请执行以下操作:

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

准备就绪后,将新的 azure-pipelines.yml 文件提交到存储库并更新提交消息。 选择“保存并运行”。

新 YAML 管道中的“保存并运行”按钮

如果你要监视管道的运行情况,请在 Azure Pipelines 仪表板上的“作业”选项中选择该生成。 选择 Azure Pipelines“作业”选项时的管道生成运行情况。

因为你的代码看起来与 Go 模板非常匹配,因此我们自动创建了你的管道。

现在你的存储库中有一个正常工作的 YAML 管道 (azure-pipelines.yml),你可以对其进行自定义!

准备好更改管道后,请在“管道”页面中选择它,然后选择“编辑”来编辑 azure-pipelines.yml 文件。

提示

若要按照本文中所述更改 YAML 文件,请在“管道”页中选择管道,然后选择“编辑”打开 azure-pipelines.yml 文件的编辑器。 显示如何在仪表板中编辑 Azure 管道的屏幕截图,其中选择了“更多”选项并突出显示了“编辑”。

生成映像并推送到容器注册表

对于 Go 应用,还可以生成映像并将其推送到容器注册表

Visual Studio Code 的 Go 扩展 (Microsoft)