I currently have a fairly manual process when releasing a new build in TestFlight:
Jenkins is a build server with plugins for xcode and TestFlight. It is a huge time saver if you have multiple projects to upload. Once the job is set up, it can be a one-click process to deliver the apps to TestFlight. With my set up, I even get a email when the build has completed the upload to TestFlight.
Note, it does not do the first 6 points of your question, but it does do the rest.