はじめに
こちらの記事で紹介したDiscord Bot『Roboty』で採用している技術や開発環境のまとめです。
できる限りイマドキな技術を取り入れる & 触ったことないものを触るようにしています。
全体図
絵にしてみるとこんな感じです。
各要素について
開発言語
採用理由
- 少しだけ触る機会があった
- せっかくならちゃんと書けるレベルになりたい
ソースコード管理
採用理由
- CI/CD環境が充実している(後述のGitLab-CI)
- 無料で非公開リポジトリを作れる
CI/CD環境
- ソースコードがpushされるたびに静的構文解析を実行
- masterブランチが更新されるたびに
- Dockerイメージのビルド
- Google Kubernetes Engineにデプロイ
テストはさぼっています。。。
自動テストも走らせる予定です。
採用理由
- 少し触る機会があった
- 他のものを知らない
実行環境
採用理由
- とりあえず今熱いDockerとk8sを触りたい
- GKEについては特になし
ChatOps
ChatOpsというほどでもないですが、GitLabのイベント通知をDiscordで受け取れるようにしています。
詳細はこの記事 → GitLabの通知をWebhookでDiscordに送信する
採用理由
- DiscordのBotを作っているのでDiscordでChatOpsしたい
- Google Spread Sheet
- 中継サーバをどうするか考えていたら、ちょうどいい記事を見つけた(詳細は上の記事)
使用API
- Discord API
- 実際はdiscordrb
-
Spla2 API
- 詳細はこの記事 → DiscordのBotにSplatoon2のステージ情報を教えてもらう
- iTunes Search API
採用理由
- discordrb
- 開発言語にRubyを選択したから
- 他を知らない
- Spla2 API
- 公式のAPIが公開されてない
- iTunes Search API
- 先人が作っているのはYoutubeとニコ動のAPIを使っているようだったので、せっかくなら別のものでやってみたい
おわりに
これからはじめてみる方の参考に少しでもなれば幸いです。
あと定期的にモチベーション問題にぶつかるから共同開発してみたい。