Slide 1

Slide 1 text

CircleCI APIで プチ効率化

Slide 2

Slide 2 text

自己紹介 ○ 株式会社Fusic ○ エンジニア マネージャー ○ 櫻川 幸三 ○ GitHub : https://github.com/kozo 2

Slide 3

Slide 3 text

“ CircleCI API使ってますか? 3

Slide 4

Slide 4 text

4 ユーザー プロジェクト ビルド・ジョブ キー Artifacts - ログインユーザー情報 - フォロープロジェクト一覧 - プロジェクトを新規フォロー - 最新ビルドの取得(全て、プロジェクト単位) - プロジェクトのキャッシュ削除 - ジョブ情報を取得 - ジョブの実行(シングル、ブランチ指定) - ジョブの再実行 - ビルドキャンセル - ビルドデータの取得 - ユーザー作成 - チェックアウトキーの一覧 - チェックアウトキーの取得・作成・削除 - SSHキーの取得・作成・削除 - Herokuキー - Artifactの取得 - Artifactのダウンロード API一覧

Slide 5

Slide 5 text

API一覧 5 ユーザー プロジェクト ビルド・ジョブ キー Artifacts - ログインユーザー情報 - フォロープロジェクト一覧 - プロジェクトを新規フォロー - 最新ビルドの取得(全て、プロジェクト単位) - プロジェクトのキャッシュ削除 - ジョブ情報を取得 - ジョブの実行(シングル、ブランチ指定) - ジョブの再実行 - ビルドキャンセル - ビルドデータの取得 - ユーザー作成 - チェックアウトキーの一覧 - チェックアウトキーの取得・作成・削除 - SSHキーの取得・作成・削除 - Herokuキー - Artifactの取得 - Artifactのダウンロード

Slide 6

Slide 6 text

地味に便利 自動フォロー

Slide 7

Slide 7 text

7

Slide 8

Slide 8 text

“ 毎回する作業 × API = 自動化 8

Slide 9

Slide 9 text

Follow a New Project on CircleCI 9

Slide 10

Slide 10 text

10

Slide 11

Slide 11 text

11 GitHub GitHub Apps API Call Lambda Webhook

Slide 12

Slide 12 text

12 難しいんでしょ? お高いんでしょ?

Slide 13

Slide 13 text

13 curl -X POST https://circleci.com/api/v1.1/project/github/:username/:project/follow?circle-token=:token

Slide 14

Slide 14 text

自動フォロー ○ メリット ○ 簡単 ○ GitHub全リポジトリに必ず連携 ○ デメリット ◦ 強制的に連携されるので、 連携不要なプロジェクトが混ざってい る場合は邪魔になる 14

Slide 15

Slide 15 text

CircleCIへの キューイングをコントロール

Slide 16

Slide 16 text

16 特定リポジトリのテスト実行時間がものすごく長い

Slide 17

Slide 17 text

18

Slide 18

Slide 18 text

19 テスト順調!

Slide 19

Slide 19 text

20 ちょっと遅い?

Slide 20

Slide 20 text

21 おそ。。。い。。。

Slide 21

Slide 21 text

22 。。。

Slide 22

Slide 22 text

23 詰んだ。。。

Slide 23

Slide 23 text

Recent Builds For A Single Project Trigger a new Build with a Branch 24

Slide 24

Slide 24 text

25 GitHub API Gateway GitHub Actions DynamoDB Lambda Push POST Write API Call Read

Slide 25

Slide 25 text

26

Slide 26

Slide 26 text

Tips ○ CircleCIをPushで動かしたくない場合 ○ 全ブランチをignoreに設定する 27 branches ignore: - /.*/

Slide 27

Slide 27 text

キューイング ○ メリット ○ 実行タイミングをコントロールできる ○ デメリット ◦ 実装が少し大変 ◦ Performance Planを検討した方がいい 28

Slide 28

Slide 28 text

その他 ○ 任意のタイミングでデプロイを実行する ○ Artifactをダウンロードするコマンド作成 ○ GitHub Actions等のworkflowsツールとの連携 ○ 静的解析ツール等との連携 ○ etc… 29

Slide 29

Slide 29 text

まとめ ○ API利用は意外と簡単 ○ APIは使わなくても困らないけど、きっ と効率化できるポイントがあるはず ○ APIを使うとCircleCIがより便利になる 30

Slide 30

Slide 30 text

ご清聴ありがとうございました Fusicではエンジニアを募集しています! 31