mirror of
https://gerrit.googlesource.com/git-repo
synced 2025-06-30 20:17:08 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
0f6f16ed17 | |||
76491590b8 | |||
6a74c91f50 | |||
669efd0fd7 |
@ -20,6 +20,7 @@ This is intended to be run only by the official Repo release managers.
|
|||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
@ -49,18 +50,37 @@ def check(opts):
|
|||||||
util.run(opts, ['gpg', '--verify', f'{opts.launcher}.asc'])
|
util.run(opts, ['gpg', '--verify', f'{opts.launcher}.asc'])
|
||||||
|
|
||||||
|
|
||||||
def postmsg(opts):
|
def get_version(opts):
|
||||||
|
"""Get the version from |launcher|."""
|
||||||
|
# Make sure we don't search $PATH when signing the "repo" file in the cwd.
|
||||||
|
launcher = os.path.join('.', opts.launcher)
|
||||||
|
cmd = [launcher, '--version']
|
||||||
|
ret = util.run(opts, cmd, encoding='utf-8', stdout=subprocess.PIPE)
|
||||||
|
m = re.search(r'repo launcher version ([0-9.]+)', ret.stdout)
|
||||||
|
if not m:
|
||||||
|
sys.exit(f'{opts.launcher}: unable to detect repo version')
|
||||||
|
return m.group(1)
|
||||||
|
|
||||||
|
|
||||||
|
def postmsg(opts, version):
|
||||||
"""Helpful info to show at the end for release manager."""
|
"""Helpful info to show at the end for release manager."""
|
||||||
print(f"""
|
print(f"""
|
||||||
Repo launcher bucket:
|
Repo launcher bucket:
|
||||||
gs://git-repo-downloads/
|
gs://git-repo-downloads/
|
||||||
|
|
||||||
To upload this launcher directly:
|
You should first upload it with a specific version:
|
||||||
gsutil cp -a public-read {opts.launcher} {opts.launcher}.asc gs://git-repo-downloads/
|
gsutil cp -a public-read {opts.launcher} gs://git-repo-downloads/repo-{version}
|
||||||
|
gsutil cp -a public-read {opts.launcher}.asc gs://git-repo-downloads/repo-{version}.asc
|
||||||
|
|
||||||
NB: You probably want to upload it with a specific version first, e.g.:
|
Then to make it the public default:
|
||||||
gsutil cp -a public-read {opts.launcher} gs://git-repo-downloads/repo-3.0
|
gsutil cp -a public-read gs://git-repo-downloads/repo-{version} gs://git-repo-downloads/repo
|
||||||
gsutil cp -a public-read {opts.launcher}.asc gs://git-repo-downloads/repo-3.0.asc
|
gsutil cp -a public-read gs://git-repo-downloads/repo-{version}.asc gs://git-repo-downloads/repo.asc
|
||||||
|
|
||||||
|
NB: If a rollback is necessary, the GS bucket archives old versions, and may be
|
||||||
|
accessed by specifying their unique id number.
|
||||||
|
gsutil ls -la gs://git-repo-downloads/repo gs://git-repo-downloads/repo.asc
|
||||||
|
gsutil cp -a public-read gs://git-repo-downloads/repo#<unique id> gs://git-repo-downloads/repo
|
||||||
|
gsutil cp -a public-read gs://git-repo-downloads/repo.asc#<unique id> gs://git-repo-downloads/repo.asc
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
|
||||||
@ -103,9 +123,10 @@ def main(argv):
|
|||||||
opts.keys = [util.KEYID_DSA, util.KEYID_RSA, util.KEYID_ECC]
|
opts.keys = [util.KEYID_DSA, util.KEYID_RSA, util.KEYID_ECC]
|
||||||
util.import_release_key(opts)
|
util.import_release_key(opts)
|
||||||
|
|
||||||
|
version = get_version(opts)
|
||||||
sign(opts)
|
sign(opts)
|
||||||
check(opts)
|
check(opts)
|
||||||
postmsg(opts)
|
postmsg(opts, version)
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
@ -127,6 +127,11 @@ to update the working directory files.
|
|||||||
# anew.
|
# anew.
|
||||||
if not is_new:
|
if not is_new:
|
||||||
was_standalone_manifest = m.config.GetString('manifest.standalone')
|
was_standalone_manifest = m.config.GetString('manifest.standalone')
|
||||||
|
if was_standalone_manifest and not opt.manifest_url:
|
||||||
|
print('fatal: repo was initialized with a standlone manifest, '
|
||||||
|
'cannot be re-initialized without --manifest-url/-u')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
if opt.standalone_manifest or (
|
if opt.standalone_manifest or (
|
||||||
was_standalone_manifest and opt.manifest_url):
|
was_standalone_manifest and opt.manifest_url):
|
||||||
m.config.ClearCache()
|
m.config.ClearCache()
|
||||||
@ -166,12 +171,14 @@ to update the working directory files.
|
|||||||
standalone_manifest = False
|
standalone_manifest = False
|
||||||
if opt.standalone_manifest:
|
if opt.standalone_manifest:
|
||||||
standalone_manifest = True
|
standalone_manifest = True
|
||||||
elif not opt.manifest_url:
|
m.config.SetString('manifest.standalone', opt.manifest_url)
|
||||||
|
elif not opt.manifest_url and not opt.manifest_branch:
|
||||||
# If -u is set and --standalone-manifest is not, then we're not in
|
# If -u is set and --standalone-manifest is not, then we're not in
|
||||||
# standalone mode. Otherwise, use config to infer what we were in the last
|
# standalone mode. Otherwise, use config to infer what we were in the last
|
||||||
# init.
|
# init.
|
||||||
standalone_manifest = bool(m.config.GetString('manifest.standalone'))
|
standalone_manifest = bool(m.config.GetString('manifest.standalone'))
|
||||||
m.config.SetString('manifest.standalone', opt.manifest_url)
|
if not standalone_manifest:
|
||||||
|
m.config.SetString('manifest.standalone', None)
|
||||||
|
|
||||||
self._ConfigureDepth(opt)
|
self._ConfigureDepth(opt)
|
||||||
|
|
||||||
|
@ -622,6 +622,7 @@ later is required to fix a server side protocol bug.
|
|||||||
% (project.relpath,),
|
% (project.relpath,),
|
||||||
file=sys.stderr)
|
file=sys.stderr)
|
||||||
project.config.SetString('gc.pruneExpire', 'never')
|
project.config.SetString('gc.pruneExpire', 'never')
|
||||||
|
project.config.SetString('gc.autoDetach', 'false')
|
||||||
gc_gitdirs[project.gitdir] = project.bare_git
|
gc_gitdirs[project.gitdir] = project.bare_git
|
||||||
|
|
||||||
pm.update(inc=len(projects) - len(gc_gitdirs), msg='warming up')
|
pm.update(inc=len(projects) - len(gc_gitdirs), msg='warming up')
|
||||||
|
Reference in New Issue
Block a user