Skill

Package and Deploy Makepad Applications

Skill for packaging Makepad apps across desktop, Android, iOS, and Wasm, plus GitHub Actions CI packaging.

Works with githubcargo

79
Spark score
out of 100
Updated last month
Version 13.4.0

Add to Favorites

Why it matters

Automate the packaging and deployment of Makepad applications across desktop, mobile, and web platforms. This asset streamlines the build process for various targets including installers, APKs, IPAs, and WebAssembly.

Outcomes

What it gets done

01

Package Makepad apps for desktop (deb, nsis, dmg).

02

Build Android APKs and iOS IPAs.

03

Generate WebAssembly output for web deployment.

04

Integrate packaging into GitHub Actions CI/CD pipelines.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-makepad-deployment | bash

Overview

Makepad Packaging & Deployment

A deployment skill covering Makepad application packaging for desktop (cargo-packager: .deb/NSIS/.dmg), mobile (cargo-makepad: APK/IPA), Wasm, and GitHub Actions CI release pipelines, with configuration examples and troubleshooting. Use when packaging, distributing, or automating release of a Makepad app for any platform. Scoped to packaging/deployment, not UI authoring - see sibling Makepad skills for layout, animation, or shaders.

What it does

Makepad Packaging & Deployment covers packaging Makepad Rust UI applications for every supported platform - desktop installers, mobile APK/IPA builds, WebAssembly output, and CI-based release artifacts - using cargo-packager for desktop, cargo-makepad for mobile/Wasm, and a dedicated makepad-packaging-action for GitHub Actions.

For CI, makepad-packaging-action wraps both cargo-packager and cargo-makepad and can upload artifacts directly to GitHub Releases, with the constraint that desktop packages need matching OS runners, iOS builds require macOS runners, and Android builds can run on any OS runner.

jobs:
  package:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4
      - uses: Project-Robius-China/makepad-packaging-action@v1
        with:
          args: --target x86_64-unknown-linux-gnu --release

Desktop packaging installs cargo-packager and robius-packaging-commands (a resource-collection helper), then configures a [package.metadata.packager] block in Cargo.toml with product metadata, icons, a before-packaging-command that gathers required Makepad resources (built-in font/widget resources plus app-specific ones), and per-platform output config: Linux produces a .deb via apt-get-installed system libraries, Windows produces an NSIS .exe installer, and macOS produces a .dmg with optional code-signing identity, minimum OS version, entitlements, and DMG window/icon layout configuration.

Mobile packaging uses cargo-makepad, installed directly from the makepad GitHub repo's dev branch. Android needs its toolchain installed (optionally with --full-ndk) before cargo makepad android build produces an .apk, runnable directly on device/emulator. iOS needs its toolchain installed separately for simulator versus device builds - device builds require first creating a matching empty app in Xcode to generate a provisioning profile, then passing --profile, --cert, and --device flags; a manual Payload/ zip step converts the built .app into a distributable .ipa. Wasm packaging installs its own toolchain and outputs an index.html, .wasm module, JS bridge, and static resources directory, servable locally via python3 -m http.server.

A complete example Cargo.toml demonstrates release build profiles (including a distribution profile with fat LTO and single codegen unit) alongside the full packager metadata block. A troubleshooting section covers three common failures: missing-resources crashes (check the resources array and that before-packaging-command ran successfully), iOS provisioning setup (create a matching Xcode app, run once on a physical device, note the profile path and cert fingerprint), and Android SDK toolchain issues (reinstall with --full-ndk).

When to use - and when NOT to

Use this skill when packaging, distributing, or automating deployment of a Makepad application, or when the task involves desktop installers, APK/IPA builds, WebAssembly output, or CI-based release artifacts using cargo-packager, cargo-makepad, or GitHub Actions packaging flows.

It is scoped to packaging and deployment specifically, not Makepad's UI/animation/layout/shader authoring covered by sibling Makepad skills. It is not a substitute for environment-specific validation, testing, or expert review of the resulting release artifacts.

Inputs and outputs

Inputs: a built Makepad application and a target platform (Linux/Windows/macOS/Android/iOS/Web) or CI packaging requirement.

Outputs: a platform-native installer or package (.deb, .exe/NSIS, .dmg, .apk, .app/.ipa, or Wasm bundle), or a configured CI workflow that produces and uploads these artifacts to GitHub Releases.

Integrations

Uses cargo-packager, robius-packaging-commands, cargo-makepad, and the makepad-packaging-action GitHub Action; part of the Makepad skill family alongside basics, DSL, layout, animation, event/action, font, shader, and reference skills.

Who it's for

Makepad developers who need to package and ship a Rust UI application across desktop, mobile, and web platforms, including CI-automated release pipelines.

FAQ

Common questions

Discussion

Questions & comments ยท 0

Sign In Sign in to leave a comment.