heroku-deploy: Unable to push branch because the branch is behind the deployed branch. Using --force to deploy branch.
Hi. First of all, thanks for your work. It is becoming an easy-going and straightforward tool to use inside the actions.
But for two days I’m getting this error in my deploy action. The branches in Heroku are pretty clean and I can use it normally in my local environment, pushing to Heroku. It also works in the Travis CI.
Don’t mind the open Postgres user and pass. It will be changed and moved to secrets and my test database has no secrets to the outside world.
Pay attention, please, on the “staging deploy” since the “production deploy” has some attempts I’ve made within these two days.
What am I missing?
I’ll appreciate any help.
Thanks
Config file:
name: FlowClimateBuild
on: [push]
jobs:
linters:
name: Linters
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.1
- name: Ruby gem cache
uses: actions/cache@v1
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Install gems
run: |
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- name: Run linters
run: |
bundle exec rubocop --parallel
tests:
name: Tests
runs-on: ubuntu-latest
services:
postgres:
image: postgres:12
env:
POSTGRES_DB: flowcontrol_test
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: "postgres"
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.1
- name: Ruby gem cache
uses: actions/cache@v1
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Install gems
run: |
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- name: Setup test database
env:
RAILS_ENV: test
PG_HOST: localhost
PG_USER: ""
PG_PASSWORD: ""
PG_PORT: ${{ job.services.postgres.ports['5432'] }}
run: |
bundle exec rails db:setup
- name: Run tests
run: bundle exec rspec
env:
secret_key_32_encoded: "8L+WeHTWhNtEAvQzoRaYqYtl4VCwDMReh2SzicO/iCA=\n"
deploy-staging:
runs-on: ubuntu-latest
# needs: [linters, tests]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: akhileshns/heroku-deploy@v3.5.6
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: "flowclimatestaging"
heroku_email: "celso.av.martins@gmail.com"
deploy-prd:
runs-on: ubuntu-latest
# needs: [linters, tests]
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v2
- name: Staging deploy
run: |
git push -f https://heroku:${{ secrets.HEROKU_API_TOKEN }}@git.heroku.com/flowclimateapp.git origin/develop:master
Complete error message:
Created and wrote to ~/.netrc
Successfully logged into heroku
heroku: Press any key to open up the browser to login or q to exit: › Warning: heroku update available from 7.43.0 to 7.43.2.
Added git remote heroku
heroku: Press any key to open up the browser to login or q to exit: fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Unable to push branch because the branch is behind the deployed branch. Using --force to deploy branch.
(If you want to avoid this, set dontuseforce to 1 in with: of .github/workflows/action.yml.
Specifically, the error was: Error: Command failed: git push heroku HEAD:refs/heads/master
fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: 'heroku' does not appear to be a git repository
Error: Error: Command failed: git push heroku HEAD:refs/heads/master --force
fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 10
- Comments: 42 (15 by maintainers)
Commits related to this issue
- try to fix deploy to heroku as https://github.com/AkhileshNS/heroku-deploy/issues/35 — committed to TallerWebSolutions/flow_climate by celsoMartins 4 years ago
- try to fix deploy to heroku as https://github.com/AkhileshNS/heroku-deploy/issues/35 — committed to TallerWebSolutions/flow_climate by celsoMartins 4 years ago
- Added branch to heroku-deploy https://github.com/AkhileshNS/heroku-deploy/issues/35#issuecomment-1123215559 — committed to PalisadoesFoundation/talawa-api by palisadoes 2 years ago
- Use manual push again See https://github.com/AkhileshNS/heroku-deploy/issues/35#issuecomment-718067543 — committed to gabrieljoelc/resume by gabrieljoelc 2 years ago
- Update README.md https://github.com/AkhileshNS/heroku-deploy/issues/35#issuecomment-1123215559 — committed to jhack32/heroku-deploy by jhack32 2 years ago
So some of the git logs are just default logs from the action (I suppose that needs to be updated).
Based on your logs @rogargon, it seems like there might be a path issue with the ADD command in Docker. So the two fixes that come to mind are, you can try switching from ADD to COPY (which works sometimes somehow) or you could doublecheck if the path to whatever you’re importing is accurate relative to the location of the Dockerfile.
Sources: https://stackoverflow.com/questions/47281687/dockerfile-add-failed-no-source-files-were-specified https://stackoverflow.com/questions/54425742/docker-add-giving-error-no-source-files-were-specified
If it’s none of these and the problem is in fact an issue with the Action, then you can try the following:
The “justlogin” option essentially turns the “heroku-deploy” action to a “heroku-login” action for all intents and purposes. So from there you should be able to use it like you would use the local Cli on your machine to deploy your code. So based on that, I would recommend deploying the code you have on your machine from the heroku cli and add the same commands in the commented section of the answer and it should just work.
P.S Normally the Heroku Deploy action also checks if the app-name for your app is available or not and automatically creates the app if it isn’t. If you do choose to go the justlogin route, keep in mind you will need to create the app and then put only the deploy commands in the commented section.
Reference: https://devcenter.heroku.com/articles/container-registry-and-runtime
I’ve been running into this issue quite a bit for the past hour:
One possible cause is that
HEROKU_API_KEY
may not be defined in the environment for the Github Action step. As a result, the action would prompt you to log in via a browser.To resolve, you need to:
(Optional) Run
heroku auth:token
to generate a new long-term token if you don’t have one already.Add
HEROKU_API_KEY
to your job’s environment.Hope this helps. 🚀
@robertherber same here
I’m facing this error now. Works when running the same code locally. Didn’t upgrade the action or anything - it just stopped working (and didn’t help upgrading to the latest). Seems like there are some outdated underlying dependencies - could that have something to do with it?
I am also facing similar issue during push