Update build scripts

This commit is contained in:
Ali 2022-09-22 01:05:34 +02:00
parent 9f94d42420
commit c5e54277f7
4 changed files with 87 additions and 6 deletions

View File

@ -110,7 +110,7 @@ deploy_beta_testflight:
except:
- tags
script:
- echo done #PYTHONPATH="$PYTHONPATH:/darwin-containers" python3 -u build-system/Make/Make.py remote-deploy-testflight --darwinContainersHost="http://host.docker.internal:8650" --ipa="build/artifacts/Telegram.ipa" --dsyms="build/artifacts/Telegram.DSYMs.zip"
- PYTHONPATH="$PYTHONPATH:/darwin-containers" python3 -u build-system/Make/Make.py remote-deploy-testflight --darwinContainersHost="http://host.docker.internal:8650" --ipa="build/artifacts/Telegram.ipa" --dsyms="build/artifacts/Telegram.DSYMs.zip"
environment:
name: testflight_llc
@ -126,7 +126,7 @@ verifysanity_beta_testflight:
script:
- rm -rf build/verify-input && mkdir -p build/verify-input && mv build/artifacts/Telegram.ipa build/verify-input/TelegramVerifySource.ipa
- PYTHONPATH="$PYTHONPATH:/darwin-containers" python3 -u build-system/Make/Make.py remote-build --darwinContainersHost="http://host.docker.internal:8650" --cacheHost="$TELEGRAM_BAZEL_CACHE_HOST" --configurationPath="build-system/appstore-configuration.json" --codesigningInformationPath=build-system/fake-codesigning --configuration=release_arm64
- python3 tools/ipadiff.py build/artifacts/Telegram.ipa build/verify-input/TelegramVerifySource.ipa
- PYTHONPATH="$PYTHONPATH:/darwin-containers" python3 -u build-system/Make/Make.py remote-ipa-diff --darwinContainersHost="http://host.docker.internal:8650" --ipa1="build/artifacts/Telegram.ipa" --ipa2="build/verify-input/TelegramVerifySource.ipa"
- if [ $? -ne 0 ]; then; echo "Verification failed"; mkdir -p build/verifysanity_artifacts; cp build/artifacts/Telegram.ipa build/verifysanity_artifacts/; exit 1; fi
environment:
name: testflight_llc
@ -148,7 +148,7 @@ verify_beta_testflight:
script:
- rm -rf build/verify-input && mkdir -p build/verify-input && mv build/artifacts/Telegram.ipa build/verify-input/TelegramVerifySource.ipa
- PYTHONPATH="$PYTHONPATH:/darwin-containers" python3 -u build-system/Make/Make.py remote-build --darwinContainersHost="http://host.docker.internal:8650" --configurationPath="build-system/appstore-configuration.json" --codesigningInformationPath=build-system/fake-codesigning --configuration=release_arm64
- python3 tools/ipadiff.py build/artifacts/Telegram.ipa build/verify-input/TelegramVerifySource.ipa
- PYTHONPATH="$PYTHONPATH:/darwin-containers" python3 -u build-system/Make/Make.py remote-ipa-diff --darwinContainersHost="http://host.docker.internal:8650" --ipa1="build/artifacts/Telegram.ipa" --ipa2="build/verify-input/TelegramVerifySource.ipa"
- if [ $? -ne 0 ]; then; echo "Verification failed"; mkdir -p build/verify_artifacts; cp build/artifacts/Telegram.ipa build/verify_artifacts/; exit 1; fi
environment:
name: testflight_llc

View File

