探検
継続的インテグレーション (CI) を啓蒙するスレ
■ このスレッドは過去ログ倉庫に格納されています
2018/02/17(土) 23:31:46.57ID:EwTJGG8P
GitHubの普及で身近になってきた、Travis CIやAppVeyorなどのCIの便利さやテクニックなどについて、語りましょう。
2018/02/18(日) 00:08:48.88ID:dp9S/ZRw
あるならあるで良いんだが、効果は限定的だと考えるようになってきた。
なぜならCIで実行するものは何かというと通常テストの実行だが、
テストの実行というのはどちらにしろローカルでも行うから
「テストを実行するの忘れない」とか「みんなが見れる場所でテストが実行されている」
というメリットは有るのだが品質にはあまりつながらない気がする。
もちろんローカルでやるのが大変なものを、CIだと簡単にやれる
という状況であれば効果は高いのだが、ローカルでやるのが大変なものってなんだ?
それがCIで簡単にやれるためには相当ハイスペックなマシンが必要じゃないか?
みたいになる。
重要なのはCIで実行する「内容」であって、CIという手段ではないので、
あまり手段にこだわってもなぁという気がしている。
もちろんあるのとないのではあったほうが良いんだよ。でもアレば少しマシぐらいの感覚
なぜならCIで実行するものは何かというと通常テストの実行だが、
テストの実行というのはどちらにしろローカルでも行うから
「テストを実行するの忘れない」とか「みんなが見れる場所でテストが実行されている」
というメリットは有るのだが品質にはあまりつながらない気がする。
もちろんローカルでやるのが大変なものを、CIだと簡単にやれる
という状況であれば効果は高いのだが、ローカルでやるのが大変なものってなんだ?
それがCIで簡単にやれるためには相当ハイスペックなマシンが必要じゃないか?
みたいになる。
重要なのはCIで実行する「内容」であって、CIという手段ではないので、
あまり手段にこだわってもなぁという気がしている。
もちろんあるのとないのではあったほうが良いんだよ。でもアレば少しマシぐらいの感覚
3片山博文MZ ◆T6xkBnTXz7B0
2018/02/18(日) 00:13:22.23ID:zL4UkFvD LinuxとiOSとWin、x86とx64でビルド&テスト&デプロイやれって言われて、普通、人間にやらせるか? CIに任せるだろ。
4片山博文MZ ◆T6xkBnTXz7B0
2018/02/18(日) 00:17:59.59ID:zL4UkFvD CIは仮想化の力で複数の環境におけるビルド&テスト&デプロイをバッチ処理として、自動化する。
5片山博文MZ ◆T6xkBnTXz7B0
2018/02/18(日) 00:29:11.34ID:zL4UkFvD テスト要員を半分以下に。単純作業のテスターは要らない。
2018/02/18(日) 02:17:46.61ID:ydkJE298
2018/02/18(日) 02:48:20.51ID:dp9S/ZRw
先に>>6に言われたなw
例えばgoはコマンド一つで複数のプラットフォーム用のバイナリを生成することができる
CIはビルド&テスト&デプロイをやってくれるものだと考えているかもしれないが、
別に自分のマシンからだってビルド&テスト&デプロイは行える
つまりCIの価値というのは、ビルド&テスト&デプロイそのものではなくて
ワークフローを統一化できるというところにある
それはそれで良いことなんだが、CIのメリットというのはワークフローの統一化だと思うと
思っているほど大したことしてないと思うだろ?
そしてもう一つは、テストマシンリソースのレンタル
テスト自体は自分のマシンでできる。だけど自分のマシンで追いつかないようなものは、
CIサーバーに頼んで借りられる。ただしCIサーバーのスペックが高いか、
クラスタでも組んでないと自分のマシンでやったほうが速いってことになりかねないw
ちなみに普段の開発中にはCIは利用しない。なぜならCIでは特定のメソッドだけテストの実行を行う
なんてことがやりづらく自分のマシンでテストを実行したほうが速いから。
CIによるテストは時間が掛かるテストをお行うもので、時間がかからないテストはローカルで済ませる
>>5
> テスト要員を半分以下に。単純作業のテスターは要らない。
それを実現するにはCIサーバーを導入しても実現できない。
単純作業(テスト)を行うためのテストコードが必要。
だがテストコードがあるなら、それは自分のマシンでも実行できる
例えばgoはコマンド一つで複数のプラットフォーム用のバイナリを生成することができる
CIはビルド&テスト&デプロイをやってくれるものだと考えているかもしれないが、
別に自分のマシンからだってビルド&テスト&デプロイは行える
つまりCIの価値というのは、ビルド&テスト&デプロイそのものではなくて
ワークフローを統一化できるというところにある
それはそれで良いことなんだが、CIのメリットというのはワークフローの統一化だと思うと
思っているほど大したことしてないと思うだろ?
そしてもう一つは、テストマシンリソースのレンタル
テスト自体は自分のマシンでできる。だけど自分のマシンで追いつかないようなものは、
CIサーバーに頼んで借りられる。ただしCIサーバーのスペックが高いか、
クラスタでも組んでないと自分のマシンでやったほうが速いってことになりかねないw
ちなみに普段の開発中にはCIは利用しない。なぜならCIでは特定のメソッドだけテストの実行を行う
なんてことがやりづらく自分のマシンでテストを実行したほうが速いから。
CIによるテストは時間が掛かるテストをお行うもので、時間がかからないテストはローカルで済ませる
>>5
> テスト要員を半分以下に。単純作業のテスターは要らない。
それを実現するにはCIサーバーを導入しても実現できない。
単純作業(テスト)を行うためのテストコードが必要。
だがテストコードがあるなら、それは自分のマシンでも実行できる
8片山博文MZ ◆T6xkBnTXz7B0
2018/02/18(日) 06:10:30.39ID:1UUb2h0E2018/02/18(日) 09:28:42.57ID:fvmxJoRp
それCIじゃねーよ
2018/02/18(日) 18:08:34.16ID:zd+wqEcu
自分のマシンでできない事はないけど、複数のOS上かつ複数のランタイムバージョンでテストを実行してついでにオーケーならデプロイまでしてくれるからなあ。
それをローカルでやるとなると必要な分だけの仮想環境を用意してさらにそれら環境全部の実行待ちの時間もバカにならんし、ぎゃくにローカルでやるメリットがあまり思い浮かばない
それをローカルでやるとなると必要な分だけの仮想環境を用意してさらにそれら環境全部の実行待ちの時間もバカにならんし、ぎゃくにローカルでやるメリットがあまり思い浮かばない
2018/02/18(日) 18:38:31.65ID:F2O3xW/S
2018/02/18(日) 19:30:06.94ID:zd+wqEcu
2018/02/18(日) 19:38:21.45ID:zd+wqEcu
つかスレの流れを見てなかったけど、何でもかんでも猫も杓子もCI使えばいいってもんじゃねえって話なのね。
それなら完全に同意だわ。
それなら完全に同意だわ。
2018/02/18(日) 19:39:15.73ID:zd+wqEcu
といってもCIを使うデメリットも特に思い当たらないから何となく使うのもいいとは思うけどな
2018/02/18(日) 20:13:05.44ID:ydkJE298
微妙に噛み合わない会話が続いているのはCIツールのことをCIって呼んでるやつと
プラクティスの名前としてCIって言葉を使ってるやつとに分かれてるからだね
プラクティスの名前としてCIって言葉を使ってるやつとに分かれてるからだね
2018/02/18(日) 20:17:21.91ID:LfAicYVt
プラクティスとしてのCIなら自分のローカルマシンでやってても、上で書いてあるようなことをやってるならそれはCIだわな
2018/02/18(日) 20:26:49.49ID:LfAicYVt
CIの肝はセントラルリポジトリに対してテストを行う時点で、自分のローカルとCI環境の最低二ヶ所の環境でパスすることを確認できる事なんだけどな。
ローカルだけでやってたら、環境依存の問題は絶対に見つけられんからあまりやる意味もない気がする。
ローカルだけでやってたら、環境依存の問題は絶対に見つけられんからあまりやる意味もない気がする。
2018/02/18(日) 22:55:00.28ID:ydkJE298
2018/02/18(日) 23:13:32.08ID:F2O3xW/S
>>15
普通CIっていったらCIツールの導入じゃね?
俺が言いたいのは、テストコード無くて別に自動的にデプロイするわけでもないのに
CIツール入れても意味ないよね?って話
まずはテストコードは書くことが重要。
で書いてしまえば、ローカルでもできるじゃん?
ビルドとかデプロイとかコマンド一つでできるじゃん?
じゃあCIツール入れるメリットってなんだろう?って話
CIがテストやMakefile書きましょうレベルの話ならば
なんだ俺は普段からCIやっていたのかwってことになる
もちろんそんなわけないので、テストやMakefileを書いている俺からすると
CIツールの導入で得られるメリットというのは、
MacのAutomatorのフォルダアクション(指定したフォルダにファイルが
追加された時に指定したコマンドを実行)レベルのものなんだってこと
もちろんそれがみんなに共有されるってことはわかるんだけど、
フォルダアクション+情報共有がCIツールの本質なんだなぁって話
普通CIっていったらCIツールの導入じゃね?
俺が言いたいのは、テストコード無くて別に自動的にデプロイするわけでもないのに
CIツール入れても意味ないよね?って話
まずはテストコードは書くことが重要。
で書いてしまえば、ローカルでもできるじゃん?
ビルドとかデプロイとかコマンド一つでできるじゃん?
じゃあCIツール入れるメリットってなんだろう?って話
CIがテストやMakefile書きましょうレベルの話ならば
なんだ俺は普段からCIやっていたのかwってことになる
もちろんそんなわけないので、テストやMakefileを書いている俺からすると
CIツールの導入で得られるメリットというのは、
MacのAutomatorのフォルダアクション(指定したフォルダにファイルが
追加された時に指定したコマンドを実行)レベルのものなんだってこと
もちろんそれがみんなに共有されるってことはわかるんだけど、
フォルダアクション+情報共有がCIツールの本質なんだなぁって話
2018/02/18(日) 23:21:49.77ID:F2O3xW/S
まあ要するにローカルでテストできる体制も整ってないのに
Travis使います。Jenkins使いましょう。といっても効果ないよってことだよ
まず最初にテストやMakefile相当のものを作る。
そしたらCIツール使える状態になるけど、
次は、あれ?CIツール使わなくても全部ローカルでできるじゃん?
ってなると思うよw
そこから先、CIツールを導入する目的が何かを自動化できるだと
理由として弱い。全部ローカルで出来てることだから
Travis使います。Jenkins使いましょう。といっても効果ないよってことだよ
まず最初にテストやMakefile相当のものを作る。
そしたらCIツール使える状態になるけど、
次は、あれ?CIツール使わなくても全部ローカルでできるじゃん?
ってなると思うよw
そこから先、CIツールを導入する目的が何かを自動化できるだと
理由として弱い。全部ローカルで出来てることだから
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 今年の漢字 [ぐれ★]
- 今年の漢字は「熊」に決定! 相次ぐクマ被害 去年は「金」 [冬月記者★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★3 [冬月記者★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★4 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★4 [蚤の市★]
- 【おこめ券】物価高対策の“おこめ券”全米販は1枚477円で販売へ 鈴木農水大臣「国民の皆様に活用いただきやすいよう工夫いただいた」 [ぐれ★]
- 【速報】今年の漢字、「熊」!wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 鈴木農水大臣「今年の漢字は苗。総理のお名前もある」 [256556981]
- 今年の「感じ」を予想するスレ
- 【悲報】お笑い国家ウクライナ、GDPの27%を国防費にぶち込む🥹 [616817505]
- たつき鯨のせいで人生狂ったんだが
- 【速報】今年のゲームオブザイヤー、Clair Obscur: Expedition 33 [779938112]
