###### tags: `CI` `jenkins` # Continuous Integration とは、エクストリームプログラミングの習慣(practice)の一つ ビルドやテスト、インスペクションを継続的に実行する。 ## CIツール Continuous Integration 開発者がコードをmasterリポジトリにマージして、 そのたびに自動化されたビルドとテストを実行する。 結果は**「成功」** or **「失敗」** であり、成功したらクリーン、失敗ならビルドは壊れている。 もしもビルドが壊れたら、開発チームが速やかにビルドの問題を直す。 ## アンチパターン と 恐怖駆動型開発 - ビルドステータスを無視する。 - 壊れていても直さない。(実際は、開発を止めて直すべき) これらを徹底するために、ビルドを壊した人は何らかのバツを受けるという厳格なルールを決めるということもできる。 ただし、これは**恐怖駆動形開発**であり、ビルドを失敗させて謝罪しなければならない恐怖から、開発者はリポジトリへのコミットを恐れるようになる。 結果として、ビルドを壊さないようにコードをプッシュせずに長い時間手元に保持するようになるので開発速度は遅くなり、書いたコードの多くは捨てられる様になる。 ## どうするか? masterブランチを**読み取り専用**にする。 どういうことか - masterへのコミットは禁止 - テスト、コミット、マージを実行する**スクリプトを作成して、それを通してマージ**する - 1つでもunitテストを失敗すればマージ不可能 これなら、ビルドを壊そうとしても技術的に不可能になる。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up