无法推送到不合格的目标:在部署到演示分支时使用master

时间:2015-05-11 19:05:28

标签: git heroku circleci

我正在尝试为我的应用程序创建一个演示分支,供应商可以登录以了解它的功能。

我有一个主分支,可以在Heroku上部署到生产中。另外,我有一个临时分支,可以部署到我的Heroku登台环境。在Github应用程序中,我创建了一个名为“demo”的分段分支的分支。

当我使用CircleCI部署时,收到以下错误:

unable to push to unqualified destination: master
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.

git push git@heroku.com:foobar-demo.git $CIRCLE_SHA1:master returned exit code 1

error: failed to push some refs to 'git@heroku.com:foobar-demo.git' Action failed: git push git@heroku.com:foobar-demo.git $CIRCLE_SHA1:master

我的circle.yml如下所示:

deployment:
  staging:
    branch: staging
    commands:
      - heroku maintenance:on --app foobar-staging
      #- heroku scale worker=0 --app foobar-staging
      - git push git@heroku.com:foobar-staging.git $CIRCLE_SHA1:master
      - heroku run rake db:migrate --app foobar-staging
      #- heroku scale worker=x --app foobar-staging
      - heroku maintenance:off --app foobar-staging

  demo:
    branch: demo
    commands:
      - heroku maintenance:on --app foobar-demo
      #- heroku scale worker=0 --app foobar-demo
      - git push git@heroku.com:lfoobar-demo.git $CIRCLE_SHA1:master
      - heroku run rake db:migrate --app foobar-demo
      #- heroku scale worker=x --app foobar-demo
      - heroku maintenance:off --app foobar-demo

分段的部署流程运行正常,唯一的问题是我的新演示分支。我尝试删除分支和Heroku应用程序(foobar-demo.herokuapp.com)并且没有任何运气。

1 个答案:

答案 0 :(得分:2)

我在SO thread中接受的答案中找到了解决方案。

我必须在circle.yml文件中将$CIRCLE_SHA1:master更改为$CIRCLE_SHA1:refs/heads/master