我正在尝试为我的应用程序创建一个演示分支,供应商可以登录以了解它的功能。
我有一个主分支,可以在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)并且没有任何运气。
答案 0 :(得分:2)
我在SO thread中接受的答案中找到了解决方案。
我必须在circle.yml文件中将$CIRCLE_SHA1:master
更改为$CIRCLE_SHA1:refs/heads/master
。