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. Azure DevOps 組織にサインインし、プロジェクトに移動します。

  2. パイプラインに移動し、[新しいパイプライン] を選択します。

  3. 最初に、ソース コードの場所として GitHub を選択し、ウィザードの手順を実行します。

  4. サインインするために GitHub にリダイレクトされる場合があります。 その場合は、GitHub の資格情報を入力します。

  5. リポジトリの一覧が表示されたら、目的のリポジトリを選択します。

  6. 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 ファイルをリポジトリにコミットし、コミット メッセージを更新します。 [保存および実行] を選択します。

新しい YAML パイプラインの [保存して実行] ボタン

パイプラインの動作を監視する場合は、Azure Pipelines ダッシュボードの [ジョブ ] オプションでビルドを選択します。 [Azure Pipelines Jobs]\(Azure Pipelines ジョブ\) オプションが選択されている場合のパイプライン ビルドの動作。

コードは Go テンプレートに適しているように見えたので、パイプラインが自動的に作成されました。

これで、リポジトリに作業用の YAML パイプライン (azure-pipelines.yml) が作成され、カスタマイズする準備ができました。

パイプラインを変更する準備ができたら、[パイプライン] ページでパイプラインを選択し、ファイルをazure-pipelines.yml編集します。

ヒント

この記事の説明に従って YAML ファイルを変更するには、[ パイプライン ] ページでパイプラインを選択し、[ 編集] を選択してファイルのエディターを azure-pipelines.yml 開きます。 その他のオプションが選択され、[編集] が強調表示された状態でダッシュボードから Azure Pipeline を編集する方法を示すスクリーンショット。

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

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

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