First, you'll need a Heroku account, a already-existing Flask app, and a GitHub account. I won't explain how to get these. Use your brain or read another tutorial.
Next, create a new GitHub repo. Put your Flask app under the filename 'app.py'. If you depend on anything, including Flask, put it under your 'requirements.txt' file. Here's mine.
You'll probably want the latest Python version. Put 'python-3.8.5' under 'runtime.txt', or the latest version.
And just so other people can use it, if you haven't added it already, add a license. I recommend the MIT license or the Unlicense.
Want to verify your server works so nobody gets a non-booting server? Add this file under the name 'testboot.py'. If you want to detect the testing enviroment, you can use '"debuggy" in globals()'. Then to actually make it run automatically, copy and paste this file's contents under the name '.github/workflows/main.yml'.
Okay. Put 'web: gunicorn app:app' in to the file 'Procfile' at the root directory. Almost done! I bet you'll enjoy all of the special features.
Now link your GitHub account to your Heroku account. Google it if you don't know how. Make a new Heroku app, and link it to your GitHub repo. Under build, enable automatic deploys, and enable 'Wait for CI to pass before building'. If everything's right, it should work!
You know, you're probably not going to email me. The only visitors I see are from other countries. And yes, I won't check my spam folder. And yes, I will know your email address if you email me. But I don't want to set up any other services, because I already juggle multiple tasks. So email me at k i d s c o d i n g p l a c e @ g m a i l . c o m