
The installer, uninstaller, and the Zed binary files are all signed using Microsoft’s newly launched Trusted Signing service. For demonstration purposes, I have used my own account for the signing process. For more information about Trusted Signing, you can refer to the following links: - [Microsoft Security Blog: Trusted Signing is in Public Preview](https://techcommunity.microsoft.com/blog/microsoft-security-blog/trusted-signing-is-in-public-preview/4103457) - [Overview of Azure Trusted Signing](https://learn.microsoft.com/en-us/azure/trusted-signing/overview) **TODO:** - [x] `InnoSetup` script to setup an installer - [x] Signing process - [x] `Open with Zed` in right click context menu (by using sparse package) - [x] Integrate with `cli` - [x] Implement `cli` (#25412) - [x] Pack `cli.exe` into installer - [x] Implement auto updating (#25734) - [x] Pack autoupdater helper into installer - [x] Implement dock menus - [x] Add `Recent Documents` entries (#26369) - [x] Make `zed.exe` aware of sigle instance (#25412) - [x] Properly handle dock menu events (#26010) - [x] Handle `zed://***` uri **Materials needed:** - [ ] Icons - [ ] App icon for all channels (#9571) - [ ] Associated file icons, at minimum a default icon ([example](https://github.com/microsoft/vscode/tree/main/resources/win32)) - [ ] Logos for installer wizard - [ ] Icons for appx - [x] Code signing - [x] Secrets: AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, ACCOUNT_NAME, CERT_PROFILE_NAME - [x] Other constants: ENDPOINT, Identity Signature (i.e. `CN=Junkui Zhang, O=Junkui Zhang, L=Wuhan, S=Hubei, C=CN`)  https://github.com/user-attachments/assets/4f1092b4-90fc-4a47-a868-8f2f1a5d8ad8 Release Notes: - N/A --------- Co-authored-by: Kate <kate@zed.dev> Co-authored-by: localcc <work@localcc.cc> Co-authored-by: Peter Tripp <peter@zed.dev> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
60 lines
1.8 KiB
PowerShell
60 lines
1.8 KiB
PowerShell
# Based on the template in: https://docs.digitalocean.com/reference/api/spaces-api/
|
|
$ErrorActionPreference = "Stop"
|
|
. "$PSScriptRoot\lib\blob-store.ps1"
|
|
. "$PSScriptRoot\lib\workspace.ps1"
|
|
|
|
$allowedTargets = @("windows")
|
|
|
|
function Test-AllowedTarget {
|
|
param (
|
|
[string]$Target
|
|
)
|
|
|
|
return $allowedTargets -contains $Target
|
|
}
|
|
|
|
# Process arguments
|
|
if ($args.Count -gt 0) {
|
|
$target = $args[0]
|
|
if (Test-AllowedTarget $target) {
|
|
# Valid target
|
|
} else {
|
|
Write-Error "Error: Target '$target' is not allowed.`nUsage: $($MyInvocation.MyCommand.Name) [$($allowedTargets -join ', ')]"
|
|
exit 1
|
|
}
|
|
} else {
|
|
Write-Error "Error: Target is not specified.`nUsage: $($MyInvocation.MyCommand.Name) [$($allowedTargets -join ', ')]"
|
|
exit 1
|
|
}
|
|
|
|
ParseZedWorkspace
|
|
Write-Host "Uploading nightly for target: $target"
|
|
|
|
$bucketName = "zed-nightly-host"
|
|
|
|
# Get current git SHA
|
|
$sha = git rev-parse HEAD
|
|
$sha | Out-File -FilePath "target/latest-sha" -NoNewline
|
|
|
|
# TODO:
|
|
# Upload remote server files
|
|
# $remoteServerFiles = Get-ChildItem -Path "target" -Filter "zed-remote-server-*.gz" -Recurse -File
|
|
# foreach ($file in $remoteServerFiles) {
|
|
# Upload-ToBlobStore -BucketName $bucketName -FileToUpload $file.FullName -BlobStoreKey "nightly/$($file.Name)"
|
|
# Remove-Item -Path $file.FullName
|
|
# }
|
|
|
|
switch ($target) {
|
|
"windows" {
|
|
UploadToBlobStore -BucketName $bucketName -FileToUpload $env:SETUP_PATH -BlobStoreKey "nightly/zed_editor_installer_x86_64.exe"
|
|
UploadToBlobStore -BucketName $bucketName -FileToUpload "target/latest-sha" -BlobStoreKey "nightly/latest-sha-windows"
|
|
|
|
Remove-Item -Path $env:SETUP_PATH -ErrorAction SilentlyContinue
|
|
Remove-Item -Path "target/latest-sha" -ErrorAction SilentlyContinue
|
|
}
|
|
|
|
default {
|
|
Write-Error "Error: Unknown target '$target'"
|
|
exit 1
|
|
}
|
|
}
|