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. Azure Pipelines アプリをインストールするために、GitHub にリダイレクトされる場合があります。 その場合は、[承認してインストール] を選択します。

[構成] タブが表示されたら、[Go] を選択します。 新しいパイプラインが表示され、azure-pipelines.yml YAML ファイルを構成する準備が整います。 パイプラインをカスタマイズするいくつかの一般的な方法については、次のセクションを参照してください。

ビルド環境

Azure Pipelines を使用すると、独自のインフラストラクチャを設定せずに Go プロジェクトをビルドできます。 Linux、macOS、または Windows エージェントを使用してビルドを実行できます。

azure-pipelines.yml ファイル内の次のスニペットを更新して、適切なイメージを選択します。

pool:
  vmImage: 'ubuntu-latest'

最新バージョンの Go は、Microsoft ホステッド エージェントにプレインストールされています。 プレインストールされた Go の正確なバージョンについては、「Azure Pipelines の Microsoft ホステッド エージェント」を参照してください。

Go の設定

Go 1.11 以降では、$GOPATH 環境を定義したり、ワークスペース レイアウトを設定したり、dep モジュールを使用したりする必要がなくなりました。 現在は依存関係管理が組み込まれています。

この YAML では、Go パッケージとその依存関係をダウンロードする go get コマンドが実装されます。 その後、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

Build

Go プロジェクトをビルドするには、go build を使用します。 次のスニペットを azure-pipelines.yml ファイルに追加します。

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

テスト

go モジュールとそのサブディレクトリ (./...) をテストするには、go test を使用します。 次のスニペットを 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 Pipeline を編集する方法を示すスクリーンショット。追加のオプションが選択され、[編集] が強調表示されています。

イメージをビルドしてコンテナー レジストリにプッシュする

Go アプリの場合は、イメージをビルドしてコンテナー レジストリにプッシュすることもできます。

Visual Studio Code 用の Go 拡張機能 (Microsoft)