CircleCI しみじみ体感系ブログまとめ【CircleCI入門編】

はじめに

みなさん、こんにちは。CircleCIのDeveloper Advocate 舟木です。

CircleCIをご利用いただいた方の体感が伝わってくるブログをCircleCI Japan公式ツイッター(@CircleCIJapan)にてご紹介させていただいておりますが、タイムラインと共に、時の彼方に流れて行ってしまうのは惜しい、ということで、いくつかのテーマに分けて「まとめ」てみました。CircleCIウェブサイトやYouTubeコンテンツなども適宜織り交ぜながら、紹介を進めてまいります。

初の「まとめ」は入門編ということで、これからCircleCI使ってみよう、という方へのガイドとなるようなテーマでまとめてみました。よき羅針盤になれば、幸いです。

そもそもなぜCI/CDに対する関心が高まっているのか

CI/CDのエキスパートが解説:CI/CDとは何か? なぜ今、必要とされるのか?

CircleCIの使い方に入る前に、そもそもソフトウェア開発におけるCI(Continuous Integration: 継続的インテグレーション)やCD(Continuous Delivery/Deployment: 継続的デリバリー/デプロイ)が注目され、必要とされるに至るにはどんな背景があったのでしょうか? 上記記事では、CircleCI Japanが生まれる前からCircleCIに在籍している金 洋国がこの背景について解説しています。

まずは実際に使ってみよう

CircleCIの新UIでHello Worldしてみた

概念的な話から入るよりも、自分は実際に使っていく中で、「あぁ、こういう時に意味があるってことなのね」と逆引き的に理解していくタイプの方も少なくないのではないでしょうか? ということで、まずはHello Worldからです。

CircleCIの公式サイトにもHello Worldを使ったはじめての人向けの一章(Hello World)があるのですが、そもそもGitHubBitbucketを使ってソースコードを管理したことがない、という方もいらっしゃるかもしれませんし、そういった方には公式チュートリアルは(説明されていない前提があって)実際に試してみることができないかも知れません。

上記記事ではそんなあなたのために、若槻龍太さんがCircleCIのサインアップから手取り足取り、丁寧に説明をしてくださっています。なお、GitHubのサインアップに関しては、私(舟木)の書いた「GitHubにサインアップ(Sign up) - 新規ユーザ登録」が参考になるかと思います。

設定ファイル(config.yml)の書き方

基本から応用までCircle CIのConfig 2.1の書き方まとめ

さて、HelloWorldでは言われたままに書いたconfig.ymlの中の一行一行が、実際にどういう意味で、ほかにどういった機能(コマンド)があり、一体、何ができるのか、知りたくなってくるのではないでしょうか? Hello Worldだけでは、当然、ソフトウェアの開発は前に進まないので、実践への一歩をここで踏み出す必要があります。

CircleCIの公式サイトでは、config.ymlのリファレンスとして「CircleCIを設定する」というページが用意されていますが、網羅性よりも、実際に使われる場面に即して説明してほしい、という方に、jiro@web developerさん(@version1_2017)の上記記事をお勧めします。

なお、文字列を2行に渡って記述したいといった、文法的(構文解析的)な意味での説明は、CircleCI公式サイトの「YAMLの記述」が参考になるかと思います。

CircleCI導入後にどんな風景が見えてくるのか

Cybozu Tech Meetup #4:15年目プロダクトの開発スピードを上げる取り組み

さて、CircleCIを開発現場にどう取り込むのかについては、言語やプラットフォームごとに「まとめ」を順次、用意していこうかと思いますが、「で、結局最後にどうなるのさ」という質問にお答えする必要があるかと思います。

上記YouTubeビデオ(ブログ記事ではありません)では、Cybozu生産性向上チームが、グループウェア「ガルーン」の開発において、CI/CDツールとしてのCircleCIの導入に留まらない、様々な取り組みの中で、開発生産性がどのように変わってきて現在に至っているのかが語られています。

CI/CDツールを導入することの機能面でのメリットももちろん重要ですが、開発者の仕事の仕方がどう変わるのか、プロダクトやサービスがどう変わるのか、利用者の体験や行動がどう変わるのか、方向性を北極星として定め、関係者間で共通認識を持った上で、実際のゴールや途中のプロセス等は(やってみないとわからない、やってみて初めて気づく点をアジャイルに)調整しながら進めることが成功への近道かと思います(そもそも「成功」を定義できていなければ、成功できないですね)。

おわりに

今回の【CircleCI 入門編】、いかがだったでしょうか? 紹介させていただいた記事やビデオ等、作成・公開いただき、本当にありがとうございました。

 ご意見・ご感想ありましたら、ハッシュタグ #CircleCIJp をつけてツイートいただければ、目を通させていただくようにします。

また、CircleCIを使い始めた人から、使いこなしている人まで、こんな風に使ってみた・使っているブログをお待ちしております。「牛乳を飲めば健康になりますが、牛乳を配るともっと健康になります」という求人広告を見たことがありますが、知識や経験もそれ自身、自分の中での財産になるものの、文字にして共有することで、ソフトウェアの力で世界をさらに一段上にあげることができると信じています。ぜひ ハッシュタグ #CircleCIJp をつけて、皆さんの目に留まるようにしていただければと思います。 

Pay it forwardでバトンがつながりますように!