通过Travis-CI部署到Heroku的问题

时间:2018-08-20 07:29:22

标签: heroku travis-ci

在使用Heroku进行部署时,我一直收到此错误,并且在通过Travis运行了它们的构建后,我试图将其部署到Heroku的报告也有所不同。

No stash entries found.
API request failed.
Message: Invalid credentials provided.
Reference: 
failed to deploy

我没有比这更多的信息了。我尝试更新我的Heroku API密钥,但这似乎没有用。我使用了Travis setup Heroku命令以及手动创建了构建步骤,但是仍然遇到相同的错误。这是我的.travis.yml文件的deploy部分的样子

部署:   提供者:heroku   api_key:     安全:g3gj25vI58r48P63E ...   应用:heroku-travis-test-01   上:     回购:andrico1234 / heroku-travis-test

  

这是常见问题吗?

     

编辑:添加Travis的安装依赖项堆栈跟踪

2.71s$ rvm $(travis_internal_ruby) --fuzzy do ruby -S gem install dpl
Fetching: dpl-1.10.0.gem (100%)
Successfully installed dpl-1.10.0
1 gem installed
dpl.1
Installing deploy dependencies
Fetching: multipart-post-2.0.0.gem (100%)
Successfully installed multipart-post-2.0.0
Fetching: faraday-0.15.2.gem (100%)
Successfully installed faraday-0.15.2
Fetching: rendezvous-0.1.2.gem (100%)
Successfully installed rendezvous-0.1.2
Fetching: netrc-0.11.0.gem (100%)
Successfully installed netrc-0.11.0
Fetching: dpl-heroku-1.10.0.gem (100%)
Successfully installed dpl-heroku-1.10.0
5 gems installed

4 个答案:

答案 0 :(得分:0)

这是一个加密问题,具体取决于托管Travis帐户的位置(travis-ci.comtravis-ci.org)以及您的项目是否公开。

我使用了一个连接在travis-ci.com上的公共项目,而Travis-ci doc about deploy to Heroku给出的命令不起作用: travis encrypt $(heroku auth:token) --add deploy.api_key

要保证正确的加密,在我的情况下,请使用--org(对于travis-ci.org)或--pro(对于travis-ci.com)标签:

travis encrypt $(heroku auth:token) --add deploy.api_key --pro

请参见Travis-CI issue #10018

答案 1 :(得分:0)

出于某种原因,heroku auth:token为我返回了错误的令牌,即使在确保我已在命令行上登录到heroku之后。

尝试所有发布的解决方案后,对我有用的是:

  • 转到Heroku Account
  • 手动复制API密钥,然后将其粘贴到命令行中:
    • 对于托管在travis-ci.com上的主机:
    • travis encrypt pasteAPIKeyHere --add deploy.api_key --pro
    • 对于托管在travis-ci.org上的主机:
    • travis encrypt pasteAPIKeyHere --add deploy.api_key --org

希望这会有所帮助。

答案 2 :(得分:0)

通过以下操作解决了该问题:

Scanner

在我将应用程序名称与GitHub存储库的名称相同之前。但是,如果应该是heroku应用程序的名称。区别在于破折号,而且有效!

答案 3 :(得分:0)

就我而言,我不得不使用travis login --pro重新登录,然后travis encrypt $(heroku auth:token) --add deploy.api_key --pro生成正确的api-key。我使用免费的Travis版本。

Travis Heroku文档中提到了此问题:https://docs.travis-ci.com/user/deployment/heroku/

travis命令默认使用travis-ci.org作为API端点。如果 您的版本在travis-ci.com上运行(即使您的存储库是公共的), 添加--pro标志以覆盖此内容: travis encrypt $(heroku auth:token) --add deploy.api_key --pro