Travis CIでビルドの回数を抑える時

C++の場合は、一回のビルド・テストに非常に時間がかかるので、ビルドを減らしたい場合がある。 Travis CIでは、設定で

  • Build pushs
    • push時にビルド
  • Build pull requests
    • pull request 時にビルド

がある。 両方ONにすると、PR時に2回ビルドが走ることになる。 Travis CIの場合この2回のビルドは同じビルドではないが、PRのビルドだけ通れば十分である場合が多い。 以下のような設定を実現する方法を記載する。

  • PRでのbranchは全てビルド
  • pushでのビルドはmaster branchのみ

単純にBuild pushsをoffにすると、merge後のmasterのビルドが行われずに、badgeが更新されない。

補足

PRのビルドはmaster branchへのmerge後のビルドをしているので、pushのビルドとは異なる。 Travis CIが裏でmergeのコミットを作成し、ビルドしている。

方法

Travis CIの設定から以下をONにする。

  • Build pushs
  • Build pull requests

.travis.ymlに以下を記載する。

branches:
  only:
    # branchs through PR are built
    - master