For a bit of background I am looking at upgrading from 3.10.1 to 3.12 which will be the first upgrade for our production system. I've run a few test upgrades which appear to me to be successful. However I just do the dirty work and others worry about driving the application so I wouldn't be the best at telling whether the upgrade worked 
From what I can gather from the upgrade notes, the final tasks in an upgrade eg. Reparse designs, Regenerate metadata schemas, Clear MySource Matrix Cache appear to not be required before progressing on with the next upgrade. Is this correct? Couldn't spot anything on the forum about this.
So for my case upgrading from 3.10.1 -> 3.10.2 -> 3.10.3 -> 3.10.4 -> 3.12 could then be done without having to log in to the application at each step to perform a number of tasks.
The main reason I am asking is that I am trying to get the upgrade process automated. So if there are any known issues with automating the process I am all ears.
Thanks
In general, those tasks can be done after a series of upgrades. They can take a fair amount of time, so it's best to leave them until the end and then do your testing.
I wouldn't skip them if going between major versions though. It's best to test a major version jump first before moving onto the minor versions. But in your case, you should be fine.
I suppose it is a bit much to ask how those actions (Reparse designs, Regenerate metadata schemas, Clear MySource Matrix Cache) can be automated other than by firing off HTTP requests as if someone were manually performing the actions.
I'd really like not to start delving into code that is likely to change between versions and hence make the whole point of me automating the task redundant. The point being hands off for me and upgrades can be scheduled to occur during quiet periods without staff needing to do overtime. Just trying to get a feel for whether I am opening up a can of worms or is this path actually worth some time and investigation?
Reparsing designs can be done with a script available in the /scripts dir. Clearing cache and regen metadata needs to be done with HIPO jobs. You do need to dive into the code to see how to start one of those, but they are designed to run in isolation; like a script would do.
Edit: Forgot to say that the code required to start a HIPO job is not likely to change in future versions, so it's pretty safe to automated the task we have been talking about.
Thanks for all that, and fast reponses!!
Cheers