我正在开发一个在前端运行 Rails 后端和 Angularjs Web 应用程序的项目。这两个应用程序都在一个主项目文件夹中作为子目录来检查这两个,我一直在使用 git subtree push 将 Rails 应用程序从根文件夹部署到 Heroku。
我现在正在寻找使用 CircleCI 并且在使用这个项目结构和让 CircleCI 运行正确的测试并且只将 Rails 应用程序部署到 Heroku 时遇到了困难。
我在 circle.yml 中尝试了以下操作
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 应用程序部署到 Heroku,第二种是在根目录中运行测试,但不在实际的 Rails 应用程序上运行,但会正确部署。我正在寻找一种方法来结合这两个选项,以便我能够运行 Rails 应用程序的测试,然后只将 Rails 应用程序部署到 Heroku。