#1 is a certainty, essentially a script to rebuild the app and run the tests on it. While this could be done in a few steps in the IDE, I think this script would be handy.
Where I'm not quite sure about is the workflow that happens next. My first thought is that the developer will commit all of the changes in his branch, push these changes to the remote branch, and then issue a pull request. When the code is reviewed, approved, and the branch is merged with the Master branch then this will automatically call Jenkins as per #3.
But what about #2? Is it common to give a developer the ability to run all of the tests first in these 3 environments (or maybe just Remote Dev?) before committing such changes?
I would appreciate feedback from all CI experts out there!
Robert