最近TravisCIを使うようになったのですが、
デフォルトのままだと全てのブランチのpushやPRに反応してしまうので、 特定のブランチとタグ にだけ反応するようにしました。
ちなみにTravisCI上でも設定はできますが、こちらは全てのブランチのpush/PRに対して実行するしないを決めるものなので、今回したかったことと違いました。
特定のブランチだけに限定する
例えば、 master、develop ブランチだけにするばあいは、ホワイトリストとして以下のように .travis.yml に指定します。
branches:
only:
- master
- develop
only: 属性内に、限定したいブランチ名を記述することで、ホワイトリストに追加することができます。
逆に、 特定のブランチだけ除外 したい場合は、 except: 属性を指定します。
branches:
except:
- test # testブランチを除外する
タグにも反応するようにする
しかし、上記のままだとmaster,developブランチにしか反応せず、tagをpushした時にtravisを走らせることができないです。
人によってはtagをpushしても何もしなくていい場合があるので、その人には無用ですが、
自分の場合は、tagのpushによってtravisを走らせ、Github上にReleaseを作成してそこにバイナリをあげる必要があるので、tagの検知が必須になります。
その場合は以下のように 正規表現 を用いて検出するようにします
branches:
only:
- master
- develop
- "/^v?[0-9\\.]+/"
これで、
- 1.0.0
- v1.2.3
といったタグに対しても反応するようにします。最初は tags: という項目があったと思ったのですが、どうやら branches: に指定する形で問題ないようです。