CircleCI OrbsによるSlack通知に移行してみた

2年前のクリスマス(2年前!?)に個人で利用しているCircleCIのSlack通知をOrbs v3に移行しましたが、今回v4にバージョンアップしてみました。v4から破壊的変更があったので、もろもろご紹介できればと思います。


circleci/slack@4.10.1

https://circleci.com/developer/ja/orbs/orb/circleci/slack

https://github.com/CircleCI-Public/slack-orb/wiki

  • Custom Message Template

v3まではmessageでラフにtextを指定すれば独自の通知ができていましたが、廃止されて新たにCustom Message Templateが加わりました。カスタマイズする際にSlack Block Kit Builderを利用してJSONを書かなければならないので、結構手間がかかります。今回は個人ということもあって面倒くさいので、Customは利用せずにTemplatesを使って修正してみました。さらにSlackのWebhookも廃止されて、Slack App/APIに変更されました。まずはSlack APIから作っていきましょう。


Setup Slack API

https://github.com/CircleCI-Public/slack-orb/wiki/Setup

  • https://api.slack.com/appsにアクセス

Create New App を選択

  • OAuth & Permissionsのscopesを設定
Method Reason
chat:write Post to Slack (bot must be invited to channel)
chat:write.public Post to any channel
files:write File uploading (Not yet used, check for updates)
  • OAuth Tokens for Your WorkspaceでAccess Tokenを作成
  • CircleCIの環境変数にSLACK_ACCESS_TOKENで上記のAccess Tokenを登録


Fix CircleCI config.yml

  • Templates

[DigitalOcean][Terraform][CircleCI]TFLintを導入してみたらWarningだらけになったお話

直近Terraform CI/CD環境はTFLintを導入とOrbsに移行しました。以前の書き方は上記のブログを参考にしてみてください。以前はJobsごとにslack-notifyを指定していましたが、リファクタリングしてcommandsで slack-notify-failslack-notify-success を追加しました。Jobsにはcommandsで定義した名称を指定するだけなので、コードが短くなりました。テスト通知してみましょう。

  • テスト通知

ん〜Templatesだと見にくいというかv3と比べるとデカイ..やはりcustomに移行したほうが良さそう…

  • v3


まとめ

Slack App/APIに統一されたことで、毎回通知のためにWebhookを作成することがなくなったのはかなりメリットですね。1つAPI作っておければあとは環境変数追加するだけで、使い回しができるのは楽!customは気が向いたら変更します…


カテゴリー: CircleCIslack

adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください