Open4

BacklogからCIしたい

to_hiraito_hirai

概要

運用上の理由でCodeCommitやGithubを使えないことがありました。
あくまでBacklogからのCI構築を考えます。

要件整理

  • AWSを利用
  • 開発リポジトリはBacklogを利用
  • 可能な限り自動化し、git pushトリガーによるビルド & リリースを行いたい

Backlogから直接トリガー

  1. Backlog Webhook
  2. API Gateway
  3. CodeBuild

詳細まとまったら記事化する。

to_hiraito_hirai

Backlog Webhookデータ形式

{
  "before": push前のコミット,
  "after": push後のコミット,
  "ref": 参照
  "repository": {
    "url": リポジトリのURL,
    "name": リポジトリ名,
    "description": リポジトリの説明,
  },
  "revisions": [{
    "id": コミットのID,
    "url": コミットのURL,
    "author": {
      "email": コミットした人のメールアドレス,
      "name": コミットした人の名前
    },
    "message": コミットメッセージ,
    "timestamp": タイムスタンプ,
    "added": [ 追加されたファイル ],
    "removed": [ 削除されたファイル ],
    "modified": [ 修正されたファイル ],
  }]
}

参考

to_hiraito_hirai

Backlog Webhookの送信IP一覧

54.248.107.22
54.248.105.89
54.238.168.195
52.192.66.90
54.65.251.183
54.250.148.49
35.166.55.243
50.112.242.159
52.199.112.83
35.73.201.244
35.72.166.154
35.73.143.41
35.74.201.20
52.198.115.185
35.165.230.177
18.236.6.123

参考

to_hiraito_hirai

Serverless Framework使って

  1. API Gateway
  2. Lambda
  3. CodeCommit

へ繋ぐ方向を想定。
LambdaでCodeCommitへのプッシュをゴールとしたい。
CodeCommitからの繋ぎこみはプロジェクトによりけりなので。

参考にした先人のアーキテクチャではS3へZIPをアップロードしている。