Travis CIでデプロイ処理でprovider: scriptするとき、複数の処理がうまくいかない

デプロイ処理でprovider: scriptしているときに複数のスクリプト処理をしたいがコケる

deploy:
  provider: script
  skip_cleanup: true
  script:
    - yarn run build
    - yarn run test
    - yarn run deploy
  on:
    branch: master
    tags: true

なぜ?

Issue情報

なるほど

deploy:
  provider: script
  skip_cleanup: true
  script:
    yarn run build && yarn run test && yarn run deploy # アンパサンドで書く
  on:
    branch: master
    tags: true

アンパサンド連結でこう書く。

script:
  - foo
  - bar
  - baz

なぜ他の欄のscript:の書き方では通るこの書き方で通らないのか!!となるけど、まあprovider: scriptがまだ現時点(2018-02-11)も実験的な機能実装扱いだからそういうものなんやで〜、ということになる。

いつか改善されて欲しい!

Travis CIで"SH: 1"とか言われnpm scriptsがコケる

sh: 1: gulp: not found

と言われてコケる。原因はpackage.jsonnpm scripts

"scripts: {
  "build": "gulp hoge --production"
}

としつつ、.travis.yml

deploy:
  provider: script
  skip_cleanup: true
  script:
    yarn build # run省略
  on:
    branch: master
    tags: true

yarn buildというようにrunを省略していたからだった。

deploy:
  provider: script
  skip_cleanup: true
  script:
    yarn run build # run追加
  on:
    branch: master
    tags: true

これでコケなくなった。

Issue情報

github.com

参考になった。