diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-07-31 08:26:15 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-07-31 08:26:15 -0400 |
commit | d66cfadbd3ea5dc11fbb905f82d3fbfc1ba7b07a (patch) | |
tree | 4abc8e61714c4940963920ea9edaf3487ce02f83 /scripts | |
parent | de4d7c3837c36fa4c78d10a49837ba505d723727 (diff) | |
parent | c3fca338a2c63241497b64a9f997c28f17ef1b6a (diff) | |
download | tor-d66cfadbd3ea5dc11fbb905f82d3fbfc1ba7b07a.tar.gz tor-d66cfadbd3ea5dc11fbb905f82d3fbfc1ba7b07a.zip |
Merge remote-tracking branch 'teor/bug26979'
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/test/appveyor-irc-notify.py | 83 |
1 files changed, 55 insertions, 28 deletions
diff --git a/scripts/test/appveyor-irc-notify.py b/scripts/test/appveyor-irc-notify.py index 4ffea52684..cfe0afe7ae 100644 --- a/scripts/test/appveyor-irc-notify.py +++ b/scripts/test/appveyor-irc-notify.py @@ -22,6 +22,12 @@ # - Accept UTF-8 # - only guess github URLs # - stop using ANSI colors +# +# Modified by teor in 2018: +# - fix github provider detection ('gitHub' or 'gitHubEnterprise', apparently) +# - make short commits 10 hexdigits long (that's what git does for tor) +# - generate correct branches and URLs for pull requests and tags +# - switch to one URL per line # This program is free software; you can redistribute it and/or modify it under the # terms of the GNU General Public License as published by the Free Software Foundation; @@ -45,19 +51,19 @@ delineate multiple messages. Example: -export APPVEYOR_URL=https://ci.appveyor.com +export APPVEYOR_ACCOUNT_NAME=isislovecruft +export APPVEYOR_BUILD_VERSION=1 export APPVEYOR_PROJECT_NAME=tor -export APPVEYOR_REPO_COMMIT_AUTHOR=isislovecruft -export APPVEYOR_REPO_COMMIT_TIMESTAMP=2018-04-23 -export APPVEYOR_REPO_PROVIDER=gihub -export APPVEYOR_REPO_BRANCH=repo_branch +export APPVEYOR_PULL_REQUEST_NUMBER=pull_request_number export APPVEYOR_PULL_REQUEST_TITLE=pull_request_title -export APPVEYOR_BUILD_VERSION=1 +export APPVEYOR_REPO_BRANCH=repo_branch export APPVEYOR_REPO_COMMIT=22c95b72e29248dc4de9b85e590ee18f6f587de8 +export APPVEYOR_REPO_COMMIT_AUTHOR=isislovecruft export APPVEYOR_REPO_COMMIT_MESSAGE="some IRC test" -export APPVEYOR_ACCOUNT_NAME=isislovecruft -export APPVEYOR_PULL_REQUEST_NUMBER=pull_request_number +export APPVEYOR_REPO_COMMIT_TIMESTAMP=2018-04-23 export APPVEYOR_REPO_NAME=isislovecruft/tor +export APPVEYOR_REPO_PROVIDER=github +export APPVEYOR_URL=https://ci.appveyor.com python ./appveyor-irc-notify.py irc.oftc.net:6697 tor-ci '{repo_name} {repo_branch} {short_commit} - {repo_commit_author}: {repo_commit_message}','Build #{build_version} passed. Details: {build_url} | Commit: {commit_url} See also https://github.com/gridsync/gridsync/blob/master/appveyor.yml for examples @@ -82,7 +88,7 @@ import time def appveyor_vars(): """ - Return a dict of key value carfted from appveyor environment variables. + Return a dict of key value crafted from appveyor environment variables. """ vars = dict([ @@ -90,33 +96,52 @@ def appveyor_vars(): v.replace('APPVEYOR_', '').lower(), os.getenv(v, '').decode('utf-8') ) for v in [ - 'APPVEYOR_URL', - 'APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED', + 'APPVEYOR_ACCOUNT_NAME', + 'APPVEYOR_BUILD_VERSION', + 'APPVEYOR_PROJECT_NAME', + 'APPVEYOR_PULL_REQUEST_HEAD_COMMIT', + 'APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH', + 'APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME', + 'APPVEYOR_PULL_REQUEST_NUMBER', + 'APPVEYOR_PULL_REQUEST_TITLE', 'APPVEYOR_REPO_BRANCH', + 'APPVEYOR_REPO_COMMIT', 'APPVEYOR_REPO_COMMIT_AUTHOR', 'APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL', + 'APPVEYOR_REPO_COMMIT_MESSAGE', + 'APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED', 'APPVEYOR_REPO_COMMIT_TIMESTAMP', + 'APPVEYOR_REPO_NAME', 'APPVEYOR_REPO_PROVIDER', - 'APPVEYOR_PROJECT_NAME', - 'APPVEYOR_PULL_REQUEST_TITLE', - 'APPVEYOR_BUILD_VERSION', - 'APPVEYOR_REPO_COMMIT', - 'APPVEYOR_REPO_COMMIT_MESSAGE', - 'APPVEYOR_ACCOUNT_NAME', - 'APPVEYOR_PULL_REQUEST_NUMBER', - 'APPVEYOR_REPO_NAME' + 'APPVEYOR_REPO_TAG_NAME', + 'APPVEYOR_URL', ] ]) BUILD_FMT = u'{url}/project/{account_name}/{project_name}/build/{build_version}' - if vars["repo_provider"] == 'github': - COMMIT_FMT = u'https://{repo_provider}.com/{repo_name}/commit/{repo_commit}' + if vars["repo_tag_name"]: + BRANCH_FMT = u'{repo_name} {repo_tag_name} {short_commit}' + else: + BRANCH_FMT = u'{repo_name} {repo_branch} {short_commit}' + + vars.update(head_commit=vars["repo_commit"]) + + if vars["repo_provider"].lower().startswith('github'): + COMMIT_FMT = u'https://github.com/{repo_name}/commit/{repo_commit}' + if vars["pull_request_number"]: + vars.update(head_commit=vars["pull_request_head_commit"]) + BRANCH_FMT = u'{repo_name} {repo_branch} pull {pull_request_head_repo_name} {pull_request_head_repo_branch} {short_commit}' + COMMIT_FMT = u'https://github.com/{pull_request_head_repo_name}/commit/{pull_request_head_commit}' + PULL_FMT = u'https://github.com/{repo_name}/pull/{pull_request_number}' + vars.update(pull_url=PULL_FMT.format(**vars)) vars.update(commit_url=COMMIT_FMT.format(**vars)) + vars.update(short_commit=vars["head_commit"][:10]) + vars.update( build_url=BUILD_FMT.format(**vars), - short_commit=vars["repo_commit"][:7], + branch_detail=BRANCH_FMT.format(**vars), ) return vars @@ -134,17 +159,19 @@ def notify(): if success or failure: messages = [] - messages.append(u"{repo_name} {repo_branch} {short_commit} - {repo_commit_author}: {repo_commit_message}") + messages.append(u"{branch_detail} - {repo_commit_author}: {repo_commit_message}") if success: - m = u"Build #{build_version} passed. Details: {build_url}" + messages.append(u"Build #{build_version} passed. Details: {build_url}") if failure: - m = u"Build #{build_version} failed. Details: {build_url}" + messages.append(u"Build #{build_version} failed. Details: {build_url}") if "commit_url" in apvy_vars: - m += " Commit: {commit_url}" - - messages.append(m) + messages.append(u"Commit: {commit_url}") + + if "pull_url" in apvy_vars: + messages.append(u"Pull: {pull_url}") + else: messages = sys.argv[3:] messages = ' '.join(messages) |