Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

自己紹介 - 北村 順(@jkkitakita) - ビットキー - bitlock(スマートロック)を開発中。 - bitkey platform team 兼 SRE - CircleCI歴: 1~2年

Slide 3

Slide 3 text

Agenda - はじめに - 周辺ツール・豆知識5選 - さいごに

Slide 4

Slide 4 text

はじめに

Slide 5

Slide 5 text

登壇するにあたって

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

周辺ツール・豆知識5選

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

CircleCI周辺ツールたち 1. PRチェックツール ○ Danger 2. コードレビュー ○ Reviewdog 3. カバレッジ計測 ○ Codecov

Slide 16

Slide 16 text

Pull Requestの運用ルールを自動化できるツール。 1. Pull Requestの説明にTODOが残っている場合、merge不可 ‍♂ 2. WIPの場合、merge不可 ‍♂ 3. base branchが間違っている場合、merge不可 ‍♂ 4. 1000行以上の修正がある場合、merge不可 ‍♂

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

静的解析ツール(Linter)の結果をPull Requestにコメントしてくれるツール 1. 対象となった行に対して、Pull Requestのコメントをしてくれる。 2. 対象Pull Requestの差分のみがコメント対象コードとなる a. 修正していない既存のコードは対象外。 3. 色々な言語で利用できる e.g. Go, Ruby, Perl, PHP, Python etc...

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

コードのテストカバレッジ計測ツール。 1. Pull Request毎に、カバレッジの上昇、下降を算出してくれる 2. 算出結果をPull Requestにコメントしてくれる 3. 上昇率/下降率 or カバレッジの絶対値を閾値として設定して merge不可にしてくれる 4. 色々な言語で利用できる a. Go, Java, Ruby, PHP, Python etc…

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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/#ビルドのスキップ 利用シーン

Slide 25

Slide 25 text

CircleCIの場合、SKIPとは別に、CircleCIの不要なJOBをNOT RUNにするために - Auto-cancel redundant builds (冗長ビルドを自動キャンセルする ) - Only build pull requests (プルリクエストのみビルド ) などもあるので、どういう場合に skipしたいか要検討。 CIをskipする方法

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

あるJobでbuildしたdocker imageを他のjobでも使いまわしたい! って時に、workspaceにdocker imageを保存する方法。 docker imageをworkspaceで共有する方法 1. docker buildとdocker pushを分ける 2. docker imageの脆弱性スキャンを並列実行 etc… 利用シーン

Slide 28

Slide 28 text

docker imageをworkflowで共有する方法

Slide 29

Slide 29 text

docker imageをworkflowで共有する方法

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

環境変数(BASH_ENV)の簡単な登録方法 公式ページにある一般的な環境変数の読み込み方は cf. https://circleci.com/docs/ja/2.0/env-vars/#bash_env-で環境変数を定義する

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

CircleCI の SSH デバッグのアクセスコントロール CircleCIのサポートに問い合わせた内容によると...

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

さいごに

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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