【问题标题】:Issues with Deploying to Heroku via Travis-CI通过 Travis-CI 部署到 Heroku 的问题
【发布时间】:2019-01-26 07:09:50
【问题描述】:

在使用 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 文件的部署部分的样子

部署: 提供者: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

【问题讨论】:

  • 我收到了这个确切的错误信息。在我的情况下,它是由无效的 API 凭据引起的,并通过刷新它们来修复(每个 docs.travis-ci.com/user/deployment/heroku
  • 我也有同样的问题。 Derek Hill 该链接没有关于刷新您的凭据的任何内容,您是指 Heroku 还是 Travis 凭据,您能详细说明一下吗?
  • 有些东西我不明白......我有同样的最终错误,然后我尝试使用未加密的heroku令牌并且它工作......我关注关于herokuencryption的文档......我不知道发生了什么。

标签: heroku travis-ci


【解决方案1】:

这是一个加密问题,取决于您的 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

为了保证正确的加密使用--orgtravis-ci.org)或--protravis-ci.com)标签,在我的例子中:

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

Travis-CI issue #10018

【讨论】:

    【解决方案2】:

    由于某种原因,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

    希望这会有所帮助。

    【讨论】:

    【解决方案3】:

    通过这样做修复它:

    deploy:
      provider: heroku
      api_key:
        secure: ENCRYPTED_API_KEY
      app: simple-e-shop <--------------------
      on:
        repo: john-doe/simple-eshop
    

    在我将应用名称与 GitHub 存储库的名称相同之前。但如果应该是 heroku 应用程序的名称。不同之处在于一个破折号字符,并且有效!

    【讨论】:

      【解决方案4】:

      在我的情况下,我必须使用 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-09
        • 2015-02-18
        • 1970-01-01
        • 2016-07-06
        • 2020-07-01
        • 1970-01-01
        • 2018-04-30
        相关资源
        最近更新 更多