Related to the process of "write down what you did",
I'm reminded of this article about "literate sysadmin/devops" which used Emacs' org-mode as a way of combining prose, commands and command output.
http://howardism.org/Technical/Emacs/literate-devops.html
I read you should write it as an interactive script e.g.:
input("Build X")
input("Build Y")
input("Zip X & Y")
input("Upload release")
THen run the script and press enter as you do the steps. It means if you're interrupted as your proceed, you can resume exacly where you were before.If you implement it as functions:
def buildX():
input("Build X")
def buildY():
input("Build Y")
def ZipUp():
input("Zip X & Y")
def Upload():
input("Upload release")
if __name__ == '__main__':
buildX()
buildY()
ZipUp()
Upload()
Then you can automate parts piecemeal.
That's a hefty deploy protocol, though, and automating cross-platform builds may be more trouble than it's worth if you're releasing rarely.
It's pretty neat you follow a deploy checklist.