Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/versioning-and-updates.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Studio uses Electron's built-in auto-updater to check for updates. The update fe
is constructed dynamically based on the current platform, architecture, and version,
and queries the WordPress.com API endpoint:

`https://public-api.wordpress.com/wpcom/v2/studio-app/updates?platform={platform}&arch={arch}&version={version}`
`https://public-api.wordpress.com/wpcom/v2/studio-app/updates?platform={platform}&studioArch={studioArch}&version={version}`

The API returns information about available updates, and the app downloads and installs
them automatically. See `src/updates.ts` for the implementation.
68 changes: 34 additions & 34 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -142,79 +142,79 @@ def distribute_builds(
binary_path: File.join(BUILDS_FOLDER, 'Studio-darwin-x64', 'Studio.app.zip'),

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just fixed tabs, nothing changed here

name: 'Mac Intel',
platform: 'Mac - Intel',
arch: 'x64',
arch: 'x64',
install_type: 'Update',
sha: commit_hash
},
arm64: {
binary_path: File.join(BUILDS_FOLDER, 'Studio-darwin-arm64', 'Studio.app.zip'),
name: 'Mac Apple Silicon',
platform: 'Mac - Silicon',
arch: 'arm64',
arch: 'arm64',
install_type: 'Update',
sha: commit_hash
},
windows_update: {
binary_path: File.join(BUILDS_FOLDER, 'make', 'squirrel.windows', 'x64', "studio-update.nupkg"),
name: 'Windows - x64 Update',
platform: 'Windows - x64',
arch: 'x64',
arch: 'x64',
install_type: 'Update',
sha: get_windows_update_release_sha(arch: 'x64')
},
windows_arm64_update: {
binary_path: File.join(BUILDS_FOLDER, 'make', 'squirrel.windows', 'arm64', "studio-update.nupkg"),
name: 'Windows - ARM64 Update',
platform: 'Windows - ARM64',
arch: 'arm64',
install_type: 'Update',
sha: get_windows_update_release_sha(arch: 'arm64')
}
windows_arm64_update: {
binary_path: File.join(BUILDS_FOLDER, 'make', 'squirrel.windows', 'arm64', "studio-update.nupkg"),
name: 'Windows - ARM64 Update',
platform: 'Windows - ARM64',
arch: 'arm64',
install_type: 'Update',
sha: get_windows_update_release_sha(arch: 'arm64')
}
}

full_install_builds = {
x64_dmg: {
binary_path: File.join(BUILDS_FOLDER, 'Studio-darwin-x64.dmg'),
name: 'Mac Intel (DMG)',
platform: 'Mac - Intel',
arch: 'x64',
arch: 'x64',
install_type: 'Full Install'
},
arm64_dmg: {
binary_path: File.join(BUILDS_FOLDER, 'Studio-darwin-arm64.dmg'),
name: 'Mac Apple Silicon (DMG)',
platform: 'Mac - Silicon',
arch: 'arm64',
arch: 'arm64',
install_type: 'Full Install',
},
windows: {
binary_path: File.join(BUILDS_FOLDER, 'make', 'squirrel.windows', 'x64', 'studio-setup.exe'),
name: 'Windows - x64',
platform: 'Windows - x64',
arch: 'x64',
arch: 'x64',
install_type: 'Full Install'
},
windows_arm64: {
windows_arm64: {
binary_path: File.join(BUILDS_FOLDER, 'make', 'squirrel.windows', 'arm64', 'studio-setup.exe'),
name: 'Windows - ARM64',
platform: 'Windows - ARM64',
arch: 'arm64',
arch: 'arm64',
install_type: 'Full Install'
},
windows_appx_unsigned: {
binary_path: File.join(BUILDS_FOLDER, 'Studio-appx-x64-unsigned', "Studio #{appx_version} unsigned.appx"),
name: 'Windows - x64 (Unsigned Appx)',
platform: 'Microsoft Store - x64',
arch: 'x64',
install_type: 'Full Install',
},
windows_arm64_appx_unsigned: {
binary_path: File.join(BUILDS_FOLDER, 'Studio-appx-arm64-unsigned', "Studio #{appx_version} unsigned.appx"),
name: 'Windows - ARM64 (Unsigned Appx)',
platform: 'Microsoft Store - ARM64',
arch: 'arm64',
install_type: 'Full Install',
},
windows_appx_unsigned: {
binary_path: File.join(BUILDS_FOLDER, 'Studio-appx-x64-unsigned', "Studio #{appx_version} unsigned.appx"),
name: 'Windows - x64 (Unsigned Appx)',
platform: 'Microsoft Store - x64',
arch: 'x64',
install_type: 'Full Install',
},
windows_arm64_appx_unsigned: {
binary_path: File.join(BUILDS_FOLDER, 'Studio-appx-arm64-unsigned', "Studio #{appx_version} unsigned.appx"),
name: 'Windows - ARM64 (Unsigned Appx)',
platform: 'Microsoft Store - ARM64',
arch: 'arm64',
install_type: 'Full Install',
},
}

builds_to_upload = release_tag.nil? ? update_builds : { **update_builds, **full_install_builds }
Expand Down Expand Up @@ -258,7 +258,7 @@ end
def create_versioned_file(original_file_path:, version:, arch:)
original_filename = File.basename(original_file_path)
if original_filename.match(/\.app\.zip$/i)
original_filename = original_filename.gsub(/\.app\.zip$/i, '')
original_filename = original_filename.gsub(/\.app\.zip$/i, '')
extension = '.zip'
elsif original_filename.match(/\.nupkg$/i)
original_filename = original_filename.gsub(/\.nupkg$/i, '')
Expand All @@ -284,9 +284,9 @@ end
def upload_file_to_apps_cdn(site_id:, product:, file_path:, platform:, arch:, build_type:, install_type: 'Full Install', visibility:, version:, build_number:, release_notes:, sha: nil, error_on_duplicate:, dry_run: DRY_RUN)
versioned_file_path = create_versioned_file(original_file_path: file_path, version:, arch:)

if !File.exist?(versioned_file_path)
UI.user_error!("File #{versioned_file_path} does not exist")
end
if !File.exist?(versioned_file_path)
UI.user_error!("File #{versioned_file_path} does not exist")
end

if dry_run
media_url = "https://appscdn.wordpress.com/downloads/wordpress-com-studio/#{platform}/#{version}/#{build_number}"
Expand Down
2 changes: 1 addition & 1 deletion src/updates.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export function setupUpdates() {

const url = new URL( 'https://public-api.wordpress.com/wpcom/v2/studio-app/updates' );
url.searchParams.append( 'platform', process.platform );
url.searchParams.append( 'arch', process.arch );
url.searchParams.append( 'studioArch', process.arch );
url.searchParams.append( 'version', app.getVersion() );

autoUpdater.setFeedURL( { url: url.toString() } );
Expand Down