mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-04 22:40:12 +01:00
Use pre-retrieved Binary when publishing
This allows this system to work when the machine that runs 'fdroid publish' is offline.
This commit is contained in:
parent
d1c03fbdbf
commit
3e7046e23b
@ -124,31 +124,9 @@ def main():
|
|||||||
# It's an app where we build from source, and verify the apk
|
# It's an app where we build from source, and verify the apk
|
||||||
# contents against a developer's binary, and then publish their
|
# contents against a developer's binary, and then publish their
|
||||||
# version if everything checks out.
|
# version if everything checks out.
|
||||||
|
# The binary should already have been retrieved during the build
|
||||||
# Need the version name for the version code...
|
# process.
|
||||||
versionname = None
|
srcapk = apkfile + ".binary"
|
||||||
for build in app['builds']:
|
|
||||||
if build['vercode'] == vercode:
|
|
||||||
versionname = build['version']
|
|
||||||
break
|
|
||||||
if not versionname:
|
|
||||||
logging.error("...no defined build for version code {0}"
|
|
||||||
.format(vercode))
|
|
||||||
continue
|
|
||||||
|
|
||||||
# Figure out where the developer's binary is supposed to come from...
|
|
||||||
url = app['Binaries']
|
|
||||||
url = url.replace('%v', versionname)
|
|
||||||
url = url.replace('%c', str(vercode))
|
|
||||||
|
|
||||||
# Grab the binary from where the developer publishes it...
|
|
||||||
logging.info("...retrieving " + url)
|
|
||||||
srcapk = os.path.join(tmp_dir, url.split('/')[-1])
|
|
||||||
p = FDroidPopen(['wget', '-nv', '--continue', url], cwd=tmp_dir)
|
|
||||||
if p.returncode != 0 or not os.path.exists(srcapk):
|
|
||||||
logging.error("...failed to retrieve " + url +
|
|
||||||
" - publish skipped")
|
|
||||||
continue
|
|
||||||
|
|
||||||
# Compare our unsigned one with the downloaded one...
|
# Compare our unsigned one with the downloaded one...
|
||||||
compare_result = common.compare_apks(srcapk, apkfile, tmp_dir)
|
compare_result = common.compare_apks(srcapk, apkfile, tmp_dir)
|
||||||
@ -157,8 +135,10 @@ def main():
|
|||||||
+ compare_result)
|
+ compare_result)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Success! So move the downloaded file to the repo...
|
# Success! So move the downloaded file to the repo, and remove
|
||||||
|
# our built version.
|
||||||
shutil.move(srcapk, os.path.join(output_dir, apkfilename))
|
shutil.move(srcapk, os.path.join(output_dir, apkfilename))
|
||||||
|
os.remove(apkfile)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user