我正在开发一个在前端运行Rails后端和Angularjs Web应用程序的项目。这两个应用程序都在一个主项目文件夹中作为子目录,以保持两个检查,我一直在使用git子树推送从根文件夹部署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应用程序中的测试但不会部署,返回错误&#34;您需要从工作树的顶层运行此命令。&#34; < / p>
general:
build_dir: server
deployment:
staging:
branch: staging
commands:
- git push git@heroku.com:app-name-staging.git master
这给了我错误&#34; Push被拒绝,没有检测到Cedar支持的应用&#34;因为Heroku没有检测到Rails的buildpack。
我还尝试在根文件夹中放置一个简单的shell脚本测试,并从circle.yml中删除build_dir,它将通过测试并将Rails应用程序的子树推送到Heroku,但不会运行在Rails应用程序中进行测试。
我有两个选项,一个运行Rails应用程序的测试,但不会只将Rails应用程序部署到Heroku,第二个运行测试在root中但不在实际的Rails应用程序上,但会正确部署。 我正在寻找一种方法来组合这两个选项,以便我能够运行Rails应用程序的测试,然后只将Rails应用程序部署到Heroku。
答案 0 :(得分:2)
在与CircleCi的人员联系后,他们帮我找出了正确的使用命令
general:
build_dir: server
deployment:
staging:
branch: staging
commands:
- cd .. && git push git@heroku.com:app-name-staging.git master
这就像一个魅力,测试rails服务器应用程序然后只将此应用程序部署到Heroku