翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: Git タグを使用してパイプラインを開始する
このチュートリアルでは、GitHub リポジトリに接続するパイプラインを作成し、ソースアクションのトリガータイプとして Git タグを設定します。コミット時に Git タグが作成されると、パイプラインが開始されます。この例では、タグ名の構文に基づいてタグをフィルタ処理するパイプラインの作成方法を示しています。glob パターンを使用したフィルタ処理の詳細については、「構文での glob パターンの使用」を参照してください。
重要
パイプライン作成の一環として、CodePipeline は、ユーザーが指定した S3 アーティファクトバケットをアーティファクトとして使用します (これは S3 ソースアクションで使用するバケットとは異なります)。S3 アーティファクトバケットがパイプラインのアカウントとは異なるアカウントにある場合は、S3 アーティファクトバケットが によって所有 AWS アカウント されており、安全で信頼できることを確認してください。
このチュートリアルでは、CodeStarSourceConnection アクションタイプを使用して GitHub に接続します。
注記
この機能は、アジアパシフィック (香港)、アフリカ (ケープタウン)、中東 (バーレーン)、または欧州 (チューリッヒ) リージョンでは利用できません。利用可能なその他のアクションについては、「CodePipeline との製品とサービスの統合」を参照してください。欧州 (ミラノ) リージョンでのこのアクションに関する考慮事項については、「CodeStarSourceConnection (Bitbucket Cloud、GitHub、GitHub Enterprise Server、GitLab.com、および GitLab セルフマネージドアクションの場合)」の注意を参照してください。
トピック
前提条件
開始する前に、以下を実行する必要があります。
-
GitHub アカウントで GitHub リポジトリを作成します。
-
GitHub の認証情報を準備してください。を使用して接続 AWS マネジメントコンソール を設定すると、GitHub 認証情報でサインインするように求められます。
ステップ 1: CloudShell を開いてリポジトリを複製する
コマンドラインインターフェイスを使用して、リポジトリの複製、コミット、タグの追加を行うことができます。このチュートリアルでは、コマンドラインインターフェイス用に CloudShell インスタンスを起動します。
-
AWS マネジメントコンソールにサインインします。
-
上部のナビゲーションバーで、 AWS アイコンを選択します。 AWS マネジメントコンソール のメインページが表示されます。
-
上部のナビゲーションバーで、 AWS CloudShell アイコンを選択します。CloudShell が開きます。CloudShell 環境が作成されるまで待ちます。
注記
CloudShell アイコンが表示されない場合は、CloudShell でサポートされているリージョンにいることを確認してください。このチュートリアルは、米国西部 (オレゴン) リージョンにいることを前提としています。
-
GitHub で、目的のリポジトリに移動します。[コード] を選択してから、[HTTPS] を選択します。パスをコピーします。Git リポジトリのクローンを作成するアドレスがクリップボードにコピーされます。
-
次のコマンドを実行してリポジトリを複製します。
git clone https://github.com/<account>/MyGitHubRepo.git -
プロンプトが表示されたら、GitHub アカウントの
UsernameとPasswordを入力します。Passwordエントリには、アカウントのパスワードではなく、ユーザーが作成したトークンを使用する必要があります。
ステップ 2: Git タグでトリガーするパイプラインを作成する
このセクションでは、以下のアクションを使用してパイプラインを作成します。
-
Bitbucket リポジトリとアクションへの接続を持つソースステージ。
-
ビルドアクションを含む AWS CodeBuild ビルドステージ。
ウィザードを使用してパイプラインを作成するには
-
CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home
) にサインインします。 -
[ようこそ] ページ、[開始方法] ページ、または [パイプライン] ページで、[パイプラインの作成] を選択します。
-
[ステップ 1: 作成オプションを選択する] ページの [作成オプション] で、[カスタムパイプラインを構築する] オプションを選択します。[次へ] を選択します。
-
[ステップ 2: パイプラインの設定を選択する] で、[パイプライン名] に「
MyGitHubTagsPipeline」と入力します。 -
[パイプラインのタイプ] で、デフォルトの選択を [V2] のままにします。パイプラインのタイプによって特徴および価格が異なります。詳細については、「パイプラインのタイプ」を参照してください。
-
[サービスロール] で、[New service role (新しいサービスロール)] を選択します。
注記
既存の CodePipeline サービスロールを代わりに使用する場合は、サービスロールポリシーに対する
codestar-connections:UseConnectionIAM アクセス許可を追加したことを確認してください。CodePipeline サービスロールの手順については、「Add permissions to the the CodePipeline service role」を参照してください。 -
[詳細設定] では、デフォルト値のままにします。アーティファクトストアで、[Default location] (デフォルトの場所)を選択し、パイプライン用に選択したリージョン内のパイプラインのデフォルトのアーティファクトストア (デフォルトとして指定された Amazon S3 アーティファクトバケットなど) を使用します。
注記
これはソースコードのソースバケットではありません。パイプラインのアーティファクトストアです。パイプラインごとに S3 バケットなどの個別のアーティファクトストアが必要です。
[次へ] を選択します。
-
[ステップ 3: ソースステージを追加する] ページで、ソースステージを追加します。
-
ソースプロバイダーで、GitHub (GitHub GitHub アプリ経由) を選択します。
-
接続 で、既存の接続を選択するか、新規の接続を作成します。GitHub ソースアクション用の接続を作成または管理する方法については、GitHub コネクション を参照してください。
-
リポジトリ名 で、GitHub リポジトリの名前を選択します。
-
[デフォルトブランチ] で、パイプラインを手動で開始する場合、または Git タグではないソースイベントで開始する場合に指定するブランチを選択します。変更元がトリガーでない場合やパイプラインの実行が手動で開始された場合は、デフォルトブランチの HEAD コミットが変更として使用されます。
-
Webhook イベントで、フィルタータイプでタグを選択します。
タグまたはパターンフィールドに、 と入力します
release*。重要
Git タグのトリガータイプで開始されるパイプラインは、WebhookV2 イベントに対して設定されます。パイプラインの開始に Webhook イベント (すべてのプッシュイベントに対して変更検出を行う) は使用されません。
[次へ] を選択します。
-
-
[Add build stage (ビルドステージの追加)] で、ビルドステージを追加します。
-
[ビルドプロバイダ] で、[AWS CodeBuild] を選択します。[リージョン] をデフォルトでパイプラインのリージョンにすることを許可します。
-
[プロジェクトを作成] を選択します。
-
[プロジェクト名] に、このビルドプロジェクトの名前を入力します。
-
[環境イメージ] で、[Managed image (マネージド型イメージ)] を選択します。[Operating system] で、[Ubuntu] を選択します。
-
[ランタイム] で、[Standard (標準)] を選択します。[イメージ] で、[aws/codebuild/standard:5.0] を選択します。
-
[サービスロール] で、[New service role (新しいサービスロール)] を選択します。
注記
CodeBuild サービスロールの名前を書き留めます。このチュートリアルの最後のステップでは、ロール名が必要になります。
-
[Buildspec] の Build specifications (ビルド仕様) で、[Insert build commands] (ビルドコマンドの挿入) を選択します。エディタに切り替え を選択し、ビルドコマンド に以下を貼り付けます。
version: 0.2 #env: #variables: # key: "value" # key: "value" #parameter-store: # key: "value" # key: "value" #git-credential-helper: yes phases: install: #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions. #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails. runtime-versions: nodejs: 12 #commands: # - command # - command #pre_build: #commands: # - command # - command build: commands: - #post_build: #commands: # - command # - command artifacts: files: - '*' # - location name: $(date +%Y-%m-%d) #discard-paths: yes #base-directory: location #cache: #paths: # - paths -
[Continue to CodePipeline ] (CodePipeline に進む) を選択します。CodePipeline コンソールに戻り、ビルドコマンドを使用して設定する CodeBuild プロジェクトが作成されます。ビルドプロジェクトでは、サービスロールを使用して AWS のサービス アクセス許可を管理します。このステップには数分かかる場合があります。
-
[次へ] を選択します。
-
-
ステップ 5: テストステージを追加し、テストステージをスキップを選択し、もう一度スキップを選択して警告メッセージを受け入れます。
[次へ] を選択します。
-
ステップ 6: デプロイステージの追加ページで、デプロイステージをスキップを選択し、もう一度スキップを選択して警告メッセージを受け入れます。[次へ] を選択します。
-
ステップ 7: 確認で、パイプラインの作成を選択します。
ステップ 3: リリースに対するコミットにタグを付ける
パイプラインを作成し、Git タグを指定した後、GitHub リポジトリ内のコミットにタグを付けることができます。以下の手順では、コミットに release-1 タグを付けます。Git リポジトリ内の各コミットには、それぞれ一意の Git タグが必要です。コミットを選択してタグを付けると、さまざまなブランチからの変更をパイプラインのデプロイに組み込むことができます。release というタグ名は、GitHub のリリースの概念には当てはまりません。
-
コピーしたコミット ID のうち、タグを付けるものを参照します。各ブランチのコミットを表示するには、CloudShell ターミナルで以下のコマンドを入力して、タグを付けるコミット ID を取得します。
git log -
CloudShell ターミナルで、コミットにタグを付け、元のリポジトリにプッシュするコマンドを入力します。コミットにタグを付けた後、git Push コマンドを使用してタグを元のリポジトリにプッシュします。以下の例では、次のコマンドを入力して、ID
49366bdの 2 番目のコミットにrelease-1タグを使用しています。このタグはパイプラインのrelease*タグフィルタによって処理されて、パイプラインの実行が開始されます。git tag release-1 49366bdgit push origin release-1
ステップ 4: 変更をリリースしてログを表示する
-
パイプラインが正常に実行されたら、デプロイステージで [ログの表示] を選択します。
[ログ] で、CodeBuild のビルド出力を表示します。このコマンドは、入力された変数の値を出力します。
-
[履歴] ページで、[トリガー] 列を表示します。トリガータイプ GitTag : release-1 を表示します。