【发布时间】:2015-05-06 10:21:14
【问题描述】:
我正在开发一个在前端运行 Rails 后端和 Angularjs Web 应用程序的项目。这两个应用程序都在一个主项目文件夹中作为子目录来检查这两个,我一直在使用 git subtree push 将 Rails 应用程序从根文件夹部署到 Heroku。
我现在正在寻找使用 CircleCI,但在使用此项目结构和让 CircleCI 运行正确的测试并且仅将 Rails 应用程序部署到 Heroku 时遇到了困难。
我在circle.yml中尝试了following
general:
build_dir: server
deployment:
staging:
branch: staging
commands:
- git subtree push --prefix server git@heroku.com:app-name-staging.git master
此配置允许我运行 Rails 应用程序中的测试,但不会部署,返回错误“您需要从工作树的顶层运行此命令。”
general:
build_dir: server
deployment:
staging:
branch: staging
commands:
- git push git@heroku.com:app-name-staging.git master
这给了我错误“推送被拒绝,没有检测到 Cedar 支持的应用程序”,因为 Heroku 没有检测到 Rails 的 buildpack。
我还尝试在根文件夹中放置一个简单的 shell 脚本测试并从 circle.yml 中删除 build_dir,它将通过测试并将 Rails 应用程序的子树推送到 Heroku,但不运行在 Rails 应用程序中进行测试。
我有两个选择,一个是运行 Rails 应用程序的测试,但不会只将 Rails 应用程序部署到 Heroku,第二个是在根目录中运行测试,但不在实际的 Rails 应用程序上运行测试,但会正确部署。 我正在寻找一种将这两个选项结合起来的方法,以便能够运行 Rails 应用程序的测试,然后仅将 Rails 应用程序部署到 Heroku。
【问题讨论】:
标签: ruby-on-rails ruby heroku circleci