株式会社 Zaim / エンジニア
オフィス内のネットワーク環境とJenkinsの整備
以下の文章を書いたときには Jenkins 大好きでしたが、今は、Github Actions と Self hosted runner にくら替えしています。 Self hosted Runner すごくいいです。 ---- あまり優秀な Jenkins おじさんはできていないですが、社内で Jenkins のマネジメントをしています。 また、Jenkins のアイコンなどを使って、ChatOps 的に Reply を投げると指定したブランチのアプリをビルドしたり、Github の issue の進捗度合いなどを Slack に投稿する偽 Jenkins の管理をしています。 社内ではそれらの、Jenkins の皮を被っただけの偽物も含めて Jenkins と呼んで、親しまれています。 それぞれの ChatOps 機能などに、独自のアイコンを使うというのもよかったと思うのですが、Jenkins というペルソナを勝手に作って、テストが落ちているときは怒っている Jenkins、通ったらいつもの Jenkins といった風にしたのは、いい選択だったと思っています。 何故ならば、特定のキャラクターとしての Jenkins がいるおかげで、会話の中で話題にしやすくなる。また、多機能な Jenkins となっているので、じゃあ、あれも Jenkins にやらせてみようか。という風に気軽に機能を追加しやすくなりました。 Jenkins などではなく、アイドルアイコンでやるというのもありとは思うんですが、テストが通らなくて、そのアイドルのことが嫌いになるといったことがおこると非常に良くないので、Jenkins というのはちょうどいい距離感のおじさんだと思います。 Jenkins 愛が強くてポエムになってしまっているのですが、「Jenkins」でやっていることとしては。 - Deploygate への複数ターゲットの Deploy (Jenkins) - Danger の実行 (Jenkins) - Carthage や Bundle のアップデートおよび、テスト、Pull Request の作成 (Jenkins) - Unit Test (Jenkins) - UI Test (Jenkins) - iTunes Connect 用の Build ( Jenkins ) - ChatOps で特定の Branch を Build ( Jenkins, hubot) - 朝会のお知らせ ( AWS Lambda) - Issue の進捗状況(AWS Lambda) - 定期的なタスクのお知らせ (AWS Lambda) - Bigquery へのデータ送信状況 (GAS) - 本番環境、ステージング環境へのデプロイ - etc GAS や AWS Lambda を使っているのはそれぞれのリソースにアクセスする必要があったりするためです。(Jenkins)と書いているのは Jenkins CI で動いている Jenkins です。また、Jenkins でやっていることの多くは、Fastlane を使って実装されています。 社内で Jenkins を快適に動かし続けるために、社内の WIFI についても管理しています。 Jenkins サーバ自体は、止まると絶対に仕事ができなくなるみたいなものではないので、結構オフィスの端っことかの微妙な位置にいます。そのため、そこまでしっかりと Wifi を飛ばすためには少しは、Wifi について考えないといけないという状態になります。 したがって、Jenkins にいいネットワークを用意することは、オフィスにいいネットワークを用意することに繋がります。RTX1210 とバッファローの WifiAP を組み合わせて、社内ネットワークを構築、管理しています。 結局、Jenkins は WifiAP のそばに置くことになったので、それほど Jenkins にはネットワークの状況は関係なくなったのですが、継続して RTX1210 と AP を管理しています。