我正在尝试通过 Travis CI 将 AngularJS 应用程序部署到 Divshot 主机上。
这个应用程序包含一个/dist
目录,它是:
- Grunt 构建的结果在哪里(就像在本地一样)
.gitignore
d,因此没有被推动(特拉维斯必须重建它)- 设置为 Divshot 应用程序的根目录
多亏了这个.travis.yml
文件,Travis 安装了 deps 并很好地运行了构建:
language: node_js
node_js:
- '0.10'
install:
- "npm install"
- "gem install compass"
- "bower install"
script:
- "grunt build"
deploy:
provider: divshot
environment:
master: development
api_key:
secure: ...
skin_cleanup: true
但谈到部署,Travis 说:
Error: Your app's root directory does not exists.
这实际上是一条消息,divshot-cli
因为该/dist
目录不存在。删除目录divshot push
后在本地执行操作时,我会收到完全相同的消息。/dist
这是一个无法部署的构建:https ://travis-ci.org/damrem/anm-client/builds/35582994
/dist
安装和构建运行正常后,为什么 Travis VM 上不存在该目录?
笔记:
- 我尝试
script
一步一步替换before_deploy
,但问题仍然存在(build #13)。 - 如果我推送一个包含一个预先存在的
/dist
文件夹index.html
,它会很好地部署(https://travis-ci.org/damrem/anm-client/builds/35583904)