LoginSignup
3
3

More than 5 years have passed since last update.

TravisCIのbundlerのcacheの扱いで2日ハマった

Posted at

どのようにはまったかをざっくりと

  • featureブランチのビルドでは 成功 してPull Requestビルドのでは 失敗 するという事態が起きました
  • Pull RequestビルドはPull Requestがあったらそのブランチに対してテストして、Pull Requestしたコードの影響がないかどうかを知ることができます
  • コードは同じなのになぜかPull Requestビルドだけ失敗するという状況でした

前提

  • bundlerのcacheは有効
  • ビルドするブランチの対象はdevelop,featureブランチ
  • Pull Requestは有効

違いが出た原因は

  • Gem自身がDBのレコードを保持するようなGemを使っていて、bundlerのcacheを有効にしていたため、そのcacheを利用するビルドはそのDBのレコードを既に持っている
    • 詳細は書きませんが、"DBのレコードを既に持っている"がビルド失敗の原因でした
    • それはさておき、肝心なcacheの扱いについてです

cacheの扱い

  • 以下は 私のところのでの TravisCIの仕組みの話です
    • featureブランチのビルドでは、初回のcacheは使われず、2回目以降は該当するfeatureブランチのcacheが使われる
    • Pull Requestビルドでは、初回にdevelopブランチのcache、2回目以降は該当するPull Requestのcacheが使われる

TravisCIのコンソールログから学んだこと

  • TravisCIのcacheは以下のようにSTEP1、STEP2と捜索していくわけです
    • 上で、"私のところでの"といったのは、ビルド対象にmasterを選択していないからです
    • なので、実質developまで探してなかったら"ナイ"と判断されます
  feature Pull Request develop
STEP1 featuresample-branch PR.467 develop
STEP2 (master) develop (master)
STEP3 - (master) -

TravisCIのコンソールログ

### featureブランチビルド実行時の Setting up build cache
Setting up build cache
$ export CASHER_DIR=$HOME/.casher
0.06s$ Installing caching utilities
0.67sattempting to download cache archive
fetching featuresample-branch/cache--rvm-default--gemfile-Gemfile.tgz
fetching featuresample-branch/cache--rvm-default--gemfile-Gemfile.tbz
fetching master/cache--rvm-default--gemfile-Gemfile.tgz
fetching master/cache--rvm-default--gemfile-Gemfile.tbz
could not download cache

### Pull Requestビルド実行時の Setting up build cache
Setting up build cache
$ export CASHER_DIR=$HOME/.casher
0.07s$ Installing caching utilities
0.90sattempting to download cache archive
fetching PR.467/cache--rvm-default--gemfile-Gemfile.tgz
fetching PR.467/cache--rvm-default--gemfile-Gemfile.tbz
fetching develop/cache--rvm-default--gemfile-Gemfile.tgz
fetching develop/cache--rvm-default--gemfile-Gemfile.tbz
found cache

### developブランチビルド実行時の Setting up build cache
Setting up build cache
$ export CASHER_DIR=$HOME/.casher
0.06s$ Installing caching utilities
4.09sattempting to download cache archive
fetching develop/cache--rvm-default--gemfile-Gemfile.tgz
found cache

~ただの宣伝~

  • 全国のSeleniumer必読
  • Selenium, SauceLabs, TravisCI, Jenkinsに関するノウハウ書いているのでよかったら参考にしてみてください
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3