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 ダッシュボーが表示されます。
選択した組織内で、"プロジェクト" を作成します。 組織にプロジェクトがない場合、 [プロジェクトを作成して開始します] 画面が表示されます。 それ以外の場合は、ダッシュボードの右上隅にある [ 新しいプロジェクト ] ボタンを選択します。
パイプラインを作成する
Azure DevOps 組織にサインインし、プロジェクトに移動します。
パイプラインに移動し、[新しいパイプライン] を選択します。
最初に、ソース コードの場所として GitHub を選択し、ウィザードの手順を実行します。
サインインするために GitHub にリダイレクトされる場合があります。 その場合は、GitHub の資格情報を入力します。
リポジトリの一覧が表示されたら、目的のリポジトリを選択します。
Azure Pipelines アプリをインストールするために、GitHub にリダイレクトされる場合があります。 その場合は、[承認してインストール] を選択します。
[構成] タブが表示されたら、[移動] を選択します。 新しいパイプラインが表示され、YAML ファイルを azure-pipelines.yml
構成する準備が整います。 パイプラインをカスタマイズする一般的な方法の一部については、次のセクションを参照してください。
ビルド環境
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 get
Go パッケージとその依存関係をダウンロードするコマンドを実装します。 その後、タスクと共PublishBuildArtifacts@1
に発行されるコンテンツを生成するために使用go build
されます。
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 ファイルをリポジトリにコミットし、コミット メッセージを更新します。 [保存および実行] を選択します。
パイプラインの動作を監視する場合は、Azure Pipelines ダッシュボードの [ジョブ ] オプションでビルドを選択します。
コードは Go テンプレートに適しているように見えたので、パイプラインが自動的に作成されました。
これで、リポジトリに作業用の YAML パイプライン (azure-pipelines.yml
) が作成され、カスタマイズする準備ができました。
パイプラインを変更する準備ができたら、[パイプライン] ページでパイプラインを選択し、ファイルをazure-pipelines.yml
編集します。
ヒント
この記事の説明に従って YAML ファイルを変更するには、[ パイプライン ] ページでパイプラインを選択し、[ 編集] を選択してファイルのエディターを azure-pipelines.yml
開きます。
イメージをビルドしてコンテナー レジストリにプッシュする
Go アプリの場合は、 イメージをビルド して コンテナー レジストリにプッシュすることもできます。
関連する拡張機能
Visual Studio Code の Go 拡張機能 (Microsoft)