こんにちは!CircleCIカスタマーサクセスチヨです。過ごしやすい日が続いていますね。
本日はCircleCIのOrbsで取り入れてほしい5つのタイプを紹介します。
はじめに
Orbsとはパッケージ化されたコンフィグです。スタンプのように一行足すだけで、何十行ものコンフィグが短くなり、何度も繰り返す作業などを簡略化できます。
そのほかサードパーティツールとの連携などもOrbsを使用することで簡単にできます。
今回は主にSlack Orbsの連携方法を紹介し、他にも効率化に役立つorbsを紹介します。
Slack Orbs
社内でSlackを使っている場合、絶対に使ってほしいSlack Orbsを試してみました。こちらのorbsを使用することで、決まった時間帯にSlack通知を送ったり、テストの失敗や成功に基づいて送ることも可能です。またapproval jobと組み合わせて使用する事で、job完了後slackから許可することが可能です。Slack orbsはnode orbsに続く最も使用されているorbsです。
こちらのNode.jsを使用したチュートリアルを参考にしました。チュートリアルでは詳しくNest.jpアプリケーションを作成するところから説明がありますが、こちらは割愛しCircleCIとSlackの連携と、通知のテストを行います。
Nest.jpアプリが作成されたら.circleci
フォルダーをルートフォルダーに作成し、新しくconfig.yml
を作成します。
以下のコンフィグをyml内にペーストし、保存します。
次に早速Slackを連携していきます。初めて使う方は新たにworkspaceを作成しブラウザからSlack APIの設定にアクセスします。create new appをクリックしワークスペースの名前とアプリの名前を入力します。slack orbを使用するにはチャンネルにファイルを投稿する権限が必要です。
左側のpermissionからscopeを追加します。
OAuth Tokenを作成し、後にCircleCI側に登録するので保存します。
CircleCIのプロジェクトからSlack OAuthからコピーした環境変数を入力します。
再度、yamlファイルを更新します。今回はslack: circleci/slack@4.12.1
を追加します。
orbは新しいバージョンが作成されている場合もありますので、developer hubから確認ください。今回は失敗すると通知が来る設定をsrcファイルにしておりますので、チャンネルに通知が行きます。
言語に対応しているOrbs
続いて言語に対応しているOrbsです。言語に対応しているorbsを使用することでプロジェクトに必要な環境変数をインストールしておくことができます。Slackの通知プロジェクトでもnode.jsを使っていました。
Node
Ruby
Go
Maven
Python
上記を使用することでsave_cache
コマンドの手間が省けます。また以下はPhytonとNodeのOrbsを使った実行時間の変化ですが、使用した方が短くなっているのがわかります。(CircleCI Blogから引用)
DevOps toolとしてのOrbs
DevOpsツールもCircleCIではデモも合わせて紹介しているので確認してみてください。
・コードカバレッジを使用し、テストの信用度を高めるorb デモ
・ウェブアプリのE2Eテストとコンポーネントテストを時間をかけずに実行できるorb デモ
・モバイルアプリ開発のためのセキュリティテストを自動化できるorbデモ
各クラウドサービス向けのOrbs
CIサービスを提供しているため、他のクラウドサービスと簡単に連携できるorbsも多種揃っています。
kubernetes
aws cli, S3, ECSなどの各種サービスとの連携
gcp GKEやGCRのマネージング
azure各種サービスとの連携
OIDCも提供が始まっていますので、クラウドサービスと併用してお使いください。
終わりに
orbsには作成者が承認済み、パートナー、コミュニティつ3つの異なるラベリングがあります。ご利用者のセキュリティに合わせてご使用ください。公式ドキュメント
またセキュリティーをより考慮される方やパーソナライズされたorbsが必要な場合、プライベートorbsの作成をお勧めいたします。youtubeにチュートリアルが載っていますので、ぜひご確認ください。