如何在Travis Ruby on Rails中输入heroku凭据
我在RubyonRails站点上工作,我已经用它实现了TravisCI,并将其推到GitHub,以便在推到Heroku之前测试我的构建 当Travis解析我的github源代码时,我收到一个错误,要求我在Travis推送到Heroku之前输入我的如何在Travis Ruby on Rails中输入heroku凭据,ruby,git,ruby-on-rails-4,heroku,travis-ci,Ruby,Git,Ruby On Rails 4,Heroku,Travis Ci,我在RubyonRails站点上工作,我已经用它实现了TravisCI,并将其推到GitHub,以便在推到Heroku之前测试我的构建 当Travis解析我的github源代码时,我收到一个错误,要求我在Travis推送到Heroku之前输入我的Heroku凭据 我想做什么 我如何按照要求将heroku凭证传递给Travis,而不必承担将其置于版本控制的>风险 以下是基于Travis的构建: .travis.yml language: ruby rvm: - 2.2.4 env: glob
Heroku凭据
我想做什么
我如何按照要求将heroku凭证传递给Travis,而不必承担将其置于版本控制的>风险
以下是基于Travis的构建:
.travis.yml
language: ruby
rvm:
- 2.2.4
env:
global:
- secure: {{ I have my travis encrypted key here }}
- secure: {{ I another travis encrypted key here }}
- DB=sqlite
- DB=mysql
- DB=postgresql
- secure: {{ I have another travis encrypted key here }}
deploy:
provider: heroku
api_key:
secure: {{ I have HEROKU API KEY encrypted by travis here }}
script:
- RAILS_ENV=test bundle exec rake db:migrate --trace
- bundle exec rake db:test:prepare
before_script:
- mysql -e 'create database strano_test'
- psql -c 'create database strano_test' -U postgres
after_success:
- gem install heroku
- yes | ruby ./config/initializers/travis_deployer.rb
- git remote add heroku git@heroku.com:lawville.git
- heroku keys:clear
- yes | heroku keys:add
- git push heroku master
成功后,您无需在上手动推送到heroku。只需将deploy
与加密凭据一起使用,就足以在构建后自动部署。因此,尝试在成功后删除
命令,一切都会正常工作
有关更多信息,请查看
如果需要存储要在Travis上使用的凭据,可以向Travis添加安全环境。转到More options>Settings
,您可以将凭据添加为环境变量。只需确保将构建日志中的显示值设置为“关闭”以上@andresk的回答非常有用,但是加密api密钥对我来说并不起作用,正如您从我们的评论/通信中看到的那样
对我有效的是,从终端内我的应用程序的根目录运行setup heroku--org--force
,然后我按照提示获取具有正确部署脚本的Travis文件
注意:--force
命令用于强制在已存在的.travis.yml
文件上编写脚本
响应提示后,我的部署脚本变为:
deploy:
provider: heroku
api_key:
secure: encrypted_key_was_written_here
app: lawville # being app name on heroku which am deploying to.
on:
repo: AfolabiOlaoluwa/LawVille # GitHub Repo
这就是对我有效的方法。部署失败,出现以下错误正文:“{\'id\':\'unauthorized\”,“\'error\':\'Invalid credentials provided.\'”}”(错误的API密钥?)部署失败。打赌我确实加密了我的Heroku API密钥,并附加到了delpoy脚本。你是如何加密你的API密钥的?如果你不能这样做,你可以添加Heroku凭据作为travis安全环境变量,我将编辑我的答案以显示如何做的。我确实运行了这个travis encrypt$(Heroku auth:token)--添加deploy.api_key
,并添加了加密的api key。但还是失败了。你可以在这里查看我的travis文件。你也可以在这里查看m Travis Build#22和#23,嗯,那应该没问题。您确定heroku auth:token
返回了有效的api密钥吗?