1. CircleCI周辺ツールたち 2. CIをskipする方法 3. docker imageをworkspaceで共有する方法 4. 環境変数(BASH_ENV)の簡単な登録方法 5. CircleCI の SSH デバッグのアクセスコントロール
CircleCI周辺ツール・豆知識5選Oct 1, 2019【東京】CircleCI ユーザーコミュニティミートアップ#7Jun Kitamura(@jkkitakita)
View Slide
自己紹介- 北村 順(@jkkitakita)- ビットキー- bitlock(スマートロック)を開発中。- bitkey platform team 兼 SRE- CircleCI歴: 1~2年
Agenda- はじめに- 周辺ツール・豆知識5選- さいごに
はじめに
登壇するにあたって
なんだかんだCircleCIは設定がすごく簡単だし登壇するにあたって
なんだかんだCircleCIは設定がすごく簡単だし最近は日本語サポートもすごく充実していて登壇するにあたって
なんだかんだCircleCIは設定がすごく簡単だし最近は日本語サポートもすごく充実していて日本のユーザーさんも多いのでちょっとググればだいたい出てくるので正直あまり話すことない。。。笑登壇するにあたって
登壇するにあたってとはいえ、ちょっと頑張らないと検索しづらい情報とか、ちょっとした小ネタとか
登壇するにあたってとはいえ、ちょっと頑張らないと検索しづらい情報とか、ちょっとした小ネタとか- サークルシーアイチョットデキル- CircleCIでマンネリ化している方
登壇するにあたってとはいえ、ちょっと頑張らないと検索しづらい情報とか、ちょっとした小ネタとか- サークルシーアイチョットデキル- CircleCIでマンネリ化している方とかには、周辺ツールとか豆知識的なニーズってあるんじゃないのかなー。
周辺ツール・豆知識5選
周辺ツール・豆知識5選1. CircleCI周辺ツールたち2. CIをskipする方法3. docker imageをworkspaceで共有する方法4. 環境変数(BASH_ENV)の簡単な登録方法5. CircleCI の SSH デバッグのアクセスコントロール
CircleCI周辺ツールたち1. PRチェックツール○ Danger2. コードレビュー○ Reviewdog3. カバレッジ計測○ Codecov
Pull Requestの運用ルールを自動化できるツール。1. Pull Requestの説明にTODOが残っている場合、merge不可 ♂2. WIPの場合、merge不可 ♂3. base branchが間違っている場合、merge不可 ♂4. 1000行以上の修正がある場合、merge不可 ♂
静的解析ツール(Linter)の結果をPull Requestにコメントしてくれるツール1. 対象となった行に対して、Pull Requestのコメントをしてくれる。2. 対象Pull Requestの差分のみがコメント対象コードとなるa. 修正していない既存のコードは対象外。3. 色々な言語で利用できる e.g. Go, Ruby, Perl, PHP, Python etc...
コードのテストカバレッジ計測ツール。1. Pull Request毎に、カバレッジの上昇、下降を算出してくれる2. 算出結果をPull Requestにコメントしてくれる3. 上昇率/下降率 or カバレッジの絶対値を閾値として設定してmerge不可にしてくれる4. 色々な言語で利用できるa. Go, Java, Ruby, PHP, Python etc…
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/#ビルドのスキップ利用シーン
CircleCIの場合、SKIPとは別に、CircleCIの不要なJOBをNOT RUNにするために- Auto-cancel redundant builds (冗長ビルドを自動キャンセルする )- Only build pull requests (プルリクエストのみビルド )などもあるので、どういう場合に skipしたいか要検討。CIをskipする方法
あるJobでbuildしたdocker imageを他のjobでも使いまわしたい!って時に、workspaceにdocker imageを保存する方法。docker imageをworkspaceで共有する方法1. docker buildとdocker pushを分ける2. docker imageの脆弱性スキャンを並列実行 etc…利用シーン
docker imageをworkflowで共有する方法
環境変数(BASH_ENV)の簡単な登録方法公式ページにある一般的な環境変数の読み込み方はcf. https://circleci.com/docs/ja/2.0/env-vars/#bash_env-で環境変数を定義する
環境変数(BASH_ENV)の簡単な登録方法environmentとして、BASH_ENVとして個別shellを指定すると簡単に環境変数が登録できる。
環境変数(BASH_ENV)の簡単な登録方法environmentとして、BASH_ENVとして個別shellを指定すると簡単に環境変数が登録できる。「version」という環境変数が利用できる
CircleCI の SSH デバッグのアクセスコントロール
CircleCI の SSH デバッグのアクセスコントロールCircleCI では SSH デバッグのアクセスができるのだがsshした環境には秘密な情報も入っている場合があり誰でも彼でも入れるとちょい困る!?
CircleCI の SSH デバッグのアクセスコントロールCircleCI では SSH デバッグのアクセスができるのだがsshした環境には秘密な情報も入っている場合があり誰でも彼でも入れるとちょい困る!?なんと、SSHで入れなくすることができる!
CircleCI の SSH デバッグのアクセスコントロールCircleCI では SSH デバッグのアクセスができるのだがsshした環境には秘密な情報も入っている場合があり誰でも彼でも入れるとちょい困る!?なんと、SSHで入れなくすることができる!(らしい!)
CircleCI の SSH デバッグのアクセスコントロールCircleCIのサポートに問い合わせた内容によると...
CircleCIのサポートに問い合わせた内容によると...アクセス制御の単位は1. Organization全て2. Repository単位※1 User単位は不可!※2 セキュリティ対策の代替案としては、contextsのグループ制御を利用する。CircleCI の SSH デバッグのアクセスコントロール
さいごに
自分のプロジェクトだと、どんな設定がいいんだろう。。CircleCI公式ドキュメントの「パブリックリポジトリの例」をみて自分のプロジェクトにあった著名なプロジェクトの設定を真似してみると参考になるかもしれない。https://circleci.com/docs/ja/2.0/example-configs/#section=configuration
We’re Hiring!!採用情報、社員インタビュー Wantedlyで配信中