LoginSignup
1
0

More than 1 year has passed since last update.

CircleCIのSlack orb 4.4の一番シンプルな使い方

Posted at

以下の記事にて、AndroidアプリのCIにCircleCIを使った例の記事を書きました。
https://qiita.com/kasa_le/items/fab191326b42f5adb82d

Slack orbがかなりバージョンアップしていて変わっていたので対応してみました。

環境など

ビルドしているのはAndroidアプリですが、Slack orbを使っている部分はどんなプロジェクトでも参考になるかと思います。

ツールなど バージョンなど
Circle CI 2.0
Docker size Medium
Slack orb 4.4

注意事項

本記事の内容は、Slack Orb 4.4で動きます。
4.1や4.1.1では動かないので注意してください。理由は分かりませんが、私も動かなくてハマっていました。

Slack Appの作り方

基本的には以下のページの通りです。

Create a Context on CircleCIのセクションにある内容は、Organizationで環境を共有したい場合以外は、Project SettingsEnvironment variablesで追加すればOKです。

Slack orbの使い方

コマンドの設定

一番シンプルな使い方は、テンプレートをそのまま使うことだと思います。
テンプレートを使ったときの見た目は、以下のページで確認出来ます。

config.yaml
version: 2.1

orbs:
  android: circleci/android@0.2.0
  slack: circleci/slack@4.4

commands:
  notify_slack_pass:
    steps:
      - slack/notify:
          event: pass
          template: basic_success_1

  notify_slack_fail:
    steps:
      - slack/notify:
          event: fail
          template: basic_fail_1

成功時はテンプレートbasic_success_1を使い、失敗時はbasic_fail_1を使うコマンドをこんな風に用意しておくと、後でカスタマイズしたときにも1箇所に固まっていて見やすいです。

Jobの最後に使う

各ジョブの最後にそれぞれ呼びます。
複数のジョブを実行する場合で順列に実行し、途中の成功は通知が不要の場合の例になります。

config.yaml
jobs:
  debug-build-test:
    executor: android/android

    steps:
      - checkout
      - run:
          name: Debug build
          command: ./gradlew assembleDebug
       - notify_slack_fail

  release-build:
    executor: android/android

    steps:
      - checkout
      - run:
          name: Release build
          command: ./gradlew assembleRelease
      - notify_slack_fail
      - notify_slack_pass

この後のワークフロー設定で出てきますが、debug-buildのあとにrelease-buildジョブを呼ぶので、debug-buildは失敗したときだけ通知しています。成功したときは通知しません。
release-buildは、失敗または成功したときどちらかが通知されます。

ワークフローの設定

config.yaml
workflows:
  version: 2
  build-and-test:
    jobs:
      - debug-build-test
      - release-build:
          requires:
            - debug-build-test

始めにdebug-buildジョブを実行し、成功したらrelase-buildが実行されます。

通知結果

それぞれの実際の通知です。

成功時

スクリーンショット 2021-04-21 23.33.53.png

失敗時

スクリーンショット 2021-04-21 23.46.30.png

パラメータmentionsを指定してないのですが、項目がなくなるわけじゃ無くて空白になるだけみたいですね。

configファイルの全容

以下で、実際のconfigファイルの全容が見られます。

感想など

正直以前使っていたバージョンよりずっと使いやすくなった気がします。
が、orbの公式ページのexampleがorb4.1だったりして、そのままコピペしていると動かないという罠があり、何時間も費やしてしまいました・・・

最終的に、以下のIssuesで同じ現象の方のコメントを読み、4.4なら動くと書いてあってそれで上げてみたら何のことは無く動作したというオチでした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0