Skip to content

Upload Assets

An asset is the compiled binary that will be distributed to users. Before uploading assets be sure to create a draft release.

In order to upload an asset the following are needed:

  • The Application’s slug (example: devtools-desktop)
  • The Organization’s slug (example: crabnebula)
  • Release ID (printed to the console when creating a new draft or can be found on the Cloud Platform page for the specific release)
  • The application asset file
  • Optional: The signature file for the asset
  • Optional: The public platform name
  • Optional: The update platform name

To upload an asset run the following command:

Terminal window
cn release upload {org-slug/app-slug} {release-id} \
--public-platform {public-platform-name} \
--update-platform {update-platform-name} \
--file {asset-file-path} \
--signature {signature-file-path}

Public Platform --public-platform

The public platform is referenced in your application market page, download buttons and can be used to fetch the asset in the latest release via the CDN. For more information, see the Fetch Latest Release page.

Common public platform names for Tauri and cargo-packager are listed below:

Bundle Formatx86_64aarch64i686armv7
Debiandeb-x86_64deb-aarch64deb-i686deb-armv7
RPMrpm-x86_64rpm-aarch64rpm-i686rpm-armv7
AppImageappimage-x86_64appimage-aarch64appimage-i686appimage-armv7
Pacmanpacman-x86_64pacman-aarch64pacman-i686pacman-armv7
DMGdmg-x86_64dmg-aarch64dmg-i686dmg-armv7
NSISnsis-x86_64nsis-aarch64nsis-i686nsis-armv7
WiXwix-x86_64wix-aarch64wix-i686wix-armv7

Update Platform --update-platform

The update platform is used to check for updates by taking a version number and update platform and producing a JSON object containing the update data which can be used by application updaters such as the Tauri updater and the cargo packager auto updater. For more information, see the Fetch Latest Release page.

The --update-platform flag is not needed if the asset is for example platform-independent (e.g.: a web app). If no platform is specified, the asset will be presented as a generic asset on the Cloud Platform.

Common update platform names for Tauri and cargo-packager are listed below:

Operating Systemx86_64aarch64i686armv7
Linuxlinux-x86_64linux-aarch64linux-i686linux-armv7
macOSmacos-x86_64macos-aarch64macos-i686macos-armv7
Windowswindows-x86_64windows-aarch64windows-i686windows-armv7

The --signature flag is required if --update-platform is set. If a .sig file with the same name as the asset file exists, the CLI will use it by default.

Example Usage

Here is an example of uploading a linux-x86_64 binary for the crabnebula/devtools-desktop application with a release ID of 01HKA6TGC281V51NGSRJNTJQAF:

Terminal window
cn release upload "crabnebula/devtools-desktop" "01HKA6TGC281V51NGSRJNTJQAF" \
--update-platform linux-x86_64 \
--file path_to_binary \
--signature path_to_signature

After an asset is uploaded it will then show up on the Cloud Platform under the “Releases” section for an application. Repeat this command for each platform and its respective asset to be distributed.

Next, publish the release.