2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitHubのReleaseを起点にしてCodePipelineを走らせる方法

Posted at

GitHubのReleaseを起点にしてCodePipelineを走らせる方法

参考(AWS)

手順

  • 前提として、Pipelineのソースに現状でGitHub(webhook)が設定されていること
  • AWSのCLIが利用可能であるEC2の踏み台などが用意されている(ログイン済みCLIがあればローカルでも良い)
  • リージョンは適宜書き換えてください

1. AWS用の踏み台EC2サーバーにログインする

ssh fumidai.com

2. 現在AWS CodePipelineに設定されてるすべてのWebhookを取得する

以下のコマンドを実行しする
aws codepipeline list-webhooks --region "ap-northeast-1"
image.png

3. 対象のWebhookの選択

表示されたJSONのwebhooks配列の中から今回変更したいWebhookを選んでurlを含みそのWebhook全体を控える(後で使う)(targetPipelineの値などでどれが対象か判別する)控えたurlの例 ⇢ https://ap-northeaset-1.webhooks.aws/trigger?t=testurl
画像

4. GitHubの設定を開く

GitHubのWebhookを設定しているリポジトリに移動し、リポジトリの Settings > Webhooksを開く
image.png

5. 対象のWebhookの選択

設定されているWebhookの一覧が表示されているので、その中から目的のWebhookを選んで開く
(開いてPayloadURLを上記で控えたURLと比較する)
image.png

6. Webhookの設定を更新する

  • 目的のWebhookの設定(Webhooks/Manage Webhook)を開き、設定項目Which events would you like to trigger this webhook?の値を、Let me select individual eventsに変更する(現状はJust a push eventのはず)
    image.png

  • 下に大量の選択肢が表示されるので、Pushesのチェックを外し、Releasesのチェックを入れる
    image.png

7. 保存

  • 下の方にUpdate webhookボタンがあるのでセーブする

image.png

このままだとWebhookは発行されても、AWS側でプッシュイベント以外がフィルタリングされているのでその設定を変更する

8. AWS側の設定用ファイルを用意する

  • AWS CLIに戻り、設定アップデート用の適当なファイルを用意する
    nano webhook_updater.json

(別にvimでも何でもいいです)

  • 上記のファイルの中身に、アップデート用のJSONを記述する(取得した際のオブジェクトとは形式が違うので注意)
{
  "webhook":{
    "authenticationConfiguration": {
      "SecretToken": "さっき取得したWebhookのSecretToken"
    },
    "name": "さっき取得したWebhookの名前 ⇢ 例pipeline--Source--unotovivepipeline--1234567890",
    "authentication": "GITHUB_HMAC",
    "targetPipeline": "さっき取得した(略",
    "targetAction": "Source",
    "filters": [
      {
        "jsonPath": "$.action",      // ここが変更になった箇所、Webhookのフィルターを変えている
        "matchEquals": "published"  // ここが変更になった箇所、Webhookのフィルターを変えている
      }
    ]
  }
}
  • 保存する。

9. AWSCLIで設定を書き換える

aws codepipeline put-webhook --cli-input-json file://webhook_updater.json --region "ap-northeast-1"

10. 終わり

リリースを発行してパイプラインが走れば成功!!!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?