I'm trying to deploy a simple Geddyjs (node.js) app to Heroku.
When I make a push a recive that error:
git push heroku master
Heroku receiving push
Heroku push rejected, no Cedar-supported app detected
What I have to do to that heroku detect the nodejs app?
couple of things did you do this for cedar you need to explicitly say this (I am sure you have done this but here for completeness)
heroku create --stack cedar
ensure that your package.json is at the root
heroku have a good article on this
You should now be able to
git push heroku master
Have you added Procfile and package.json to your local git repo. and committed them?
I had created them but forgot to add & commit them so when pushed these files weren't uploaded hence Heroku didn't know the type of app.
Adding, committing & re-pushing fixed this.
Obvious when you know:-)
Related
When I create a new Heroku app it gives me
https://obscure-plains-01212.herokuapp.com/
but this URL is not conventional to my app so I change the app name in the Heroku site buzzing-api and then Heroku gives me a new repository
https://git.heroku.com/buzzing-api.git
in stack its shows
Stack heroku-22 will replace Heroku-20 on the next deploy
So I try to re-deploy in my terminal but says
remote: ! No such app as obscure-plains-01212.
how can I add a new repository in the previous Heroku repository to avoid this error
You renamed the heroku app so your heroku repository url is also changed. But most probably you didn't change your heroku remote git url in your local project. Running these 2 commands should do the job:
git remote rm heroku
git remote add heroku https://git.heroku.com/buzzing-api.git
I would like to deploy a Heroku app which will be done ideally using git push -u heroku master. However this will only work if there are any pending commits to be pushed to master.
How can I redeploy the app while there is nothing to push ? I tried git push -u heroku master -f and still get the same below
Branch master set up to track remote branch master from heroku.
Everything up-to-date
PS: I also want to retain the existing app, which means I cannot make use of this answer https://stackoverflow.com/a/22043184/968442
Normally setting a config var causes your application to be restarted. In most situations there should be no need to redeploy after doing this.
If you really do need to trigger a new deployment you can add a new empty commit, then push to Heroku again:
git commit --allow-empty -m "Trigger Heroku deploy after enabling collectstatic"
git push heroku master
The new empty commit is a regular commit. It has a hash, an author, a timestamp, etc. It will have the same tree as its parent. This should cause Heroku to build your app slug again using the same code as the previous commit.
It's a bit awkward, but it works.
You can do it from UI as well!
Login to your Heroku dashboard and go to deploy section
Find Manual deploy option
Hit Deploy Branch button!
Note: you must have your app connected to GitHub for this option to be available (see comment from Derek below).
There is now also a plugin for the Heroku command-line that allows you to re-release the most recently deployed slug.
See https://www.npmjs.com/package/heroku-releases-retry
It turns out there is a neat plugin for Heroku called heroku release retry that lets you retry the last deploy without resorting to adding bad commits to your repository.
// install plugin
heroku plugins:install heroku-releases-retry
// retry release
heroku releases:retry --app {your-app}
Source: https://www.darraghoriordan.com/2019/03/02/heroku-push-failed-force-rebuild
You can run heroku restart --app app_name and you are good to go.
This worked for me, it did an actual build and release without any commit, contrary to one other post that only does a release:
heroku plugins:install heroku-builds
heroku builds:create --source-url https://user:token#api.github.com/repos/<username>/<repo name>/tarball/master/ --app <app-name>
Source: https://help.heroku.com/I3E6QPQN/how-do-i-force-a-new-deploy-without-adding-a-commit-to-my-github-repo
For stop the heroku app uses :
$ heroku ps:scale web=0
And for start it uses :
$ heroku ps:scale web=1
I have a node.js app in a git repo that looks like this:
/docs
/server
.gitignore
The actual node app is in the 'server' folder, but both it and the docs are in the git repo seen above.
I went through heroku's instructions for creating an app, and have the heroku cli installed on my laptop.
I went into the server folder of my repo and ran heroku create and made sure there was a new remote for heroku afterward-- there was. I also made sure to run heroku buildpacks:set heroku/nodejs and it did so successfully. (I can see that in my heroku dashboard.)
But when I try git push heroku master I get the error in my post title.
Just for fun, I deleted my app on heroku and this time ran heroku create from the root folder, and not the server one. I also ran heroku buildpacks:set heroku/nodejs again. I double-checked the new heroku app name and remote and tried to push again. Unfortunately I got the same "App not compatible with buildpack" message.
Is all this because my git repo's root folder doesn't have a package.json file? Is there a way I can tell heroku, 'hey, look in the server folder for package.json when you're building'?
I am new to heroku and I am trying to create an app and deploy, but when i do heroku create on CLI this creates a random name for the application. So I used heroku app:create project-name which created the application with the project-name but how do i deploy my existing code to that application.
If you've already performed heroku create without specifying a name in your application folder then you will already have a git remote named heroku. You can confirm this by doing
git remote -v
in your project folder which will probably show something like
heroku git#heroku.com:stark-taiga-7738.git (fetch)
heroku git#heroku.com:stark-taiga-7738.git (push)
When you then create an application specifying an application name then the existing remote will not get updated with the new application details.
To fix this you will need to remove the existing git remote named heroku and then add a new one pointed to the correct application.
git remote rm heroku will remove the existing remote
heroku git:remote --app <new app name> will create a new heroku remote pointing at your new application will then let you do git push heroku master and deploy to the correct application.
Heroku uses Git to deploy. Navigate to the home directory of your application and simply do
git push heroku master
See the documentation for deploying a node.js application to Heroku for details.
Hi I developed a small application in nodeJs and angular using the angular-fullstack generator for grunt, following the instruction on: https://npmjs.org/package/generator-angular-fullstack, when I finished the developement run:
3) yo angular-fullstack:deploy heroku
4) cd heroku && git push heroku master
my application now is on heroku and the dynos starts, but when I visit the domain where heroku put my application: http://dollsdresses-gnosis.herokuapp.com/
I can see that some files are missing: main.css, script.js , all I can see is a white page with my favicon, when I use my application on my computer, running: grunt server, it works, so I think there is something that I do not know or do wrong on deploying on heroku.
You may not have added main.css, script.js et al to git, so they are not pushed to Heroku when you run git push heroku master. Make sure to git add them.