特拉维斯宝石部署失败"目录不存在"

时间:2014-11-12 12:34:52

标签: ruby deployment rubygems travis-ci

我不明白为什么部署不起作用。我在构建控制台中收到以下错误:

Preparing deploy
Found gem 
/usr/lib/git-core/git-stash: 186: /usr/lib/git-core/git-stash: cannot create     /home/travis/build/prismicio/ruby-kit/.git/logs/refs/stash: Directory nonexistent

构建:https://travis-ci.org/prismicio/ruby-kit/jobs/40767391

我的.travis.yml

language: ruby
rvm:
- 2.1.1
- 2.1.0
- 2.0.0
- 1.9.3
- 1.9.2
- jruby-19mode
script: bundle exec rspec spec
notifications:
  email:
  - example@example.com
addons:
  code_climate:
    repo_token: X
deploy:
  provider: rubygems
  api_key:
    secure: XXX
  gemspec: prismic.gemspec
  on:
    tags: true
    all_branches: true

构建有什么问题?

1 个答案:

答案 0 :(得分:0)

错误:

  

/usr/lib/git-core/git-stash:186:/usr/lib/git-core/git-stash:无法创建/home/travis/build/prismicio/ruby-kit/.git/logs/refs/stash:目录不存在

可能与您将文件部署到提供商的方式有关,并且由git stash及其DPL::Provider#cleanup进程触发(请参阅:releases.rb)。默认情况下,Deployment Provider将部署最新提交的文件。所有提供程序都不支持这一点,因此这只是意味着“发布”提供程序需要跳过清理,因此它应该从当前文件状态进行部署(参见@BanzaiMan comment),方法是添加以下行:

skip_cleanup: true

这是因为每个提供程序都有略微不同的标记,这些标记在Deployment section中(或GitHub for supported providers上的最新文档检查)。

此外,上述错误基本上与Travis CI错误(GH #1648)有关,其中基本上File#basename正在剥离目录部分(根据@BanzaiMan comment)并且不清楚为什么这种情况无法在CLI案例中体现出来。所以这是在不久的将来要解决的问题。