mirror of
https://github.com/servo/servo.git
synced 2025-06-29 03:23:41 +01:00
Auto merge of #26207 - servo:jdm-patch-36, r=Manishearth
Publish new UWP package This fixes an issue where the latest UWP package is published at http://download.servo.org/nightly/uwp/servo-latest.0.0.0_Test.zip because the full filename contains "1.0.0.0" and we don't detect file extensions correctly.
This commit is contained in:
commit
66f14773c6
3 changed files with 34 additions and 30 deletions
|
@ -301,15 +301,14 @@ def with_rust_nightly():
|
|||
)
|
||||
|
||||
|
||||
def appx_artifact(debug):
|
||||
return '/'.join([
|
||||
appx_artifact = '/'.join([
|
||||
'repo',
|
||||
'support',
|
||||
'hololens',
|
||||
'AppPackages',
|
||||
'ServoApp',
|
||||
'ServoApp_1.0.0.0_%sTest.zip' % ('Debug_' if debug else ''),
|
||||
])
|
||||
'FirefoxReality.zip',
|
||||
])
|
||||
|
||||
|
||||
def windows_arm64(rdp=False):
|
||||
|
@ -322,7 +321,7 @@ def windows_arm64(rdp=False):
|
|||
"python mach build --dev --target=aarch64-uwp-windows-msvc",
|
||||
"python mach package --dev --target aarch64-uwp-windows-msvc --uwp=arm64",
|
||||
)
|
||||
.with_artifacts(appx_artifact(debug=True))
|
||||
.with_artifacts(appx_artifact)
|
||||
.find_or_create("build.windows_uwp_arm64_dev." + CONFIG.tree_hash())
|
||||
)
|
||||
|
||||
|
@ -338,7 +337,7 @@ def windows_uwp_x64(rdp=False):
|
|||
"python mach package --dev --target=x86_64-uwp-windows-msvc --uwp=x64",
|
||||
"python mach test-tidy --force-cpp --no-wpt",
|
||||
)
|
||||
.with_artifacts(appx_artifact(debug=True))
|
||||
.with_artifacts(appx_artifact)
|
||||
.find_or_create("build.windows_uwp_x64_dev." + CONFIG.tree_hash())
|
||||
)
|
||||
|
||||
|
@ -358,7 +357,7 @@ def uwp_nightly(rdp=False):
|
|||
"mach package --release --target=x86_64-uwp-windows-msvc --uwp=x64 --uwp=arm64",
|
||||
"mach upload-nightly uwp --secret-from-taskcluster",
|
||||
)
|
||||
.with_artifacts(appx_artifact(debug=False))
|
||||
.with_artifacts(appx_artifact)
|
||||
.with_max_run_time_minutes(3 * 60)
|
||||
.find_or_create("build.windows_uwp_nightlies." + CONFIG.tree_hash())
|
||||
)
|
||||
|
|
|
@ -70,7 +70,7 @@ PACKAGES = {
|
|||
r'target\release\msi\Servo.zip',
|
||||
],
|
||||
'uwp': [
|
||||
r'support\hololens\AppPackages\ServoApp\ServoApp_1.0.0.0_Test.zip',
|
||||
r'support\hololens\AppPackages\ServoApp\FirefoxReality.zip',
|
||||
],
|
||||
}
|
||||
|
||||
|
@ -627,8 +627,8 @@ class PackageCommands(CommandBase):
|
|||
nightly_dir = 'nightly/{}'.format(platform)
|
||||
filename = nightly_filename(package, timestamp)
|
||||
package_upload_key = '{}/{}'.format(nightly_dir, filename)
|
||||
extension = path.basename(package).partition('.')[2]
|
||||
latest_upload_key = '{}/servo-latest.{}'.format(nightly_dir, extension)
|
||||
extension = path.splitext(path.basename(package))[1]
|
||||
latest_upload_key = '{}/servo-latest{}'.format(nightly_dir, extension)
|
||||
|
||||
s3.upload_file(package, BUCKET, package_upload_key)
|
||||
copy_source = {
|
||||
|
@ -743,7 +743,7 @@ class PackageCommands(CommandBase):
|
|||
return 0
|
||||
|
||||
|
||||
def setup_uwp_signing(ms_app_store):
|
||||
def setup_uwp_signing(ms_app_store, publisher):
|
||||
# App package needs to be signed. If we find a certificate that has been installed
|
||||
# already, we use it. Otherwise we create and install a temporary certificate.
|
||||
|
||||
|
@ -766,11 +766,6 @@ def setup_uwp_signing(ms_app_store):
|
|||
run_powershell_cmd('Import-PfxCertificate -FilePath .\servo.pfx -CertStoreLocation Cert:\CurrentUser\My')
|
||||
os.remove("servo.pfx")
|
||||
|
||||
# Parse appxmanifest to find the publisher name
|
||||
manifest_file = path.join(os.getcwd(), 'support', 'hololens', 'ServoApp', 'Package.appxmanifest')
|
||||
manifest = xml.etree.ElementTree.parse(manifest_file)
|
||||
namespace = "{http://schemas.microsoft.com/appx/manifest/foundation/windows10}"
|
||||
publisher = manifest.getroot().find(namespace + "Identity").attrib["Publisher"]
|
||||
# Powershell command that lists all certificates for publisher
|
||||
cmd = '(dir cert: -Recurse | Where-Object {$_.Issuer -eq "' + publisher + '"}).Thumbprint'
|
||||
certs = list(set(run_powershell_cmd(cmd).splitlines()))
|
||||
|
@ -806,6 +801,14 @@ def build_uwp(platforms, dev, msbuild_dir, ms_app_store):
|
|||
else:
|
||||
Configuration = "Release"
|
||||
|
||||
# Parse appxmanifest to find the publisher name and version
|
||||
manifest_file = path.join(os.getcwd(), 'support', 'hololens', 'ServoApp', 'Package.appxmanifest')
|
||||
manifest = xml.etree.ElementTree.parse(manifest_file)
|
||||
namespace = "{http://schemas.microsoft.com/appx/manifest/foundation/windows10}"
|
||||
identity = manifest.getroot().find(namespace + "Identity")
|
||||
publisher = identity.attrib["Publisher"]
|
||||
version = identity.attrib["Version"]
|
||||
|
||||
msbuild = path.join(msbuild_dir, "msbuild.exe")
|
||||
build_file_template = path.join('support', 'hololens', 'package.msbuild')
|
||||
with open(build_file_template) as f:
|
||||
|
@ -820,14 +823,16 @@ def build_uwp(platforms, dev, msbuild_dir, ms_app_store):
|
|||
)
|
||||
build_file.close()
|
||||
# Generate an appxbundle.
|
||||
msbuild_args = setup_uwp_signing(ms_app_store)
|
||||
msbuild_args = setup_uwp_signing(ms_app_store, publisher)
|
||||
subprocess.check_call([msbuild, "/m", build_file.name] + msbuild_args)
|
||||
os.unlink(build_file.name)
|
||||
|
||||
# Don't bother creating an archive that contains unsigned app packages.
|
||||
if not ms_app_store:
|
||||
print("Creating ZIP")
|
||||
out_dir = path.join(os.getcwd(), 'support', 'hololens', 'AppPackages', 'ServoApp')
|
||||
name = 'ServoApp_1.0.0.0_%sTest' % ('Debug_' if dev else '')
|
||||
name = 'ServoApp_%s_%sTest' % (version, 'Debug_' if dev else '')
|
||||
artifacts_dir = path.join(out_dir, name)
|
||||
zip_path = path.join(out_dir, name + ".zip")
|
||||
zip_path = path.join(out_dir, "FirefoxReality.zip")
|
||||
archive_deterministically(artifacts_dir, zip_path, prepend_path='servo/')
|
||||
print("Packaged Servo into " + zip_path)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" IgnorableNamespaces="uap mp uap5">
|
||||
<Identity Name="MozillaFoundation.FirefoxReality" Publisher="CN=Allizom" Version="1.0.0.0" />
|
||||
<Identity Name="MozillaFoundation.FirefoxReality" Publisher="CN=Allizom" Version="1.1.0.0" />
|
||||
<mp:PhoneIdentity PhoneProductId="1d265729-8836-4bd3-9992-4cb111d1068b" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
|
||||
<Properties>
|
||||
<DisplayName>Firefox Reality</DisplayName>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue