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

CircleCI 周辺ツール・豆知識5選

CircleCI 周辺ツール・豆知識5選

1. CircleCI周辺ツールたち
2. CIをskipする方法
3. docker imageをworkspaceで共有する方法
4. 環境変数(BASH_ENV)の簡単な登録方法
5. CircleCI の SSH デバッグのアクセスコントロール

23c25c7545ad2fdbdbab1f9201bf96b7?s=128

Jun Kitamura

October 01, 2019
Tweet

Transcript

  1. CircleCI 周辺ツール・豆知識5選 Oct 1, 2019 【東京】CircleCI ユーザーコミュニティミートアップ#7 Jun Kitamura(@jkkitakita)

  2. 自己紹介 - 北村 順(@jkkitakita) - ビットキー - bitlock(スマートロック)を開発中。 - bitkey

    platform team 兼 SRE - CircleCI歴: 1~2年
  3. Agenda - はじめに - 周辺ツール・豆知識5選 - さいごに

  4. はじめに

  5. 登壇するにあたって

  6. なんだかんだCircleCIは設定がすごく簡単だし 登壇するにあたって

  7. なんだかんだCircleCIは設定がすごく簡単だし 最近は日本語サポートもすごく充実していて 登壇するにあたって

  8. なんだかんだCircleCIは設定がすごく簡単だし 最近は日本語サポートもすごく充実していて 日本のユーザーさんも多いので ちょっとググればだいたい出てくるので 正直あまり話すことない。。。笑 登壇するにあたって

  9. 登壇するにあたって とはいえ、ちょっと頑張らないと 検索しづらい情報とか、ちょっとした小ネタとか

  10. 登壇するにあたって とはいえ、ちょっと頑張らないと 検索しづらい情報とか、ちょっとした小ネタとか - サークルシーアイチョットデキル - CircleCIでマンネリ化している方

  11. 登壇するにあたって とはいえ、ちょっと頑張らないと 検索しづらい情報とか、ちょっとした小ネタとか - サークルシーアイチョットデキル - CircleCIでマンネリ化している方 とかには、周辺ツールとか豆知識的なニーズ ってあるんじゃないのかなー。

  12. 周辺ツール・豆知識5選

  13. 周辺ツール・豆知識5選 1. CircleCI周辺ツールたち 2. CIをskipする方法 3. docker imageをworkspaceで共有する方法 4. 環境変数(BASH_ENV)の簡単な登録方法

    5. CircleCI の SSH デバッグのアクセスコントロール
  14. 周辺ツール・豆知識5選 1. CircleCI周辺ツールたち 2. CIをskipする方法 3. docker imageをworkspaceで共有する方法 4. 環境変数(BASH_ENV)の簡単な登録方法

    5. CircleCI の SSH デバッグのアクセスコントロール
  15. CircleCI周辺ツールたち 1. PRチェックツール ◦ Danger 2. コードレビュー ◦ Reviewdog 3.

    カバレッジ計測 ◦ Codecov
  16. Pull Requestの運用ルールを自動化できるツール。 1. Pull Requestの説明にTODOが残っている場合、merge不可 ‍♂ 2. WIPの場合、merge不可 ‍♂ 3.

    base branchが間違っている場合、merge不可 ‍♂ 4. 1000行以上の修正がある場合、merge不可 ‍♂
  17. None
  18. None
  19. 静的解析ツール(Linter)の結果をPull Requestにコメントしてくれるツール 1. 対象となった行に対して、Pull Requestのコメントをしてくれる。 2. 対象Pull Requestの差分のみがコメント対象コードとなる a. 修正していない既存のコードは対象外。

    3. 色々な言語で利用できる e.g. Go, Ruby, Perl, PHP, Python etc...
  20. None
  21. コードのテストカバレッジ計測ツール。 1. Pull Request毎に、カバレッジの上昇、下降を算出してくれる 2. 算出結果をPull Requestにコメントしてくれる 3. 上昇率/下降率 or

    カバレッジの絶対値を閾値として設定して merge不可にしてくれる 4. 色々な言語で利用できる a. Go, Java, Ruby, PHP, Python etc…
  22. None
  23. 周辺ツール・豆知識5選 1. CircleCI周辺ツールたち 2. CIをskipする方法 3. docker imageをworkspaceで共有する方法 4. 環境変数(BASH_ENV)の簡単な登録方法

    5. CircleCI の SSH デバッグのアクセスコントロール
  24. gitのcommit commentに「 [ci skip] 」もしくは「 [skip ci] 」を入れる。 CIをskipする方法 1.

    一旦、commit -> pushするが、そのあと直すとき(WIPのとき) 2. 他に、優先してCircleCI実行したいものがあるとき cf. https://circleci.com/docs/ja/2.0/skip-build/#ビルドのスキップ 利用シーン
  25. CircleCIの場合、SKIPとは別に、CircleCIの不要なJOBをNOT RUNにするために - Auto-cancel redundant builds (冗長ビルドを自動キャンセルする ) - Only

    build pull requests (プルリクエストのみビルド ) などもあるので、どういう場合に skipしたいか要検討。 CIをskipする方法
  26. 周辺ツール・豆知識5選 1. CircleCI周辺ツールたち 2. CIをskipする方法 3. docker imageをworkspaceで共有する方法 4. 環境変数(BASH_ENV)の簡単な登録方法

    5. CircleCI の SSH デバッグのアクセスコントロール
  27. あるJobでbuildしたdocker imageを他のjobでも使いまわしたい! って時に、workspaceにdocker imageを保存する方法。 docker imageをworkspaceで共有する方法 1. docker buildとdocker pushを分ける

    2. docker imageの脆弱性スキャンを並列実行 etc… 利用シーン
  28. docker imageをworkflowで共有する方法

  29. docker imageをworkflowで共有する方法

  30. 周辺ツール・豆知識5選 1. CircleCI周辺ツールたち 2. CIをskipする方法 3. docker imageをworkspaceで共有する方法 4. 環境変数(BASH_ENV)の簡単な登録方法

    5. CircleCI の SSH デバッグのアクセスコントロール
  31. 環境変数(BASH_ENV)の簡単な登録方法 公式ページにある一般的な環境変数の読み込み方は cf. https://circleci.com/docs/ja/2.0/env-vars/#bash_env-で環境変数を定義する

  32. 環境変数(BASH_ENV)の簡単な登録方法 environmentとして、BASH_ENVとして 個別shellを指定すると簡単に環境変数が登録できる。

  33. 環境変数(BASH_ENV)の簡単な登録方法 environmentとして、BASH_ENVとして 個別shellを指定すると簡単に環境変数が登録できる。

  34. 環境変数(BASH_ENV)の簡単な登録方法 environmentとして、BASH_ENVとして 個別shellを指定すると簡単に環境変数が登録できる。 「version」という環境変数が利用できる

  35. 周辺ツール・豆知識5選 1. CircleCI周辺ツールたち 2. CIをskipする方法 3. docker imageをworkspaceで共有する方法 4. 環境変数(BASH_ENV)の簡単な登録方法

    5. CircleCI の SSH デバッグのアクセスコントロール
  36. CircleCI の SSH デバッグのアクセスコントロール

  37. CircleCI の SSH デバッグのアクセスコントロール CircleCI では SSH デバッグのアクセスができるのだが sshした環境には秘密な情報も入っている場合があり 誰でも彼でも入れるとちょい困る!?

  38. CircleCI の SSH デバッグのアクセスコントロール CircleCI では SSH デバッグのアクセスができるのだが sshした環境には秘密な情報も入っている場合があり 誰でも彼でも入れるとちょい困る!?

    なんと、SSHで入れなくすることができる!
  39. CircleCI の SSH デバッグのアクセスコントロール CircleCI では SSH デバッグのアクセスができるのだが sshした環境には秘密な情報も入っている場合があり 誰でも彼でも入れるとちょい困る!?

    なんと、SSHで入れなくすることができる! (らしい!)
  40. CircleCI の SSH デバッグのアクセスコントロール CircleCIのサポートに問い合わせた内容によると...

  41. CircleCIのサポートに問い合わせた内容によると... アクセス制御の単位は 1. Organization全て 2. Repository単位 ※1 User単位は不可! ※2 セキュリティ対策の代替案としては、contextsのグループ制御を利用する。

    CircleCI の SSH デバッグのアクセスコントロール
  42. さいごに

  43. 自分のプロジェクトだと、どんな設定がいいんだろう。。 CircleCI公式ドキュメントの「パブリックリポジトリの例」をみて 自分のプロジェクトにあった著名なプロジェクトの設定を真似してみると 参考になるかもしれない。 https://circleci.com/docs/ja/2.0/example-configs/#section=configuration

  44. We’re Hiring!! 採用情報、社員インタビュー
 Wantedlyで配信中