manylinux wheelとは
manylinuxという「大体すべてのLinuxディストリで動く」wheelがあります。
wheelというのはコンパイル済みのネイティブライブラリを含むPythonパッケージです。
有名どころではtensorflowがこのmanylinux wheelを配布していたりします。
このmanylinux wheelのビルドにcircleciが最適だったので紹介します。
なぜ manylinux wheel の作成に circleciが適しているか
- CIサービス内でArtifact(私の場合wheel)の保存ができる
ため私はcircleciでmanylinux wheelのビルドを行っています。
具体的には https://github.com/ecell/ecell4_base/blob/master/.circleci/config.yml のように行っています。
yml中では
- store_artifacts:
path: /root/circle/wheelhouse
がそれを行っている箇所になります。
私が知る限りtravisci 内 ではこれを行うことができずcircleciを使わせていただいている次第です。
manylinuxのwheelは「大体すべてのLinuxで動く」というものなので
この環境中での動作テストだけでは不十分で他の複数のディストリでの動作も見たかったりします。
docker:
- image: quay.io/pypa/manylinux2010_x86_64
はCentOS6です。(なぜそんな古いバージョンなのかはここでは割愛します。)
なのでとりあえずパッケージを置いておく場所がほしかったりします。
そこでこのArtifactの保存の機能が助かるんですね。
おわりに
昨日 【大阪】CircleCI ユーザーコミュニティミートアップ#2 でCircleCI Japanコミュニティの皆様にお世話になり本記事を書きたいと思うに至りました。
コミュニティって重要ですね。
以上。