DungeonTemplateLibrary icon indicating copy to clipboard operation
DungeonTemplateLibrary copied to clipboard

circle CIでのビルド/テストにcmakeが利用されていないのはなぜなのか?

Open yumetodo opened this issue 5 years ago • 11 comments

#18 でcmake対応したのに、CIでそれを使わなかったらメンテされていないビルド手順になってしまい、実質死んでしまう。

yumetodo avatar Jun 25 '19 17:06 yumetodo

これはわたしの知識不足なんですが、 今使っているCIにcmakeが入っていなくてデフォルトの状態ではcmakeの使用が出来ないのです。 cmakeをどうすれば追加(使用)出来るのか(知識が不足しすぎていて調べても)わからず、完全にお手上げ状態です。 (gccは元から入っているので、そちらは使えています)

(CI難しい……(言い訳))

AsPJT avatar Jun 25 '19 17:06 AsPJT

docker imageを作らんとだめですね。私はちょっとそれする時間ないですが。

すくなくともcircleci/ruby:2.4.1を使うって違和感あります、ruby!?って感じで。

yumetodo avatar Jun 25 '19 17:06 yumetodo

docker imageって何なのか1ミリもわかっていないです……。 (なんだか難しそう)

circleci/ruby:2.4.1 はよくわかりませんが、チュートリアルのまんまです……。 (CIの基本原理を全く理解していない)

AsPJT avatar Jun 25 '19 17:06 AsPJT

https://hub.docker.com/r/circleci/ruby


dockerimageが何を持っているか調べるには https://forums.docker.com/t/how-can-i-view-the-dockerfile-in-an-image/5687/3 こんな方法があるっぽいですね。

yumetodo avatar Jun 25 '19 17:06 yumetodo

docker image作っています。 https://github.com/yumetodo/BuildContainers https://hub.docker.com/r/yumetodo/buildcontainers/tags

ただ、lcoverallsを入れるのに苦戦していて、 Error relocating /usr/lib/libruby.so.2.4とか言われるので http://www.indexgo.tk/c0d3man52/notes/wajeievbrnclatitb56u を参考にrubyをビルドしています(あれっ

ところがruby-installmake uninstallがぶっ壊れているためPRを投げている状況です。 https://github.com/postmodern/ruby-install/pull/348

ref:

  • https://github.com/yumetodo/BuildContainers/issues/1

yumetodo avatar Jul 07 '19 04:07 yumetodo

そういえば書いてなかった、進捗だめです。結局最新のalpineで古いコンパイラを一度コンパイルする苦行をするしかなさそうという結論。

yumetodo avatar Oct 19 '19 15:10 yumetodo

負荷的にDockerHubとか各種CIサービスじゃなくてまともなマシンで手元でビルドしないと日が暮れそうで、手を出していない。

yumetodo avatar Oct 19 '19 15:10 yumetodo

今のところCIはgcc4.9.2ビルドの実装のみで非常にお粗末ですね……。 (しかもcmake未使用)

msvc・clangは手元の環境、またgcc・clangはwandboxで手動の検証は行なっていますが、原始的すぎるためCIを応用的に使用していきたいです。 (が、CIの学習まで手が回っていません……)

AsPJT avatar Oct 19 '19 16:10 AsPJT

いきなりいろんな環境やるんじゃなくてとりあえずalpineのapk配ってくれてるバージョンでコンパイルするCIは組んでいいかもしれない。

yumetodo avatar Oct 19 '19 16:10 yumetodo

結局最新のalpineで古いコンパイラを一度コンパイルする

という苦行に取り組みかけましたが、よく考えたらlibstdc++が衝突するか、最新のlibstdc++を使うように頑張ることになり、多分gcc4系は最新のalpineに入らない気がしてきた。

image

・・・いやまてよ、/usrじゃなくて/usr/localに入れるようにすればいいのか・・・?!?

yumetodo avatar Dec 27 '19 03:12 yumetodo

https://github.com/alpinelinux/abuild/blob/ec96c604e95993bdfce378cf6494325d653adb29/abuild.in#L717

Packages must not put anything under /srv, /usr/local or /opt

だめじゃん。

つまりパッケージにはしないで直接dockerコンテナに含めなければ・・・

yumetodo avatar Dec 27 '19 17:12 yumetodo