commit
2493f7e42f
|
@ -51,25 +51,31 @@ def parse_args():
|
||||||
|
|
||||||
advance = parser.add_argument_group('advance', "Some advanced options.")
|
advance = parser.add_argument_group('advance', "Some advanced options.")
|
||||||
advance.add_argument('--extra-code', type=int, default=0)
|
advance.add_argument('--extra-code', type=int, default=0)
|
||||||
|
advance.add_argument('--version-name', default=None,
|
||||||
|
help="The version of the application (seen by user). Get from json info file by default.")
|
||||||
advance.add_argument('--check-certificate', default=True)
|
advance.add_argument('--check-certificate', default=True)
|
||||||
advance.add_argument('--zim-url', default=None)
|
advance.add_argument('--zim-url', default=None, help="Get from json info file by default.")
|
||||||
advance.add_argument('--no-android-upload', action='store_false', dest='android_upload')
|
advance.add_argument('--no-android-upload', action='store_false', dest='android_upload')
|
||||||
|
|
||||||
# Hidden options
|
# Hidden options
|
||||||
parser.add_argument('--step', default='launch', choices=['launch', 'publish'], help=argparse.SUPPRESS)
|
parser.add_argument('--step', default='launch', choices=['launch', 'publish'], help=argparse.SUPPRESS)
|
||||||
parser.add_argument('--apks-dir', help=argparse.SUPPRESS)
|
parser.add_argument('--apks-dir', help=argparse.SUPPRESS)
|
||||||
parser.add_argument('--version', default="0", help=argparse.SUPPRESS)
|
parser.add_argument('--zim-path', default=None, help=argparse.SUPPRESS)
|
||||||
parser.add_argument('--content-version-code', type=int)
|
parser.add_argument('--content-version-code', type=int, help=argparse.SUPPRESS)
|
||||||
parser.add_argument('--package-name', default=None, help=argparse.SUPPRESS)
|
parser.add_argument('--package-name', default=None, help=argparse.SUPPRESS)
|
||||||
parser.add_argument('--google-api-key', help=argparse.SUPPRESS)
|
parser.add_argument('--google-api-key', help=argparse.SUPPRESS)
|
||||||
|
|
||||||
options = parser.parse_args()
|
options = parser.parse_args()
|
||||||
|
|
||||||
if not options.package_name or not options.zim_url:
|
if (not options.package_name
|
||||||
|
or not (options.zim_url or options.zim_path)
|
||||||
|
or not options.version_name):
|
||||||
if not options.package_name:
|
if not options.package_name:
|
||||||
print("Try to get package name from info.json file")
|
print("Try to get package name from info.json file")
|
||||||
if not options.zim_url:
|
if not options.zim_url:
|
||||||
print("Try to get zim url from info.json file")
|
print("Try to get zim url from info.json file")
|
||||||
|
if not options.version_name:
|
||||||
|
print("Try to get version_name form info.json file")
|
||||||
request_url = ('https://raw.githubusercontent.com/kiwix/kiwix-android-custom/master/{}/info.json'
|
request_url = ('https://raw.githubusercontent.com/kiwix/kiwix-android-custom/master/{}/info.json'
|
||||||
.format(options.custom_app))
|
.format(options.custom_app))
|
||||||
json_request = requests.get(request_url)
|
json_request = requests.get(request_url)
|
||||||
|
@ -84,6 +90,9 @@ def parse_args():
|
||||||
if not options.zim_url:
|
if not options.zim_url:
|
||||||
print("Found zim_url '{}'".format(json_data['zim_url']))
|
print("Found zim_url '{}'".format(json_data['zim_url']))
|
||||||
options.zim_url = json_data['zim_url']
|
options.zim_url = json_data['zim_url']
|
||||||
|
if not options.version_name:
|
||||||
|
print("Found version_name '{}'".format(json_data['version_name']))
|
||||||
|
options.version_name = json_data['version_name']
|
||||||
|
|
||||||
options.base_version = "{}{}".format(
|
options.base_version = "{}{}".format(
|
||||||
datetime.date.today().strftime('%y%j'),
|
datetime.date.today().strftime('%y%j'),
|
||||||
|
@ -102,38 +111,44 @@ def download_zim_file(zim_url, dest_dir=None):
|
||||||
return os.path.join(dest_dir, out_filename)
|
return os.path.join(dest_dir, out_filename)
|
||||||
|
|
||||||
|
|
||||||
def get_zim_size(zim_url, check_certificate=True):
|
def get_zim_size(*, zim_url=None, zim_path=None, check_certificate=True):
|
||||||
print("Try to get zim size")
|
print("Try to get zim size")
|
||||||
if not check_certificate:
|
if not zim_path:
|
||||||
context = ssl.create_default_context()
|
if not check_certificate:
|
||||||
context.check_hostname = False
|
context = ssl.create_default_context()
|
||||||
context.verify_mode = ssl.CERT_NONE
|
context.check_hostname = False
|
||||||
else:
|
context.verify_mode = ssl.CERT_NONE
|
||||||
context = None
|
else:
|
||||||
extra_args = {'context':context} if sys.version_info >= (3, 4, 3) else {}
|
context = None
|
||||||
with urllib.request.urlopen(zim_url, **extra_args) as resource:
|
extra_args = {'context':context} if sys.version_info >= (3, 4, 3) else {}
|
||||||
size = resource.getheader('Content-Length', None)
|
with urllib.request.urlopen(zim_url, **extra_args) as resource:
|
||||||
if size is not None:
|
size = resource.getheader('Content-Length', None)
|
||||||
size = int(size)
|
if size is not None:
|
||||||
print("Zim size is {}".format(size))
|
size = int(size)
|
||||||
return size
|
print("Zim size is {}".format(size))
|
||||||
else:
|
return size
|
||||||
print("No 'Content-Length' header in http answer from the server.\n"
|
else:
|
||||||
"We need to download the zim file to get its size.")
|
print("No 'Content-Length' header in http answer from the server.\n"
|
||||||
zim_path = download_zim_file(zim_url, tempfile.gettempdir())
|
"We need to download the zim file to get its size.")
|
||||||
size = os.path.getsize(zim_path)
|
zim_path = download_zim_file(zim_url, tempfile.gettempdir())
|
||||||
print("Zim size is {}".format(size))
|
|
||||||
return size
|
size = os.path.getsize(zim_path)
|
||||||
|
print("Zim size is {}".format(size))
|
||||||
|
return size
|
||||||
|
|
||||||
|
|
||||||
def do_launch(options):
|
def do_launch(options):
|
||||||
zim_size = get_zim_size(options.zim_url, options.check_certificate)
|
if options.zim_path:
|
||||||
|
zim_size = get_zim_size(zim_path=options.zim_path)
|
||||||
|
else:
|
||||||
|
zim_size = get_zim_size(zim_url=options.zim_url,
|
||||||
|
check_certificate=options.check_certificate)
|
||||||
travis_launch_build('kiwix', 'kiwix-build', options, zim_size)
|
travis_launch_build('kiwix', 'kiwix-build', options, zim_size)
|
||||||
print("Travis build has been launch.")
|
print("Travis build has been launch.")
|
||||||
|
|
||||||
|
|
||||||
def do_publish(options):
|
def do_publish(options):
|
||||||
zim_path = download_zim_file(options.zim_url)
|
zim_path = options.zim_path or download_zim_file(options.zim_url)
|
||||||
googleService = Google(options)
|
googleService = Google(options)
|
||||||
with googleService.new_request():
|
with googleService.new_request():
|
||||||
versionCodes = []
|
versionCodes = []
|
||||||
|
@ -172,7 +187,7 @@ def travis_launch_build(organisation, repository, options, zim_size):
|
||||||
{ 'ZIM_URL': options.zim_url},
|
{ 'ZIM_URL': options.zim_url},
|
||||||
{ 'EXTRA_CODE': options.extra_code},
|
{ 'EXTRA_CODE': options.extra_code},
|
||||||
{ 'CONTENT_VERSION_CODE': gen_version_code(0, options.base_version)},
|
{ 'CONTENT_VERSION_CODE': gen_version_code(0, options.base_version)},
|
||||||
{ 'VERSION': options.version},
|
{ 'VERSION_NAME': options.version_name},
|
||||||
# google_key
|
# google_key
|
||||||
{ 'secure': ('VAgKBMx0KEIyJlSnpM4YrHKLALIbaibkhlsgiv19ITa6dODoEIqeYHz'
|
{ 'secure': ('VAgKBMx0KEIyJlSnpM4YrHKLALIbaibkhlsgiv19ITa6dODoEIqeYHz'
|
||||||
'wFTiL3mRHU6HwtXtdNb/JeMle9NfHJVFSV56ZgFzX7ev9zr0YG0qZQv'
|
'wFTiL3mRHU6HwtXtdNb/JeMle9NfHJVFSV56ZgFzX7ev9zr0YG0qZQv'
|
||||||
|
|
|
@ -380,8 +380,15 @@ class KiwixAndroid(Dependency):
|
||||||
shutil.rmtree(pj(self.build_path, 'kiwixlib', 'src', 'main'))
|
shutil.rmtree(pj(self.build_path, 'kiwixlib', 'src', 'main'))
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
pass
|
pass
|
||||||
shutil.copytree(pj(self.buildEnv.install_dir, 'kiwix-lib'), pj(self.build_path, 'kiwixlib', 'src', 'main'))
|
shutil.copytree(pj(self.buildEnv.install_dir, 'kiwix-lib'),
|
||||||
shutil.copy2(pj(self.buildEnv.install_dir, 'share', 'icu', '58.2', 'icudt58l.dat'), pj(self.build_path, 'app', 'src', 'main', 'assets', 'icudt.dat'))
|
pj(self.build_path, 'kiwixlib', 'src', 'main'))
|
||||||
|
os.makedirs(
|
||||||
|
pj(self.build_path, 'app', 'src', 'main', 'assets', 'icu'),
|
||||||
|
exist_ok=True)
|
||||||
|
shutil.copy2(pj(self.buildEnv.install_dir, 'share', 'icu', '58.2',
|
||||||
|
'icudt58l.dat'),
|
||||||
|
pj(self.build_path, 'app', 'src', 'main', 'assets',
|
||||||
|
'icu', 'icudt58l.dat'))
|
||||||
|
|
||||||
|
|
||||||
class KiwixCustomApp(Dependency):
|
class KiwixCustomApp(Dependency):
|
||||||
|
@ -406,11 +413,13 @@ class KiwixCustomApp(Dependency):
|
||||||
template = ("-i -P customDir={customDir}"
|
template = ("-i -P customDir={customDir}"
|
||||||
" -P zim_file_size={zim_size}"
|
" -P zim_file_size={zim_size}"
|
||||||
" -P version_code={version_code}"
|
" -P version_code={version_code}"
|
||||||
|
" -P version_name={version_name}"
|
||||||
" -P content_version_code={content_version_code}")
|
" -P content_version_code={content_version_code}")
|
||||||
return template.format(
|
return template.format(
|
||||||
customDir=pj(self.build_path, 'custom'),
|
customDir=pj(self.build_path, 'custom'),
|
||||||
zim_size=self._get_zim_size(),
|
zim_size=self._get_zim_size(),
|
||||||
version_code=os.environ['VERSION_CODE'],
|
version_code=os.environ['VERSION_CODE'],
|
||||||
|
version_name=os.environ['VERSION_NAME'],
|
||||||
content_version_code=os.environ['CONTENT_VERSION_CODE'])
|
content_version_code=os.environ['CONTENT_VERSION_CODE'])
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -460,8 +469,15 @@ class KiwixCustomApp(Dependency):
|
||||||
shutil.rmtree(pj(self.build_path, 'kiwixlib', 'src', 'main'))
|
shutil.rmtree(pj(self.build_path, 'kiwixlib', 'src', 'main'))
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
pass
|
pass
|
||||||
shutil.copytree(pj(self.buildEnv.install_dir, 'kiwix-lib'), pj(self.build_path, 'kiwixlib', 'src', 'main'))
|
shutil.copytree(pj(self.buildEnv.install_dir, 'kiwix-lib'),
|
||||||
shutil.copy2(pj(self.buildEnv.install_dir, 'share', 'icu', '58.2', 'icudt58l.dat'), pj(self.build_path, 'app', 'src', 'main', 'assets', 'icudt.dat'))
|
pj(self.build_path, 'kiwixlib', 'src', 'main'))
|
||||||
|
os.makedirs(
|
||||||
|
pj(self.build_path, 'app', 'src', 'main', 'assets', 'icu'),
|
||||||
|
exist_ok=True)
|
||||||
|
shutil.copy2(pj(self.buildEnv.install_dir, 'share', 'icu', '58.2',
|
||||||
|
'icudt58l.dat'),
|
||||||
|
pj(self.build_path, 'app', 'src', 'main', 'assets',
|
||||||
|
'icu', 'icudt58l.dat'))
|
||||||
|
|
||||||
# Generate custom directory
|
# Generate custom directory
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -22,7 +22,6 @@ ${TRAVIS_BUILD_DIR}/build_custom_app.py \
|
||||||
--custom-app ${CUSTOM_APP} \
|
--custom-app ${CUSTOM_APP} \
|
||||||
--package-name ${PACKAGE_NAME} \
|
--package-name ${PACKAGE_NAME} \
|
||||||
--google-api-key ${GOOGLE_API_KEY} \
|
--google-api-key ${GOOGLE_API_KEY} \
|
||||||
--version ${VERSION} \
|
|
||||||
--zim-url ${ZIM_URL} \
|
--zim-url ${ZIM_URL} \
|
||||||
--apks-dir ${HOME}/APKS \
|
--apks-dir ${HOME}/APKS \
|
||||||
--content-version-code ${CONTENT_VERSION_CODE}
|
--content-version-code ${CONTENT_VERSION_CODE}
|
||||||
|
|
Loading…
Reference in New Issue