-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
travisのbuildが失敗する件 #3
Comments
上のようにあることから、travisは10分以上出力がない場合のbuild処理を制限するように変更したようです。 リポジトリを統合したことによってtravisに集中的に負担がかかってしまい、build時間が増えてしまったことが原因ですが、この前は、archlinux-yaourtのイメージを作成する処理を消して対応しました。 これに対する対処法で最も順当なのはリポジトリを分離して、archlinux-yaroutを再度、docker hubにpushするリポジトリを作成しCIを回すことですが、現時点でどうすべきかはまだ考えていません。一応、これまでの情報を再度まとめておくことにします。 archlinux-yaourtの利点archlinux-yaourtの利点の一つは
FROM archlinuxjp/archlinux-yaorut
RUN yaourt -S $app --noconfirm なぜイメージを日々アップデートしなければならないかarchlinux-yaourtをtravis-ciのcronを介して日々アップデートする理由は、他のdocker imageと同様、アップデートされずに古くなってしまったarchlinuxのイメージが よって、このままarchlinux-yaourtが自動アップデート(docker push)されない日々が続くようなら、いずれこのdocker imageが動かなくなってしまうことが予想されます。壊れたらその時にlocalでイメージを作成してdocker pushすれば済む話であり、そちらのほうがエコですが、この辺りはできる限り人間の手を煩わすこと無くメンテナンスしていきたいというのがあります。 |
この問題に対応するため、yaourtのイメージを生成するリポジトリを分離しました。 |
再度、リポジトリを作成してCIを回して初めて気づきましたが、問題はビルド時間ではなく出力がない時間であるため、本家であるdocker-archの方で、travis.ymlを書いて実験してみます。 |
こんな感じで書いたら通りましたが、正直なところよく分かりません。そもそも出力がないというけれど、普通にありましたし、そのあたりなんで通らなくなっていたのか、よくわからない感じです。そもそも10分間出力がないといいますけど、調べてみるとビルド時間自体が10分もかかっていませんでした。
after_success:
- travis_wait 30 mvn install
- docker run -v /var/run/docker.sock:/var/run/docker.sock --privileged -it yaourt /bin/bash /mkimage-arch-jp.sh
\"}" |
@syui さん なので,以下の様に修正すべきかと思います. after_success:
- travis_wait 30 docker run -v /var/run/docker.sock:/var/run/docker.sock --privileged -it yaourt /bin/bash /mkimage-arch-jp.sh 本 Issue に関してですが, yaourt イメージ作成時のパッケージダウンロード時にミラーサーバからの通信が stuck してしまい,出力が無いまま 10 分経過して…ってのがありそうかなーと思いました. |
@k3nsuk3 |
例えば、 after_success:
- if [ "$TRAVIS_BRANCH" == "master" ]; then
travis_wait 30 docker run ...;
fi after_success:
- travis_wait 30 if [ "$TRAVIS_BRANCH" == "master" ]; then
docker run ...;
fi |
ちょっと実験中です。 yaourtのdocker pushだけが何故か成功していない感じがする。 |
理由は分かりませんが、travis-ciを回して何故か以下のような結果になりました。
build成功、しかし、yaourtにdocker push失敗after_success:
- if [ "$TRAVIS_BRANCH" == "master" ]; then
travis_wait 30 docker run -v /var/run/docker.sock:/var/run/docker.sock --privileged -it yaourt /bin/bash /mkimage-arch-jp.sh;
...
fi after_success:
- if [ "$TRAVIS_BRANCH" == "master" ]; then
travis_wait 30 docker run -v /var/run/docker.sock:/var/run/docker.sock --privileged -it yaourt /bin/bash /mkimage-arch-jp.sh;
travis_wait 30 docker push $DOCKER_TEARM/archlinux-yaourt;
...
fi build成功、yaourtにdocker push成功after_success:
- if [ "$TRAVIS_BRANCH" == "master" ]; then
travis_wait 30 mvn install;
docker run -v /var/run/docker.sock:/var/run/docker.sock --privileged -it yaourt /bin/bash /mkimage-arch-jp.sh;
...
fi build失敗after_success:
- travis_wait 30 if [ "$TRAVIS_BRANCH" == "master" ]; then
docker run -v /var/run/docker.sock:/var/run/docker.sock --privileged -it yaourt /bin/bash /mkimage-arch-jp.sh;
...
fi |
@syui さん b5c5342 と 132b1a3 については,
ab6300e は b5c5342 と 132b1a3 で出力されたログについて調べてみますが,パッケージダウンロードで stuck するのが原因であると仮定するなら,travis_retry の利用を検討されてもいいかもしれません. 解決案
travis_retry docker run -v /var/run/docker.sock:/var/run/docker.sock --privileged -it yaourt /bin/bash /mkimage-arch-jp.sh; |
@syui さん エラーログに関してですが,まさしくこれかなと思います.
|
調べてくださって本当に助かります。 今、pushしてtravisを回してみました。もしよろしければ、 @k3nsuk3 さんがmasterにpushしてもらっても構いませんよ。 ようはちゃんと動いていることが重要ですから。 |
いけたみたいです。ありがとうございます。 |
@syui さん |
助かります! |
現在2つの理由で失敗しているように見えます。travisの主要なlogはこちらです。
この問題ついてはyaourtのイメージを作成する時に失敗しているようで、travis上で実行する以下のコマンドが原因だと見られます。
よって、この問題については一旦、yaourtのイメージを作成する処理をやめることで一時的な対処とします。
次に以下のエラーが出る問題があります。
これは
pacman -Scc
のような処理が原因かもしれない考えていますが、はっきりとしたことは調査していません。The text was updated successfully, but these errors were encountered: