Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CircleCI APIでプチ効率化

CircleCI APIでプチ効率化

6ac3d104c1f959827ec9a12099b05e85?s=128

sakuragawa

April 22, 2019
Tweet

Transcript

  1. CircleCI APIで プチ効率化

  2. 自己紹介 ◦ 株式会社Fusic ◦ エンジニア マネージャー ◦ 櫻川 幸三 ◦

    GitHub : https://github.com/kozo 2
  3. “ CircleCI API使ってますか? 3

  4. 4 ユーザー プロジェクト ビルド・ジョブ キー Artifacts - ログインユーザー情報 - フォロープロジェクト一覧

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

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

  7. 7

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

  9. Follow a New Project on CircleCI 9

  10. 10

  11. 11 GitHub GitHub Apps API Call Lambda Webhook

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

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

  14. 自動フォロー ◦ メリット ◦ 簡単 ◦ GitHub全リポジトリに必ず連携 ◦ デメリット ◦

    強制的に連携されるので、 連携不要なプロジェクトが混ざってい る場合は邪魔になる 14
  15. CircleCIへの キューイングをコントロール

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

  17. 18

  18. 19 テスト順調!

  19. 20 ちょっと遅い?

  20. 21 おそ。。。い。。。

  21. 22 。。。

  22. 23 詰んだ。。。

  23. Recent Builds For A Single Project Trigger a new Build

    with a Branch 24
  24. 25 GitHub API Gateway GitHub Actions DynamoDB Lambda Push POST

    Write API Call Read
  25. 26

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

  27. キューイング ◦ メリット ◦ 実行タイミングをコントロールできる ◦ デメリット ◦ 実装が少し大変 ◦

    Performance Planを検討した方がいい 28
  28. その他 ◦ 任意のタイミングでデプロイを実行する ◦ Artifactをダウンロードするコマンド作成 ◦ GitHub Actions等のworkflowsツールとの連携 ◦ 静的解析ツール等との連携

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

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