aboutsummaryrefslogtreecommitdiff
path: root/contrib/gitian-build.py
diff options
context:
space:
mode:
authorChun Kuan Lee <ken2812221@gmail.com>2018-07-26 17:35:52 +0800
committerChun Kuan Lee <ken2812221@gmail.com>2018-08-01 01:10:51 +0800
commit46f83453701fc6116d97de6a16986388ba63488f (patch)
treef73ec076da10d130f948a2e75b22167cdd2e6c6e /contrib/gitian-build.py
parent29b4ee64695f79511912ae127e66e0fe82f7a0d1 (diff)
contrib: Support github pull request gitian-build
Diffstat (limited to 'contrib/gitian-build.py')
-rwxr-xr-xcontrib/gitian-build.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/contrib/gitian-build.py b/contrib/gitian-build.py
index 5b8db1e73d..0e53c3dfd5 100755
--- a/contrib/gitian-build.py
+++ b/contrib/gitian-build.py
@@ -135,6 +135,7 @@ def main():
parser = argparse.ArgumentParser(usage='%(prog)s [options] signer version')
parser.add_argument('-c', '--commit', action='store_true', dest='commit', help='Indicate that the version argument is for a commit or branch')
+ parser.add_argument('-p', '--pull', action='store_true', dest='pull', help='Indicate that the version argument is the number of a github repository pull request')
parser.add_argument('-u', '--url', dest='url', default='https://github.com/bitcoin/bitcoin', help='Specify the URL of the repository. Default is %(default)s')
parser.add_argument('-v', '--verify', action='store_true', dest='verify', help='Verify the Gitian build')
parser.add_argument('-b', '--build', action='store_true', dest='build', help='Do a Gitian build')
@@ -196,13 +197,21 @@ def main():
exit(1)
# Add leading 'v' for tags
+ if args.commit and args.pull:
+ raise Exception('Cannot have both commit and pull')
args.commit = ('' if args.commit else 'v') + args.version
- print(args.commit)
if args.setup:
setup()
os.chdir('bitcoin')
+ if args.pull:
+ subprocess.check_call(['git', 'fetch', args.url, 'refs/pull/'+args.version+'/merge'])
+ os.chdir('../gitian-builder/inputs/bitcoin')
+ subprocess.check_call(['git', 'fetch', args.url, 'refs/pull/'+args.version+'/merge'])
+ args.commit = subprocess.check_output(['git', 'show', '-s', '--format=%H', 'FETCH_HEAD'], universal_newlines=True).strip()
+ args.version = 'pull-' + args.version
+ print(args.commit)
subprocess.check_call(['git', 'fetch'])
subprocess.check_call(['git', 'checkout', args.commit])
os.chdir(workdir)