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 ダッシュボーが表示されます。
- ブラウザで dev.azure.com にアクセスし、サインインします。
- 自分の組織を選択します。
- [新しいプロジェクト] を選択して新しいプロジェクトを作成します。または、組織内で最初のプロジェクトを作成する場合は、[プロジェクトの作成] を選択します。
- プロジェクト名を入力します。
- プロジェクトの [可視性] を選択します。
- [作成] を選択します
- ブラウザーで、Azure DevOps Server にアクセスします。
- コレクションを選択します。
- [新しいプロジェクト] を選択して新しいプロジェクトを作成します。または、コレクション内で最初のプロジェクトを作成する場合は、[プロジェクトの作成] を選択します。
- プロジェクト名を入力します。
- プロジェクトの [可視性] を選択します。
- [作成] を選択します
パイプラインを作成する
Azure DevOps 組織にサインインし、プロジェクトに移動します。
[パイプライン] に移動し、最初のパイプラインを作成する場合は [新しいパイプライン] または [[パイプラインの作成] を選択します。
最初に、ソース コードの場所として GitHub を選択し、ウィザードの手順を実行します。
サインインするために GitHub にリダイレクトされる場合があります。 その場合は、GitHub の資格情報を入力します。
リポジトリの一覧が表示されたら、目的のリポジトリを選択します。
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 ファイルをリポジトリにコミットし、コミット メッセージを更新します。 [保存および実行] を選択します。
動作中のパイプラインを監視するには、Azure Pipelines ダッシュボードの [ジョブ] オプションでビルドを選択します。
コードが Go テンプレートに適しているように見えるため、パイプラインが自動的に作成されました。
これで、リポジトリで YAML パイプライン (azure-pipelines.yml
) が稼働し、カスタマイズできるようになりました。
パイプラインを変更する準備ができたら、[パイプライン] ページでそのパイプラインを選択し、azure-pipelines.yml
ファイルを編集します。
ヒント
この記事の説明に従って YAML ファイルを変更するには、[パイプライン] ページでパイプラインを選択し、[編集] を選択して、azure-pipelines.yml
ファイルのエディターを開きます。
イメージをビルドしてコンテナー レジストリにプッシュする
Go アプリの場合は、イメージをビルドしてコンテナー レジストリにプッシュすることもできます。
関連する拡張機能
Visual Studio Code 用の Go 拡張機能 (Microsoft)