Add macOS package build (#300)

This commit is contained in:
Semyon Bezrukov
2021-05-05 15:19:57 +03:00
committed by GitHub
parent 8c93a0ebae
commit 3942c2f69a
3 changed files with 77 additions and 0 deletions

23
make_packages.py Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env python
import sys
sys.path.append('scripts')
sys.path.append('scripts/develop')
sys.path.append('scripts/develop/vendor')
sys.path.append('scripts/core_common')
sys.path.append('scripts/core_common/modules')
import config
import base
import packages
# parse configuration
config.parse()
base_dir = base.get_script_dir(__file__)
base.set_env("BUILD_PLATFORM", config.option("platform"))
base.check_build_version(base_dir)
# build packages
packages.make()

16
scripts/packages.py Normal file
View File

@@ -0,0 +1,16 @@
#!/usr/bin/env python
import config
import base
import packages_desktop
# import packages_server
# import packages_builder
def make():
if config.check_option("module", "desktop"):
packages_desktop.make()
# if config.check_option("module", "server"):
# packages_server.make()
# if config.check_option("module", "builder"):
# packages_builder.make()
return

View File

@@ -0,0 +1,38 @@
#!/usr/bin/env python
import config
import base
import os
import re
def make():
base_dir = base.get_script_dir() + "/../out"
git_dir = base.get_script_dir() + "/../.."
branding = config.branding()
platforms = config.option("platform").split()
for native_platform in platforms:
if not native_platform in config.platforms:
continue
isWindowsXP = False if (-1 == native_platform.find("_xp")) else True
platform = native_platform[0:-3] if isWindowsXP else native_platform
if (0 == platform.find("mac")):
macos_dir = git_dir + "/desktop-apps/macos"
update_dir = macos_dir + "/build/update"
version_zip = re.sub(r"\.(\d+)$", "", base.get_env("PRODUCT_VERSION"))
macos_zip = macos_dir + "/build/ONLYOFFICE-" + version_zip + ".zip"
base.cmd_in_dir(macos_dir, "bundler", ["exec", "fastlane", "release"])
base.delete_dir(update_dir)
base.delete_dir(os.path.expanduser("~/Library/Caches/Sparkle_generate_appcast"))
base.create_dir(update_dir)
base.copy_dir_content(base.get_env("UPDATE_STORAGE"), update_dir, ".zip")
base.copy_file(macos_zip, update_dir)
base.cmd(macos_dir + "/Vendor/Sparkle/bin/generate_appcast", [update_dir])
base.cmd_in_dir(update_dir, "find", [".", "-type", "f", "-name", "*.zip",
"-not", "-name", "*-" + version_zip + ".zip", "-delete"])
return