LoginSignup
4
3

More than 3 years have passed since last update.

Travis CI で "Skipping a deployment with the <PROVIDER> provider because this branch is not permitted: <BRANCH>" と言われるときは多分 deploy: on: branch: <BRANCH> が足りない

Posted at

概要

Travis CI でジョブが実行されたものの

Skipping a deployment with the <PROVIDER> provider because this branch is not permitted: <BRANCH>

みたいなメッセージが出力されててデプロイできてない! どうして!
という場合は .travis.ymldeploy 要素に on: branch: <BRANCH> が足りてないはずなので追加しましょう、というお話です。完。

GitHub と Travis CI を連携させていて「master ブランチは本番環境に、develop ブランチは開発環境にデプロイしたいよー」という状況があるとします。
このとき一旦 develop ブランチについての設定だけ .travis.yml に書いたとします。

こんな感じ:

.travis.yml
branches:
  only:
    - develop
deploy:
  provider: script
  ...
script:
  - ...

branchesonlydevelop を指定したしこれでいけるやろ」と思って develop ブランチのファイルに変更を加えてジョブの経過を見守るんですが、そこで

Skipping a deployment with the script provider because this branch is not permitted: develop

とか言われてデプロイできないんですね。しょんぼりですね。

こうなってしまうのは deploy 要素に on: branch: develop がないからです。
なのでこの設定を追加します。
こんな感じ:

.travis.yml
branches:
  only:
    - develop
deploy:
  provider: script
  on:                # 追加
    branch: develop  # 追加
  ...
script:
  - ...

これで OK 。

おまけ:branchesdeploy

branches

branches に指定するのは「デプロイするブランチ」ではなく「ビルドする (もしくはしない) ブランチ」です。
もっと細かく言うと「ビルドを実行するためのトリガーとする (もしくはしない) ブランチ」です。

branchesonly 要素を設定すると、そこに指定したブランチが更新された場合にビルドを実行します (セーフリスト) 。
only ではなく except 要素を設定すると、そこに指定したブランチ 以外 が更新された場合にビルドを実行します (ブラックリスト) 。
onlyexcept の両方が設定された場合は only の方が有効になります。
デフォルト (どちらも省略した場合) では gh-pages を除く各ブランチが更新された場合にビルトを実行するようです 1

詳細は Travis CI 公式の Building Specific Branches を参考にしましょう。

deploy

deploy にはビルドで作成された資材のデプロイについての設定を記述します。
deployon 要素の中にデプロイするための条件を指定することができ、条件の種類の 1つに branch があります。文字通り「そのブランチであればデプロイする」というものです。
deploy: on: branch: develop は「ブランチが develop であればデプロイする」ということになります。
デフォルト (branch が省略された場合) ではデプロイの対象として master ブランチが採用された状態になります。

こちらの詳細は Conditional Releases with on: を参考にしましょう。

おしまり


  1. gh-pages は GitHub Pages 用の (GitHub における) 特別なブランチ。ただし、現在は master ブランチを GitHub Pages で公開することができるのであまり意識しなくてよいはず。 

4
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
4
3