mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-11-06 19:12:30 +01:00
ce8ace41ea
Change build script to first build none steam version then publish to kelteseth.com. Follow with regular steam build
127 lines
4.9 KiB
Python
127 lines
4.9 KiB
Python
import steam_publish
|
|
import shutil
|
|
import sys
|
|
import macos_sign
|
|
import argparse
|
|
import os
|
|
import build
|
|
from pathlib import Path
|
|
from macos_lipo import run_lipo, check_fat_binary
|
|
import platform
|
|
import paramiko
|
|
import defines
|
|
from util import sftp_exists
|
|
from sys import stdout
|
|
|
|
stdout.reconfigure(encoding='utf-8')
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser(description='Build and Package ScreenPlay')
|
|
parser.add_argument('-skip_publish', '-skp', action="store_true", dest="skip_publish", help="Steam password")
|
|
parser.add_argument('-steam_password', '-sp', action="store", dest="steam_password", help="Steam password")
|
|
parser.add_argument('-hosting_username','-hu', action="store", dest="hosting_username", help="ssh username")
|
|
parser.add_argument('-hosting_password', '-hp', action="store", dest="hosting_password", help="ssh password")
|
|
args = parser.parse_args()
|
|
|
|
# Script needs to run in the tools folder
|
|
tools_path = Path.cwd()
|
|
os.chdir(tools_path)
|
|
root_path = tools_path.parent
|
|
print(f"Set root directory to: {root_path}")
|
|
|
|
build_result = build.BuildResult()
|
|
|
|
build_config = build.BuildConfig()
|
|
build_config.screenplay_version = defines.SCREENPLAY_VERSION
|
|
build_config.qt_version = defines.QT_VERSION
|
|
build_config.qt_ifw_version = defines.QT_IFW_VERSION
|
|
build_config.build_steam = "ON"
|
|
build_config.build_tests = "OFF"
|
|
build_config.build_deploy = "ON"
|
|
build_config.create_installer = "ON"
|
|
build_config.build_type = "release"
|
|
build_config.use_aqt = False
|
|
|
|
if platform.system() == "Darwin":
|
|
# We do not yet support a standalone osx installer
|
|
build_config.create_installer = "OFF"
|
|
# OSX builds needs to build for x86 and arm
|
|
# and also be signed!
|
|
|
|
# We need to manually package here at the end after
|
|
# we run
|
|
build_config.package = True
|
|
|
|
# Remove old build-universal-osx-release dir that does not automatically
|
|
# deleted because it is not build directly but generated from x64 and arm64
|
|
universal_build_dir = Path(os.path.join(root_path, "build-universal-osx-release"))
|
|
if universal_build_dir.exists():
|
|
print(f"Remove previous build folder: {universal_build_dir}")
|
|
# ignore_errors removes also not empty folders...
|
|
shutil.rmtree(universal_build_dir, ignore_errors=True)
|
|
|
|
build_config.build_architecture = "arm64"
|
|
build_result = build.execute(build_config)
|
|
|
|
build_config.build_architecture = "x64"
|
|
build_result = build.execute(build_config)
|
|
|
|
# Make sure to reset to tools path
|
|
os.chdir(root_path)
|
|
# Create universal (fat) binary
|
|
run_lipo()
|
|
check_fat_binary()
|
|
|
|
build_config.bin_dir = os.path.join(build_config.root_path,'build-universal-osx-release/bin/')
|
|
print(f"Change binary dir to: {build_config.bin_dir}")
|
|
macos_sign.sign(build_config=build_config)
|
|
sys.exit(0)
|
|
|
|
if platform.system() == "Windows":
|
|
build_config.build_architecture = "x64"
|
|
|
|
if not args.skip_publish:
|
|
# Steamless version first
|
|
build_config.build_steam = "OFF"
|
|
build_result = build.execute(build_config)
|
|
ssh = paramiko.SSHClient()
|
|
ssh.load_system_host_keys()
|
|
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
ssh.connect('kelteseth.com', username=args.hosting_username, password=args.hosting_password)
|
|
sftp = ssh.open_sftp()
|
|
release_folder = "/kelteseth_com/public/releases/" + build_config.screenplay_version + "/"
|
|
if sftp_exists(sftp,release_folder):
|
|
remoteFiles = sftp.listdir(path=release_folder)
|
|
for file in remoteFiles:
|
|
print(f"Delte old: {release_folder+file}")
|
|
sftp.remove(release_folder+file)
|
|
else:
|
|
sftp.mkdir(release_folder)
|
|
print("Uploading files...")
|
|
|
|
sftp.put(build_result.build_zip, release_folder + str(build_result.build_zip.name))
|
|
sftp.put(build_result.installer, release_folder + str(build_result.installer.name))
|
|
sftp.put(build_result.installer_zip,release_folder + str(build_result.installer_zip.name))
|
|
sftp.put(build_result.build_hash, release_folder + str(build_result.build_hash.name))
|
|
sftp.close()
|
|
ssh.close()
|
|
|
|
# Now build the steam version
|
|
os.chdir(tools_path)
|
|
build_config.build_steam = "ON"
|
|
build_config.create_installer = "OFF"
|
|
build_result = build.execute(build_config)
|
|
|
|
if args.skip_publish:
|
|
print("Skip publishing.")
|
|
sys.exit(0)
|
|
|
|
# Make sure to reset to tools path
|
|
os.chdir(tools_path)
|
|
steam_publish.publish(
|
|
steam_username="tachiom",
|
|
steam_password=args.steam_password,
|
|
set_live_branch_name="internal"
|
|
)
|