@ -116,6 +116,7 @@ genrule(
)
minimum_os_version = "11.0"
minimum_watchos_version="6.0"
empty_languages = [
"ar",
@ -704,7 +705,7 @@ watchos_extension(
":AppNameInfoPlist",
":WatchExtensionNSExtensionInfoPlist",
],
minimum_os_version = "9.0",
minimum_os_version = minimum_watchos_version,
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:WatchExtension.mobileprovision",
@ -734,7 +735,7 @@ watchos_application(
":AppNameInfoPlist",
":WatchAppCompanionInfoPlist",
],
minimum_os_version = "9.0",
minimum_os_version = minimum_watchos_version,
provisioning_profile = select({
":disableProvisioningProfilesSetting": None,
"//conditions:default": "@build_configuration//provisioning:WatchApp.mobileprovision",

View File

@ -190,7 +190,7 @@ class BazelCommandLine:
'--ios_multi_cpus=arm64',
# Always build universal Watch binaries.
'--watchos_cpus=arm64_32',
'--watchos_cpus=armv7k,arm64_32',
# Generate DSYM files when building.
'--apple_generate_dsym',
@ -911,6 +911,26 @@ if __name__ == '__main__':
help='Path to DSYMs.zip file.'
)
remote_ipadiff_parser = subparsers.add_parser('remote-ipa-diff', help='Execute ipa-diff using a remote environment.')
remote_ipadiff_parser.add_argument(
'--darwinContainersHost',
required=True,
type=str,
help='DarwinContainers host address.'
)
remote_ipadiff_parser.add_argument(
'--ipa1',
required=True,
type=str,
help='Path to IPA 1 file.'
)
remote_ipadiff_parser.add_argument(
'--ipa2',
required=True,
type=str,
help='Path to IPA 2 file.'
)
if len(sys.argv) < 2:
parser.print_help()
sys.exit(1)
@ -976,6 +996,12 @@ if __name__ == '__main__':
username=env['APPSTORE_CONNECT_USERNAME'],
password=env['APPSTORE_CONNECT_PASSWORD']
)
elif args.commandName == 'remote-ipa-diff':
RemoteBuild.remote_ipa_diff(
darwin_containers_host=args.darwinContainersHost,
ipa1_path=args.ipa1,
ipa2_path=args.ipa2
)
elif args.commandName == 'test':
test(bazel=bazel_path, arguments=args)
else:

View File

@ -183,3 +183,57 @@ def remote_deploy_testflight(darwin_containers_host, ipa_path, dsyms_path, usern
print('Executing remote upload...')
session_ssh(session=session, command='bash -l guest-upload-telegram.sh')
def remote_ipa_diff(darwin_containers_host, ipa1_path, ipa2_path):
macos_version = '12.5'
from darwin_containers import DarwinContainers
configuration_path = 'versions.json'
xcode_version = ''
with open(configuration_path) as file:
configuration_dict = json.load(file)
if configuration_dict['xcode'] is None:
raise Exception('Missing xcode version in {}'.format(configuration_path))
xcode_version = configuration_dict['xcode']
print('Xcode version: {}'.format(xcode_version))
image_name = 'macos-{macos_version}-xcode-{xcode_version}'.format(macos_version=macos_version, xcode_version=xcode_version)
print('Image name: {}'.format(image_name))
darwinContainers = DarwinContainers(serverAddress=darwin_containers_host, verbose=False)
print('Opening container session...')
with darwinContainers.workingImageSession(name=image_name) as session:
print('Uploading data to container...')
session_scp_upload(session=session, source_path='tools/ipadiff.py', destination_path='ipadiff.py')
session_scp_upload(session=session, source_path='tools/main.cpp', destination_path='main.cpp')
session_scp_upload(session=session, source_path=ipa1_path, destination_path='ipa1.ipa')
session_scp_upload(session=session, source_path=ipa2_path, destination_path='ipa2.ipa')
guest_upload_sh = '''
set -e
python3 ipadiff.py ipa1.ipa ipa2.ipa
echo $? > result.txt
'''
guest_upload_file_path = tempfile.mktemp()
with open(guest_upload_file_path, 'w+') as file:
file.write(guest_upload_sh)
session_scp_upload(session=session, source_path=guest_upload_file_path, destination_path='guest-ipa-diff.sh')
os.unlink(guest_upload_file_path)
print('Executing remote ipa-diff...')
session_ssh(session=session, command='bash -l guest-ipa-diff.sh')
guest_result_path = tempfile.mktemp()
session_scp_download(session=session, source_path='result.txt', destination_path=guest_result_path)
guest_result = ''
with open(guest_result_path, 'r') as file:
guest_result = file.read().rstrip()
os.unlink(guest_result_path)
if guest_result != '0':
sys.exit(1)