GitHubを使ってるならついでにCIを回しちゃおう
HANDAI JKの石田です。
大阪は先日ひさびさの雨でした。傘をもっていなかったのでびしょびしょです。今日は、CI(Continuous Integration)の話をしたいと思います。
こんなことってありませんか
あれ、いつのまにかコードが動かなくなってる!!!
ありますよね。コードを改良していくうちに、動いていたところが動かなくなっている。そんな時は問題が発生したコミットを一生懸命さぐるわけですが... CIを実施していればこのようなことは起こりません。
CIとは
CIとはContinuous Integration(継続的インテグレーション)ということで、具体的には何度も繰り返しコードのテストやビルドといったアクションを実行することを指します。
また、これらのアクションが実行されるタイミングはコミット時が基本です。コードをコミットするタイミングで毎回コードがテストされるので、何か問題があればすぐに気づくことができるというわけです。
CIの設定の仕方
C言語のプロジェクトのCIを設定するという想定で詳細は省略しながら簡単に説明します。CIを行うサービスは複数ありますが、その中でも代表的なCircleCIを使用します。
1. CI設定ファイルを作成する
CIで何を行うかを定義するファイルを作成します。CircleCIの場合は.circleci/config.yml
に作成します。以下の例では、gcc
でCのソースファイルをコンパイルし、コンパイルしたものを実行するという流れになっています(8-9行目)。本来はテストコードを実行したりするのですが、今回はコンパイルが通ればOKとしています。
version: 2.0 jobs: build: docker: - image: gcc:6 steps: - checkout - run: gcc -o main main.c - run: ./main workflows: version: 2 build: jobs: - build
2. CircleCIの画面でGitHubのリポジトリを登録する
GitHubにコードがpushされたらCIが実行されるようにCircleCIの画面でリポジトリを登録します。CIをしたいリポジトリの「Set Up Project」ボタンを押します。
3. GitHubにコードをpushしてCIが自動的に開始するか確かめる
うまく設定ができていたらGitHubにpushしてすぐCIが開始します。異常なく終了したら緑色(Pass)に表示が変わります。もしエラーがあれば赤色(Fail)になります。
ちなみに、GitHubの画面にもCIがPassしたかFailしたか表示されるのでとても便利です。
まとめ
CIを使うことで常時コードにチェックが入るようになるので、より自信を持って開発を進めることができます。CircleCIなど、多くのCIサービスではオープンソース(公開設定がPublicなリポジトリ)の場合無料で使用することができます。CIは本当に便利ですよ~!