commit | e3886f47d7832b18854c073838d836cf7a8b334b | [log] [tgz] |
---|---|---|
author | Mike Nichols <mikenichols@chromium.org> | Thu Jul 18 19:02:32 2019 |
committer | chrome-bot <chrome-bot@chromium.org> | Wed Jul 24 07:33:04 2019 |
tree | 66eb976cdc6d04661c09a884fa4c29d4b99ecdf3 | |
parent | 97ac1d26995b60f5878a70d5bd1fd5b268879aa1 [diff] |
gerrit_cq.py: Add check to ensure missing emails are handled Currently the exonerator is not handling messages without emails, which does appear to be happening, therefore we need to check for email before handling the message. BUG=chromium:985435 TEST='deploy to prod; watch logs' Change-Id: Ib2fa56d4b981e9dab977acc3ccb586084b1d279e Reviewed-on: https://chromium-review.googlesource.com/1709236 Tested-by: Mike Nichols <mikenichols@chromium.org> Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org> Reviewed-by: Mike Nichols <mikenichols@chromium.org> Reviewed-by: Dhanya Ganesh <dhanyaganesh@chromium.org> Reviewed-by: David Burger <dburger@chromium.org>
https://chromium.googlesource.com/chromiumos/infra/cl_exonerator
This app finds CLs which were incorrectly blamed for a CQ failure, and re-marks them as CQ-ready. It does this by polling cidb‘s buildMessageTable for finalize messages, then finds CLs which were blamed in the build’s annotatations and marks them as CQ+1 in Gerrit (if they haven't already been).
Create a “creds” folder, then:
For local development, run “cros cidbcreds --folder=creds/cidb” to fetch the readonly credentials.
For deploying to production, see go/cros-cidb-admin and get the prod_cidb_gen2_annotator credentials.
Local deployment is done by creating a virtualenv with pipenv:
# pipsi is a nice python utility for installing other python scripts in their # own virtualenvs, so you don't get version conflicts between the various # scripts installed on your system. sudo `which pip` install pipsi pipsi install pipenv pipenv install --dev pipenv shell
Tests are run with pytest:
pipenv run pytest exonerator
Start a development server with bin/local_server
and run curl -u admin http://localhost:8080/cls?type=pending
to see a list of pending CLs.
CL-Exonerator is deployed to the google.com:chromiumos-cl-exonerator project. Before deploying, make sure you have activated it as your default project with gcloud:
gcloud config set project chromiumos-cl-exonerator
Then deploy with the ./deploy_app script:
pipenv shell ./deploy_app
Run ./deploy_app --debug=True after copying or symlinking debug_cidbi_gen2_bot creds into ./creds/cidb.dbg (see the [Credentials][#Credentials] section)
Run “./deploy_app” after copying or symlinking prod_cidb_gen2_bot creds into “./creds/cidb”.