【问题标题】:Travis gem deployment failing "Directory nonexistent"Travis gem 部署失败“目录不存在”
【发布时间】:2014-11-12 12:34:52
【问题描述】:

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

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

构建有什么问题?

【问题讨论】:

  • 虽然日志中似乎确实存在错误,但部署 gem 似乎仍然有效,不是吗?
  • 我其实是手动部署的。

标签: ruby deployment rubygems travis-ci


【解决方案1】:

错误:

/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 中体现案子。所以这是在不久的将来解决的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2014-02-19
    • 2021-10-30
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    相关资源
    最近更新 更多