CircleCI Heroku Git子树测试难题

时间:2015-05-06 10:21:14

标签: ruby-on-rails ruby heroku circleci

我正在开发一个在前端运行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。

1 个答案:

答案 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