Merge branch 'test-fdroid-build-job-with-srclibs' into 'master'

gitlab-ci: make 'fdroid build' job fetch srclibs

See merge request fdroid/fdroiddata!7010
This commit is contained in:
Hans-Christoph Steiner 2020-06-25 18:40:28 +00:00
commit d2dacdb41d
2 changed files with 44 additions and 1 deletions

View File

@ -152,7 +152,7 @@ fdroid build:
- curl --silent https://gitlab.com/fdroid/fdroidserver/repository/master/archive.tar.gz
| tar -xz --directory=fdroidserver --strip-components=1
- export PATH="`pwd`/fdroidserver:$PATH"
- export PYTHONPATH="`pwd`/fdroidserver"
- export PYTHONPATH="`pwd`/fdroidserver:$CI_PROJECT_DIR/tools"
- export PYTHONUNBUFFERED=true
- bash fdroidserver/buildserver/provision-apt-get-install http://deb.debian.org/debian
@ -172,6 +172,7 @@ fdroid build:
- for build in `./tools/find-changed-builds.py`; do
set -x;
apt-get install sudo;
fdroid fetchsrclibs $build --verbose;
fdroid build --verbose --on-server --no-tarball $build;
done

View File

@ -0,0 +1,42 @@
#!/usr/bin/env python3
#
# an fdroid plugin for setting up srclibs
#
# The 'fdroid build' gitlab-ci job uses --on-server, which does not
# set up the srclibs. This plugin does the missing setup.
import argparse
import os
import pprint
from fdroidserver import _, common, metadata
fdroid_summary = 'prepare the srclibs for `fdroid build --on-server`'
def main():
common.config = {
'accepted_formats': 'yml',
'sdk_path': os.getenv('ANDROID_HOME'),
}
common.fill_config_defaults(common.config)
parser = argparse.ArgumentParser(usage="%(prog)s [options] [APPID[:VERCODE] [APPID[:VERCODE] ...]]")
common.setup_global_opts(parser)
parser.add_argument("appid", nargs='*', help=_("applicationId with optional versionCode in the form APPID[:VERCODE]"))
metadata.add_metadata_arguments(parser)
options = parser.parse_args()
common.options = options
pkgs = common.read_pkg_args(options.appid, True)
allapps = metadata.read_metadata(xref=False)
apps = common.read_app_args(options.appid, allapps, True)
srclib_dir = os.path.join('build', 'srclib')
os.makedirs(srclib_dir, exist_ok=True)
srclibpaths = []
for appid, app in apps.items():
for build in app.builds:
for lib in build.srclibs:
srclibpaths.append(common.getsrclib(lib, srclib_dir, build=build))
print('Set up srclibs:')
pprint.pprint(srclibpaths)
if __name__ == "__main__":
main()