Allow deployment steps on the command line to deploy_production.py

This enhances deploy_production.py to allow deployment steps to be
included on the command line, in addition to being extracted from
commit log comments.  Additionally, it contains other small
features:
  * Include the old and new branch hashes in the e-mail subject
    line, so that e-mail messages for different pushes will be
    distinguishable.
  * Guarantee that all deployment steps will be executed in a fixed
    order every time, rather than only guaranteeing that the 'sync'
    step will be executed first.
  * Make sure that each deployment step will run at most once.
  * Make names like "host-scheduler" and "host_scheduler" be the
    same, to protect against simple, easy-to-fix typos in 'DEPLOY='
    log lines.

BUG=None
TEST=run with TESTING set to True

Change-Id: Iabe2ed091ffcc750753483abdbbead775f8a3f6e
Reviewed-on: https://chromium-review.googlesource.com/209216
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
1 file changed