From e95a569e4ad6203f0cd7e237cdb862877d6afc0c Mon Sep 17 00:00:00 2001 From: Mihai Plesa Date: Mon, 13 Jan 2020 15:11:16 +0000 Subject: [PATCH] added github upload for android apks --- .gitignore | 3 + components/third_party/adblock/.gitignore | 1 - components/third_party/local-data/.gitignore | 1 - script/changelog.py | 6 +- script/lib/config.py | 40 ++--- script/publish_release.py | 13 +- script/sign_upload_linux_pkgs.py | 2 +- script/test/test_upload.py | 146 +++++++++++++------ script/update_release_changelog.py | 2 +- script/uplift.py | 4 +- script/upload.py | 140 +++++++++++------- 11 files changed, 220 insertions(+), 138 deletions(-) delete mode 100644 components/third_party/adblock/.gitignore delete mode 100644 components/third_party/local-data/.gitignore diff --git a/.gitignore b/.gitignore index 542bdb1a08d..1e2eea20f17 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,8 @@ /components/brave_rewards/resources/extension/brave_rewards/out/ /components/brave_sync/extension/brave-sync/ /components/brave_sync/extension/brave-crypto/ +/components/third_party/adblock/LICENSE +/components/third_party/local-data/LICENSE /dist/ /out/ /vendor/* @@ -40,3 +42,4 @@ venv/ *.rpm *.exe .storybook-out +test_get_pkgs diff --git a/components/third_party/adblock/.gitignore b/components/third_party/adblock/.gitignore deleted file mode 100644 index 9dc7e3d4a9c..00000000000 --- a/components/third_party/adblock/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/LICENSE diff --git a/components/third_party/local-data/.gitignore b/components/third_party/local-data/.gitignore deleted file mode 100644 index 9dc7e3d4a9c..00000000000 --- a/components/third_party/local-data/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/LICENSE diff --git a/script/changelog.py b/script/changelog.py index bca762ff3cd..a3614aeab62 100644 --- a/script/changelog.py +++ b/script/changelog.py @@ -15,10 +15,10 @@ def main(): return either markdown or html for a particular Brave tag. Example: - python script/changelog.py -t refs/tags/v0.61.51 \ + python script/changelog.py -t refs/tags/v1.5.51 \ -u https://raw.githubusercontent.com/brave/brave-browser/master/CHANGELOG.md -o markdown - ## [0.61.51](https://github.com/brave/brave-browser/releases/tag/v0.61.51) + ## [1.5.51](https://github.com/brave/brave-browser/releases/tag/v1.5.51) - Added new setting that allows Brave Rewards icon in the URL to be hidden if Rewards \ is inactive. ([#2975](https://github.com/brave/brave-browser/issues/2975)) @@ -67,7 +67,7 @@ def parse_args(): help='Print debug statements') parser.add_argument('-o', '--output', help='Output format: markdown or html (required)', required=True) parser.add_argument('-t', '--tag', - help='Brave version tag (allowed format: "v0.60.45" or "refs/tags/v0.60.45") (required)', + help='Brave version tag (allowed format: "v1.5.45" or "refs/tags/v1.5.45") (required)', required=True) parser.add_argument('-u', '--url', help='URL for Brave Browser raw markdown file (required)', required=True) return parser.parse_args() diff --git a/script/lib/config.py b/script/lib/config.py index 2f336a60191..5c52551c411 100644 --- a/script/lib/config.py +++ b/script/lib/config.py @@ -3,8 +3,6 @@ import errno import json import os -import platform -import re import sys PLATFORM = { @@ -32,14 +30,24 @@ SHALLOW_BRAVE_BROWSER_ROOT = os.path.abspath( verbose_mode = False -def dist_dir(): - return os.path.join(output_dir(), 'dist') +def dist_dir(target_os, target_arch): + return os.path.join(output_dir(target_os, target_arch), 'dist') -def output_dir(): - if get_target_arch() == 'x64': - return os.path.join(CHROMIUM_ROOT, 'out', 'Release') - return os.path.join(CHROMIUM_ROOT, 'out', 'Release_x86') +def output_dir(target_os, target_arch): + if target_os in ['android', 'ios']: + target_os_prefix = target_os + '_' + else: + target_os_prefix = '' + + if target_os_prefix: + target_arch_suffix = '_' + target_arch + elif target_arch != 'x64': + target_arch_suffix = '_' + target_arch + else: + target_os_prefix = '' + + return os.path.join(CHROMIUM_ROOT, 'out', target_os_prefix + 'Release' + target_arch_suffix) # Use brave-browser/package.json version for canonical version definition @@ -103,11 +111,6 @@ def get_platform_key(): return PLATFORM -def get_target_arch(): - return (os.environ['TARGET_ARCH'] if 'TARGET_ARCH' in os.environ - else 'x64') - - def get_env_var(name): return (os.environ.get('BRAVE_' + name) or os.environ.get('npm_config_BRAVE_' + name, '')) @@ -121,14 +124,3 @@ def enable_verbose_mode(): def is_verbose_mode(): return verbose_mode - - -def get_zip_name(name, version, suffix=''): - arch = get_target_arch() - if arch == 'arm': - arch += 'v7l' - zip_name = '{0}-{1}-{2}-{3}'.format(name, version, get_platform_key(), - arch) - if suffix: - zip_name += '-' + suffix - return zip_name + '.zip' diff --git a/script/publish_release.py b/script/publish_release.py index ea873095dd8..dcb782934d9 100755 --- a/script/publish_release.py +++ b/script/publish_release.py @@ -7,18 +7,15 @@ import argparse import json import logging import os +import requests import sys +from argparse import RawTextHelpFormatter from lib.github import GitHub -from lib.config import (PLATFORM, get_target_arch, - get_env_var, - get_zip_name, product_name, - project_name, SOURCE_ROOT, dist_dir, +from lib.helpers import * +from lib.config import (PLATFORM, get_env_var, product_name, + project_name, SOURCE_ROOT, output_dir, get_brave_version, get_raw_version) -from lib.helpers import * -import requests - -from argparse import RawTextHelpFormatter def main(): diff --git a/script/sign_upload_linux_pkgs.py b/script/sign_upload_linux_pkgs.py index 5f966e6be98..cc33ff28edc 100644 --- a/script/sign_upload_linux_pkgs.py +++ b/script/sign_upload_linux_pkgs.py @@ -337,7 +337,7 @@ def parse_args(): parser.add_argument('-k', '--gpg_full_key_id', help='GPG full key id to use for signing ' 'packages', required=True) parser.add_argument( - '-t', '--tag', help='The branch (actually tag) to download packages from GitHub. (i.e. v0.58.18)', + '-t', '--tag', help='The branch (actually tag) to download packages from GitHub. (i.e. v1.5.18)', required=True) parser.add_argument('-p', '--gpg_passphrase', help='GPG passphrase to unlock signing keychain') diff --git a/script/test/test_upload.py b/script/test/test_upload.py index 8f7332f462f..338499f326c 100644 --- a/script/test/test_upload.py +++ b/script/test/test_upload.py @@ -8,6 +8,7 @@ import sys import unittest import os import upload +import shutil from githubmock import Repo, Release, Asset from mock import MagicMock @@ -22,62 +23,69 @@ class TestGetBravePackages(unittest.TestCase): def setUp(self): if not self._is_setup: + shutil.rmtree(self.get_pkgs_dir) + os.mkdir(self.get_pkgs_dir) + android_dir = os.path.join(self.get_pkgs_dir, 'android') darwin_dir = os.path.join(self.get_pkgs_dir, 'darwin') linux_dir = os.path.join(self.get_pkgs_dir, 'linux') - win32_dir = os.path.join(self.get_pkgs_dir, 'win32') - if not os.path.isdir(self.get_pkgs_dir): - os.mkdir(self.get_pkgs_dir) + windows_dir = os.path.join(self.get_pkgs_dir, 'win32') + if not os.path.isdir(android_dir): + os.mkdir(android_dir) if not os.path.isdir(darwin_dir): os.mkdir(darwin_dir) if not os.path.isdir(linux_dir): os.mkdir(linux_dir) - if not os.path.isdir(win32_dir): - os.mkdir(win32_dir) + if not os.path.isdir(windows_dir): + os.mkdir(windows_dir) + for arch in ['Modernarm', 'Modernx86', 'Monoarm', 'Monoarm64', 'Monox64', 'Monox86', 'arm', 'x86']: + name_android = 'Brave' + arch + '.apk' + with open(os.path.join(android_dir, name_android), 'w') as f: + f.write(name_android + '\n') for channel in ['nightly', 'dev', 'beta', 'release']: channel_capitalized = channel.capitalize() channel_dashed = '' if ( channel == 'release') else ('-' + channel) name_darwin = 'Brave Browser ' + channel_capitalized + '.dmg' name_darwin_pkg = 'Brave Browser ' + channel_capitalized + '.pkg' - name_linux_deb = 'brave-browser' + channel_dashed + '_0.50.8_amd64.deb' - name_linux_rpm = 'brave-browser' + channel_dashed + '-0.50.8-1.x86_64.rpm' - with open(os.path.join(self.get_pkgs_dir, 'darwin', name_darwin), 'w') as f: + name_linux_deb = 'brave-browser' + channel_dashed + '_1.5.8_amd64.deb' + name_linux_rpm = 'brave-browser' + channel_dashed + '-1.5.8-1.x86_64.rpm' + with open(os.path.join(darwin_dir, name_darwin), 'w') as f: f.write(name_darwin + '\n') - with open(os.path.join(self.get_pkgs_dir, 'darwin', name_darwin_pkg), 'w') as f: + with open(os.path.join(darwin_dir, name_darwin_pkg), 'w') as f: f.write(name_darwin_pkg + '\n') - with open(os.path.join(self.get_pkgs_dir, 'linux', name_linux_deb), 'w') as f: + with open(os.path.join(linux_dir, name_linux_deb), 'w') as f: f.write(name_linux_deb + '\n') - with open(os.path.join(self.get_pkgs_dir, 'linux', name_linux_rpm), 'w') as f: + with open(os.path.join(linux_dir, name_linux_rpm), 'w') as f: f.write(name_linux_rpm + '\n') for mode in ['Stub', 'Silent', 'Untagged', 'Standalone', 'StandaloneSilent', 'StandaloneUntagged']: - name = 'BraveBrowser{}{}Setup_70_0_56_8.exe'.format( + name = 'BraveBrowser{}{}Setup_70_1_5_8.exe'.format( mode if mode not in 'Stub' else '', channel_capitalized if channel != 'release' else '') - name32 = 'BraveBrowser{}{}Setup32_70_0_56_8.exe'.format( + name32 = 'BraveBrowser{}{}Setup32_70_1_5_8.exe'.format( mode if mode not in 'Stub' else '', channel_capitalized if channel != 'release' else '') - with open(os.path.join(self.get_pkgs_dir, 'win32', name), 'w') as f: + with open(os.path.join(windows_dir, name), 'w') as f: f.write(name + '\n') - with open(os.path.join(self.get_pkgs_dir, 'win32', name32), 'w') as f: + with open(os.path.join(windows_dir, name32), 'w') as f: f.write(name32 + '\n') self.__class__._is_setup = True def test_only_returns_nightly_darwin_packages(self): upload.PLATFORM = 'darwin' pkgs = list(upload.get_brave_packages(os.path.join( - self.get_pkgs_dir, upload.PLATFORM), 'nightly', '0.50.8')) + self.get_pkgs_dir, upload.PLATFORM), 'nightly', '1.5.8', 'darwin')) self.assertEquals(pkgs, sorted( ['Brave-Browser-Nightly.dmg', 'Brave-Browser-Nightly.pkg'])) def test_only_returns_dev_darwin_package(self): upload.PLATFORM = 'darwin' pkgs = list(upload.get_brave_packages(os.path.join( - self.get_pkgs_dir, upload.PLATFORM), 'dev', '0.50.8')) + self.get_pkgs_dir, upload.PLATFORM), 'dev', '1.5.8', 'darwin')) self.assertEquals(pkgs, sorted( ['Brave-Browser-Dev.dmg', 'Brave-Browser-Dev.pkg'])) def test_only_returns_beta_darwin_package(self): upload.PLATFORM = 'darwin' pkgs = list(upload.get_brave_packages( - os.path.join(self.get_pkgs_dir, upload.PLATFORM), 'beta', '0.50.8')) + os.path.join(self.get_pkgs_dir, upload.PLATFORM), 'beta', '1.5.8', 'darwin')) self.assertEquals(pkgs, sorted( ['Brave-Browser-Beta.dmg', 'Brave-Browser-Beta.pkg'])) @@ -85,7 +93,7 @@ class TestGetBravePackages(unittest.TestCase): upload.PLATFORM = 'darwin' pkgs = list(upload.get_brave_packages( os.path.join(self.get_pkgs_dir, upload.PLATFORM), - 'release', '0.50.8')) + 'release', '1.5.8', 'darwin')) self.assertEquals(pkgs, sorted( ['Brave-Browser.dmg', 'Brave-Browser.pkg'])) @@ -93,43 +101,42 @@ class TestGetBravePackages(unittest.TestCase): upload.PLATFORM = 'linux' pkgs = list(upload.get_brave_packages(os.path.join(self.get_pkgs_dir, upload.PLATFORM), - 'nightly', '0.50.8')) + 'nightly', '1.5.8', 'darwin')) self.assertEquals(pkgs, - sorted(['brave-browser-nightly-0.50.8-1.x86_64.rpm', - 'brave-browser-nightly_0.50.8_amd64.deb'])) + sorted(['brave-browser-nightly-1.5.8-1.x86_64.rpm', + 'brave-browser-nightly_1.5.8_amd64.deb'])) def test_only_returns_dev_linux_packages(self): upload.PLATFORM = 'linux' pkgs = list(upload.get_brave_packages(os.path.join(self.get_pkgs_dir, upload.PLATFORM), - 'dev', '0.50.8')) + 'dev', '1.5.8', 'linux')) self.assertEquals(pkgs, - sorted(['brave-browser-dev-0.50.8-1.x86_64.rpm', - 'brave-browser-dev_0.50.8_amd64.deb'])) + sorted(['brave-browser-dev-1.5.8-1.x86_64.rpm', + 'brave-browser-dev_1.5.8_amd64.deb'])) def test_only_returns_beta_linux_packages(self): upload.PLATFORM = 'linux' pkgs = list(upload.get_brave_packages(os.path.join(self.get_pkgs_dir, upload.PLATFORM), - 'beta', '0.50.8')) + 'beta', '1.5.8', 'linux')) self.assertEquals(pkgs, - sorted(['brave-browser-beta-0.50.8-1.x86_64.rpm', - 'brave-browser-beta_0.50.8_amd64.deb'])) + sorted(['brave-browser-beta-1.5.8-1.x86_64.rpm', + 'brave-browser-beta_1.5.8_amd64.deb'])) def test_only_returns_release_linux_packages(self): upload.PLATFORM = 'linux' pkgs = list(upload.get_brave_packages(os.path.join(self.get_pkgs_dir, upload.PLATFORM), - 'release', '0.50.8')) + 'release', '1.5.8', 'linux')) self.assertEquals(pkgs, - sorted(['brave-browser-0.50.8-1.x86_64.rpm', - 'brave-browser_0.50.8_amd64.deb'])) + sorted(['brave-browser-1.5.8-1.x86_64.rpm', + 'brave-browser_1.5.8_amd64.deb'])) def test_only_returns_nightly_win_x64_packages(self): upload.PLATFORM = 'win32' - os.environ['TARGET_ARCH'] = 'x64' pkgs = list(upload.get_brave_packages(os.path.join( - self.get_pkgs_dir, upload.PLATFORM), 'nightly', '0.56.8')) + self.get_pkgs_dir, upload.PLATFORM), 'nightly', '1.5.8', 'win32')) self.assertEquals( pkgs, sorted(['BraveBrowserNightlySetup.exe', 'BraveBrowserSilentNightlySetup.exe', @@ -140,9 +147,8 @@ class TestGetBravePackages(unittest.TestCase): def test_only_returns_nightly_win_ia32_packages(self): upload.PLATFORM = 'win32' - os.environ['TARGET_ARCH'] = 'ia32' pkgs = list(upload.get_brave_packages( - os.path.join(self.get_pkgs_dir, upload.PLATFORM), 'nightly', '0.56.8')) + os.path.join(self.get_pkgs_dir, upload.PLATFORM), 'nightly', '1.5.8', 'win32', 'ia32')) self.assertEquals( pkgs, sorted(['BraveBrowserNightlySetup32.exe', 'BraveBrowserSilentNightlySetup32.exe', @@ -153,9 +159,8 @@ class TestGetBravePackages(unittest.TestCase): def test_only_returns_dev_win_x64_packages(self): upload.PLATFORM = 'win32' - os.environ['TARGET_ARCH'] = 'x64' pkgs = list(upload.get_brave_packages(os.path.join( - self.get_pkgs_dir, upload.PLATFORM), 'dev', '0.56.8')) + self.get_pkgs_dir, upload.PLATFORM), 'dev', '1.5.8', 'win32')) self.assertEquals( pkgs, sorted(['BraveBrowserDevSetup.exe', 'BraveBrowserSilentDevSetup.exe', @@ -166,9 +171,8 @@ class TestGetBravePackages(unittest.TestCase): def test_only_returns_dev_win_ia32_packages(self): upload.PLATFORM = 'win32' - os.environ['TARGET_ARCH'] = 'ia32' pkgs = list(upload.get_brave_packages( - os.path.join(self.get_pkgs_dir, upload.PLATFORM), 'dev', '0.56.8')) + os.path.join(self.get_pkgs_dir, upload.PLATFORM), 'dev', '1.5.8', 'win32', 'ia32')) self.assertEquals( pkgs, sorted(['BraveBrowserDevSetup32.exe', 'BraveBrowserSilentDevSetup32.exe', @@ -179,10 +183,9 @@ class TestGetBravePackages(unittest.TestCase): def test_only_returns_beta_win_x64_packages(self): upload.PLATFORM = 'win32' - os.environ['TARGET_ARCH'] = 'x64' pkgs = list(upload.get_brave_packages( os.path.join(self.get_pkgs_dir, upload.PLATFORM), - 'beta', '0.56.8')) + 'beta', '1.5.8', 'win32')) self.assertEquals( pkgs, sorted(['BraveBrowserBetaSetup.exe', 'BraveBrowserSilentBetaSetup.exe', @@ -193,10 +196,9 @@ class TestGetBravePackages(unittest.TestCase): def test_only_returns_beta_win_ia32_packages(self): upload.PLATFORM = 'win32' - os.environ['TARGET_ARCH'] = 'ia32' pkgs = list(upload.get_brave_packages( os.path.join(self.get_pkgs_dir, upload.PLATFORM), - 'beta', '0.56.8')) + 'beta', '1.5.8', 'win32', 'ia32')) self.assertEquals( pkgs, sorted(['BraveBrowserBetaSetup32.exe', 'BraveBrowserSilentBetaSetup32.exe', @@ -207,10 +209,9 @@ class TestGetBravePackages(unittest.TestCase): def test_only_returns_release_win_x64_packages(self): upload.PLATFORM = 'win32' - os.environ['TARGET_ARCH'] = 'x64' pkgs = list(upload.get_brave_packages( os.path.join(self.get_pkgs_dir, upload.PLATFORM), - 'release', '0.56.8')) + 'release', '1.5.8', 'win32')) self.assertEquals(pkgs, sorted(['BraveBrowserSetup.exe', 'BraveBrowserSilentSetup.exe', 'BraveBrowserStandaloneSetup.exe', @@ -220,10 +221,9 @@ class TestGetBravePackages(unittest.TestCase): def test_only_returns_release_win_ia32_packages(self): upload.PLATFORM = 'win32' - os.environ['TARGET_ARCH'] = 'ia32' pkgs = list(upload.get_brave_packages( os.path.join(self.get_pkgs_dir, upload.PLATFORM), - 'release', '0.56.8')) + 'release', '1.5.8', 'win32', 'ia32')) self.assertEquals(pkgs, sorted(['BraveBrowserSetup32.exe', 'BraveBrowserSilentSetup32.exe', 'BraveBrowserStandaloneSetup32.exe', @@ -231,8 +231,60 @@ class TestGetBravePackages(unittest.TestCase): 'BraveBrowserStandaloneUntaggedSetup32.exe', 'BraveBrowserUntaggedSetup32.exe'])) + def test_only_returns_android_packages(self): + upload.PLATFORM = 'linux' + pkgs = list(upload.get_brave_packages(os.path.join(self.get_pkgs_dir, + 'android'), + 'nightly', '1.5.8', 'android')) + self.assertEquals(pkgs, + sorted(['BraveModernarm.apk', + 'BraveModernx86.apk', + 'BraveMonoarm.apk', + 'BraveMonoarm64.apk', + 'BraveMonox64.apk', + 'BraveMonox86.apk', + 'Bravearm.apk', + 'Bravex86.apk'])) + + def test_only_returns_android_packages_arm(self): + upload.PLATFORM = 'linux' + pkgs = list(upload.get_brave_packages(os.path.join(self.get_pkgs_dir, + 'android'), + 'nightly', '1.5.8', 'android', 'arm')) + self.assertEquals(pkgs, + sorted(['BraveModernarm.apk', + 'BraveMonoarm.apk', + 'Bravearm.apk'])) + + def test_only_returns_android_packages_arm64(self): + upload.PLATFORM = 'linux' + pkgs = list(upload.get_brave_packages(os.path.join(self.get_pkgs_dir, + 'android'), + 'nightly', '1.5.8', 'android', 'arm64')) + self.assertEquals(pkgs, + sorted(['BraveMonoarm64.apk'])) + + def test_only_returns_android_packages(self): + upload.PLATFORM = 'linux' + pkgs = list(upload.get_brave_packages(os.path.join(self.get_pkgs_dir, + 'android'), + 'nightly', '1.5.8', 'android', 'x86')) + self.assertEquals(pkgs, + sorted(['BraveModernx86.apk', + 'BraveMonox86.apk', + 'Bravex86.apk'])) + + def test_only_returns_android_packages(self): + upload.PLATFORM = 'linux' + pkgs = list(upload.get_brave_packages(os.path.join(self.get_pkgs_dir, + 'android'), + 'nightly', '1.5.8', 'android', 'x64')) + self.assertEquals(pkgs, + sorted(['BraveMonox64.apk'])) # get an existing release (in draft status) from GitHub given a tag name + + class TestGetDraft(unittest.TestCase): def setUp(self): self.repo = Repo() diff --git a/script/update_release_changelog.py b/script/update_release_changelog.py index ee49e7921ef..fb1657e91ee 100644 --- a/script/update_release_changelog.py +++ b/script/update_release_changelog.py @@ -115,7 +115,7 @@ def parse_args(): parser.add_argument('-d', '--debug', action='store_true', help='Print debug statements') parser.add_argument('-t', '--tag', - help='Brave version tag (allowed format: "v0.60.45" or "refs/tags/v0.60.45") (required)', + help='Brave version tag (allowed format: "v1.5.45" or "refs/tags/v1.5.45") (required)', required=True) parser.add_argument('-u', '--url', help='URL for Brave Browser raw markdown file (required)', required=True) return parser.parse_args() diff --git a/script/uplift.py b/script/uplift.py index 99d9d4daaf6..196b9682fb5 100755 --- a/script/uplift.py +++ b/script/uplift.py @@ -89,7 +89,7 @@ def is_nightly(channel): return config.channel_names[0] == channel -# given something like "0.60.2", return branch version ("0.60.x") +# given something like "1.5.2", return branch version ("1.5.x") def get_current_version_branch(version): version = str(version) if version[0] == 'v': @@ -99,7 +99,7 @@ def get_current_version_branch(version): return '.'.join(parts) -# given something like "0.60.x", get previous version ("0.59.x") +# given something like "1.6.x", get previous version ("1.5.x") def get_previous_version_branch(version): version = str(version) if version[0] == 'v': diff --git a/script/upload.py b/script/upload.py index f9b0b0507c3..cf33c750738 100755 --- a/script/upload.py +++ b/script/upload.py @@ -5,7 +5,6 @@ import argparse import errno -import hashlib import logging import os import requests @@ -14,21 +13,13 @@ import shutil import subprocess import sys import tempfile - -from lib.config import (PLATFORM, get_target_arch, - get_env_var, - get_zip_name, product_name, project_name, - SOURCE_ROOT, dist_dir, output_dir, get_brave_version, - get_raw_version) -from lib.util import execute, parse_version, scoped_cwd, s3put -from lib.helpers import * - from lib.github import GitHub +from lib.helpers import * +from lib.config import (PLATFORM, get_env_var, product_name, + project_name, SOURCE_ROOT, dist_dir, output_dir, + get_brave_version, get_platform_key, get_raw_version) +from lib.util import execute, parse_version, scoped_cwd, s3put -DIST_NAME = get_zip_name(project_name(), get_brave_version()) -SYMBOLS_NAME = get_zip_name(project_name(), get_brave_version(), 'symbols') -DSYM_NAME = get_zip_name(project_name(), get_brave_version(), 'dsym') -PDB_NAME = get_zip_name(project_name(), get_brave_version(), 'pdb') if os.environ.get('DEBUG_HTTP_HEADERS') == 'true': try: @@ -37,6 +28,23 @@ if os.environ.get('DEBUG_HTTP_HEADERS') == 'true': from httplib import HTTPConnection # python2 +def get_zip_name(name, version, target_arch='x64', suffix=''): + arch = target_arch + if arch == 'arm': + arch += 'v7l' + zip_name = '{0}-{1}-{2}-{3}'.format(name, version, get_platform_key(), + arch) + if suffix: + zip_name += '-' + suffix + return zip_name + '.zip' + + +DIST_NAME = get_zip_name(project_name(), get_brave_version()) +SYMBOLS_NAME = get_zip_name(project_name(), get_brave_version(), 'symbols') +DSYM_NAME = get_zip_name(project_name(), get_brave_version(), 'dsym') +PDB_NAME = get_zip_name(project_name(), get_brave_version(), 'pdb') + + def main(): args = parse_args() print('[INFO] Running upload...') @@ -61,39 +69,44 @@ def main(): print('[INFO] Uploading release {}'.format(release['tag_name'])) # Upload Brave with GitHub Releases API. - upload_brave(repo, release, os.path.join(dist_dir(), DIST_NAME), force=args.force) - upload_brave(repo, release, os.path.join(dist_dir(), SYMBOLS_NAME), force=args.force) + upload_brave(repo, release, os.path.join(dist_dir, DIST_NAME), force=args.force) + upload_brave(repo, release, os.path.join(dist_dir, SYMBOLS_NAME), force=args.force) # if PLATFORM == 'darwin': - # upload_brave(repo, release, os.path.join(dist_dir(), DSYM_NAME)) + # upload_brave(repo, release, os.path.join(dist_dir, DSYM_NAME)) # elif PLATFORM == 'win32': - # upload_brave(repo, release, os.path.join(dist_dir(), PDB_NAME)) + # upload_brave(repo, release, os.path.join(dist_dir, PDB_NAME)) - pkgs = get_brave_packages(output_dir(), release_channel(), get_raw_version()) + out_dir = output_dir(args.target_os, args.target_arch) + dist_dir = dist_dir(args.target_os, args.target_arch) + pkgs = get_brave_packages(out_dir, release_channel(), get_raw_version(), args.target_os, args.target_arch, args.target_apk_base) if PLATFORM == 'darwin': for pkg in pkgs: - upload_brave(repo, release, os.path.join(output_dir(), pkg), force=args.force) + upload_brave(repo, release, os.path.join(out_dir, pkg), force=args.force) elif PLATFORM == 'win32': - if get_target_arch() == 'x64': - upload_brave(repo, release, os.path.join(output_dir(), 'brave_installer.exe'), + if args.target_arch == 'x64': + upload_brave(repo, release, os.path.join(out_dir, 'brave_installer.exe'), 'brave_installer-x64.exe', force=args.force) for pkg in pkgs: - upload_brave(repo, release, os.path.join(output_dir(), pkg), force=args.force) + upload_brave(repo, release, os.path.join(out_dir, pkg), force=args.force) else: - upload_brave(repo, release, os.path.join(output_dir(), 'brave_installer.exe'), + upload_brave(repo, release, os.path.join(out_dir, 'brave_installer.exe'), 'brave_installer-ia32.exe', force=args.force) for pkg in pkgs: - upload_brave(repo, release, os.path.join(output_dir(), pkg), force=args.force) + upload_brave(repo, release, os.path.join(out_dir, pkg), force=args.force) else: - if get_target_arch() == 'x64': + if args.target_os == 'android': for pkg in pkgs: - upload_brave(repo, release, os.path.join(output_dir(), pkg), force=args.force) + upload_brave(repo, release, os.path.join(out_dir, pkg), force=args.force) + if args.target_arch == 'x64': + for pkg in pkgs: + upload_brave(repo, release, os.path.join(out_dir, pkg), force=args.force) else: - upload_brave(repo, release, os.path.join(output_dir(), 'brave-i386.rpm'), force=args.force) - upload_brave(repo, release, os.path.join(output_dir(), 'brave-i386.deb'), force=args.force) + upload_brave(repo, release, os.path.join(out_dir, 'brave-i386.rpm'), force=args.force) + upload_brave(repo, release, os.path.join(out_dir, 'brave-i386.deb'), force=args.force) # mksnapshot = get_zip_name('mksnapshot', get_brave_version()) - # upload_brave(repo, release, os.path.join(dist_dir(), mksnapshot)) + # upload_brave(repo, release, os.path.join(dist_dir, mksnapshot)) # if PLATFORM == 'win32' and not tag_exists: # # Upload PDBs to Windows symbol server. @@ -126,7 +139,7 @@ def debug_requests_off(): requests_log.setLevel(logging.WARNING) -def get_brave_packages(dir, channel, version): +def get_brave_packages(dir, channel, version, target_os, target_arch='x64', target_apk_base=''): pkgs = [] def filecopy(file_path, file_desired): @@ -136,8 +149,7 @@ def get_brave_packages(dir, channel, version): shutil.copy(file_path, file_desired_path) return file_desired_path - channel_capitalized = '' if ( - channel == 'release') else channel.capitalize() + channel_capitalized = '' if (channel == 'release') else channel.capitalize() for file in os.listdir(dir): if os.path.isfile(os.path.join(dir, file)): file_path = os.path.join(dir, file) @@ -146,7 +158,6 @@ def get_brave_packages(dir, channel, version): channel_capitalized_spaced = '' if (channel == 'release') else (' ' + channel_capitalized) file_dmg = 'Brave-Browser' + channel_capitalized_dashed + '.dmg' file_pkg = 'Brave-Browser' + channel_capitalized_dashed + '.pkg' - if re.match(r'Brave Browser' + channel_capitalized_spaced + r'.*\.dmg$', file): filecopy(file_path, file_dmg) pkgs.append(file_dmg) @@ -163,8 +174,43 @@ def get_brave_packages(dir, channel, version): pkgs.append(file) elif re.match(r'brave-browser' + channel_dashed + '-' + version + r'.*\.rpm$', file): pkgs.append(file) + elif target_os == 'android': + if target_arch == 'arm': + if not target_apk_base: + if re.match(r'Brave.*arm.apk$', file): + pkgs.append(file) + else: + if target_apk_base == 'classic': + if file == 'Bravearm.apk': + pkgs.append(file) + elif target_apk_base == 'modern': + if file == 'BraveModernarm.apk': + pkgs.append(file) + elif target_apk_base == 'mono': + if file == 'BraveMonoarm.apk': + pkgs.append(file) + elif target_arch == 'arm64': + if file == 'BraveMonoarm64.apk': + pkgs.append(file) + elif target_arch == 'x86': + if not target_apk_base: + if re.match(r'Brave.*x86.apk$', file): + pkgs.append(file) + else: + if target_apk_base == 'classic': + if file == 'Bravex86.apk': + pkgs.append(file) + elif target_apk_base == 'modern': + if file == 'BraveModernx86.apk': + pkgs.append(file) + elif target_apk_base == 'mono': + if file == 'BraveMonox86.apk': + pkgs.append(file) + elif target_arch == 'x64': + if file == 'BraveMonox64.apk': + pkgs.append(file) elif PLATFORM == 'win32': - arch = '32' if (get_target_arch() == 'ia32') else '' + arch = '32' if (target_arch == 'ia32') else '' channel_arch_extension = channel_capitalized + 'Setup' + arch + '.exe' file_stub = 'BraveBrowser' + channel_arch_extension file_stub_silent = 'BraveBrowserSilent' + channel_arch_extension @@ -205,6 +251,15 @@ def parse_args(): parser.add_argument('-v', '--version', help='Specify the version', default=get_brave_version()) + parser.add_argument('--target_os', + help='Specify the target OS', + default='') + parser.add_argument('--target_arch', + help='Specify the target OS', + default='x64') + parser.add_argument('--target_apk_base', + help='Specify the target APK base', + default='classic') return parser.parse_args() @@ -213,21 +268,6 @@ def run_python_script(script, *args): return execute([sys.executable, script_path] + list(args)) -def dist_newer_than_head(): - with scoped_cwd(SOURCE_ROOT): - try: - head_time = subprocess.check_output(['git', 'log', - '--pretty=format:%at', - '-n', '1']).strip() - dist_time = os.path.getmtime(os.path.join(dist_dir(), DIST_NAME)) - except OSError as e: - if e.errno != errno.ENOENT: - raise - return False - - return dist_time > int(head_time) - - def get_text_with_editor(name): editor = os.environ.get('EDITOR', 'nano') initial_message = (