makepad-deployment – DevOps & Infrastructure skill for AI agents
CRITICAL: Use for Makepad packaging and deployment. Triggers on: deploy, package, APK, IPA, 打包, 部署, cargo-packager, cargo-makepad, WASM, Android, iOS, distribution, installer, .deb, .dmg, .nsis, GitHub Actions, CI, action, marketplace
Install the makepad-deployment skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/makepad-deployment-1e3fe.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /makepad-deployment – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/makepad-deployment-1e3fe.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $makepad-deployment – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/makepad-deployment-1e3fe.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /makepad-deployment – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/makepad-deployment-1e3fe.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /makepad-deployment – then describe the task you want done.
SKILL.md content
Supporting material availability
This catalog copy contains the inline guidance below, but does not include the following supporting paths. They are external prerequisites, not bundled files:
<support-root>/references/makepad-packaging-action.md./assets/icon.png./dist/resources/makepad_widgets./dist/resources/makepad_fonts_chinese_bold./dist/resources/makepad_fonts_chinese_bold_2./dist/resources/makepad_fonts_chinese_regular./dist/resources/makepad_fonts_chinese_regular_2./dist/resources/makepad_fonts_emoji./dist/resources/your_app_resource./dist/resources/my-makepad-app<support-root>/references/platform-troubleshooting.md
Ask for the original supporting material or an existing installation before using a step that depends on these paths; this catalog does not identify a verified download source for them. Resolve each path relative to that installation, inspect its contents, and verify any applicable license and execution prerequisites. Do not run a command or claim a referenced procedure was followed until its required file exists. Do not fabricate the missing scripts or treat an unrelated file with the same name as equivalent. Independent steps fully documented here can proceed within the user’s authorized scope; report any dependent step as unavailable.
Makepad Packaging & Deployment
This skill covers packaging Makepad applications for all supported platforms.
When to Use
- You need to package, distribute, or automate deployment of a Makepad application.
- The task involves desktop installers, APK/IPA builds, WebAssembly output, or CI-based release artifacts.
- You need guidance on
cargo-packager,cargo-makepad, or GitHub Actions packaging flows for Makepad.
Quick Navigation
| Platform | Tool | Output |
|----------|------|--------|
| [Desktop](#desktop-packaging) | cargo-packager | .deb, .nsis, .dmg |
| [Android](#android) | cargo-makepad | .apk |
| [iOS](#ios) | cargo-makepad | .app, .ipa |
| [Web](#wasm-packaging) | cargo-makepad | Wasm + HTML/JS |
| [CI/CD](#github-actions-packaging) | makepad-packaging-action | GitHub Release assets |
---
GitHub Actions Packaging
Use makepad-packaging-action to package Makepad apps in CI. It wraps
cargo-packager (desktop) and cargo-makepad (mobile), and can upload artifacts
to GitHub Releases.
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 --releaseNotes:
- Desktop packages must run on matching OS runners (Linux/Windows/macOS).
- iOS builds require macOS runners.
- Android builds can run on any OS runner.
Full inputs/env/outputs and release workflows live in
references/makepad-packaging-action.md.
Desktop Packaging
Desktop packaging uses cargo-packager with robius-packaging-commands for resource handling.
Install Tools
# Install cargo-packager
cargo install cargo-packager --locked
# Install robius-packaging-commands (v0.2.1)
cargo install --version 0.2.1 --locked \
--git https://github.com/project-robius/robius-packaging-commands.git \
robius-packaging-commandsConfigure Cargo.toml
Add packaging configuration to your Cargo.toml:
[package.metadata.packager]
product_name = "YourAppName"
identifier = "com.yourcompany.yourapp"
authors = ["Your Name or Team"]
description = "A brief description of your Makepad application"
# Note: long_description has 80 character max per line
long_description = """
Your detailed description here.
Keep each line under 80 characters.
"""
icons = ["./assets/icon.png"]
out_dir = "./dist"
# Pre-packaging command to collect resources
before-packaging-command = """
robius-packaging-commands before-packaging \
--force-makepad \
--binary-name your-app \
--path-to-binary ./target/release/your-app
"""
# Resources to include in package
resources = [
# Makepad built-in resources (required)
{ src = "./dist/resources/makepad_widgets", target = "makepad_widgets" },
{ src = "./dist/resources/makepad_fonts_chinese_bold", target = "makepad_fonts_chinese_bold" },
{ src = "./dist/resources/makepad_fonts_chinese_bold_2", target = "makepad_fonts_chinese_bold_2" },
{ src = "./dist/resources/makepad_fonts_chinese_regular", target = "makepad_fonts_chinese_regular" },
{ src = "./dist/resources/makepad_fonts_chinese_regular_2", target = "makepad_fonts_chinese_regular_2" },
{ src = "./dist/resources/makepad_fonts_emoji", target = "makepad_fonts_emoji" },
# Your app resources
{ src = "./dist/resources/your_app_resource", target = "your_app_resource" },
]
before-each-package-command = """
robius-packaging-commands before-each-package \
--force-makepad \
--binary-name your-app \
--path-to-binary ./target/release/your-app
"""Linux (Debian/Ubuntu)
# Install dependencies
sudo apt-get update
sudo apt-get install libssl-dev libsqlite3-dev pkg-config \
binfmt-support libxcursor-dev libx11-dev libasound2-dev libpulse-dev
# Build package
cargo packager --releaseOutput: .deb file in ./dist/
Windows
# Build NSIS installer
cargo packager --release --formats nsisOutput: .exe installer in ./dist/
macOS
# Build package
cargo packager --releaseOutput: .dmg file in ./dist/
Platform-Specific Configuration
# Linux (Debian)
[package.metadata.packager.deb]
depends = "./dist/depends_deb.txt"
desktop_template = "./packaging/your-app.desktop"
section = "utils"
# macOS
[package.metadata.packager.macos]
minimum_system_version = "11.0"
frameworks = []
info_plist_path = "./packaging/Info.plist"
entitlements = "./packaging/Entitlements.plist"
# Optional: signing identity for distribution
signing_identity = "Developer ID Application: Your Name (XXXXXXXXXX)"
# macOS DMG
[package.metadata.packager.dmg]
background = "./packaging/dmg_background.png"
window_size = { width = 960, height = 540 }
app_position = { x = 200, y = 250 }
application_folder_position = { x = 760, y = 250 }
# Windows NSIS
[package.metadata.packager.nsis]
appdata_paths = [
"$APPDATA/$PUBLISHER/$PRODUCTNAME",
"$LOCALAPPDATA/$PRODUCTNAME",
]---
Mobile Packaging
Mobile platforms use cargo-makepad for building and packaging.
Install cargo-makepad
cargo install --force --git https://github.com/makepad/makepad.git \
--branch dev cargo-makepadAndroid
# Install Android toolchain
cargo makepad android install-toolchain
# Full NDK (recommended for complete support)
cargo makepad android install-toolchain --full-ndk
# Build APK
cargo makepad android build -p your-app --releaseOutput: .apk in ./target/makepad-android-app/
Run on device/emulator:
cargo makepad android run -p your-app --releaseiOS
# Install iOS toolchain
cargo makepad apple ios install-toolchainiOS Simulator:
cargo makepad apple ios \
--org=com.yourcompany \
--app=YourApp \
run-sim -p your-app --releaseOutput: .app in ./target/makepad-apple-app/aarch64-apple-ios-sim/release/
iOS Device (requires provisioning):
First, create an empty app in Xcode with matching org/app names to generate provisioning profile.
cargo makepad apple ios \
--org=com.yourcompany \
--app=YourApp \
--profile="$YOUR_PROFILE_PATH" \
--cert="$YOUR_CERT_FINGERPRINT" \
--device=iPhone \
run-device -p your-app --releaseOutput: .app in ./target/makepad-apple-app/aarch64-apple-ios/release/
Create IPA for distribution:
cd ./target/makepad-apple-app/aarch64-apple-ios/release
mkdir Payload
cp -r your-app.app Payload/
zip -r your-app-ios.ipa Payload---
Wasm Packaging
Build your Makepad app for web browsers.
# Install Wasm toolchain
cargo makepad wasm install-toolchain
# Build and run
cargo makepad wasm run -p your-app --releaseOutput in ./target/makepad-wasm-app/release/your-app/:
index.html- Entry point*.wasm- WebAssembly module*.js- JavaScript bridgeresources/- Static assets
Serve locally:
cd ./target/makepad-wasm-app/release/your-app
python3 -m http.server 8080 --bind 127.0.0.1
# Open http://localhost:8080---
Illustrative Cargo.toml (application sources/assets not bundled)
[package]
name = "my-makepad-app"
version = "1.0.0"
edition = "2024"
[dependencies]
makepad-widgets = { git = "https://github.com/makepad/makepad", branch = "dev" }
[profile.release]
opt-level = 3
[profile.release-lto]
inherits = "release"
lto = "thin"
[profile.distribution]
inherits = "release"
codegen-units = 1
lto = "fat"
[package.metadata.packager]
product_name = "My Makepad App"
identifier = "com.example.mymakepadapp"
authors = ["Your Name <[email protected]>"]
description = "A cross-pl… (full content is in the download package)
Related skills
- makepad-platform – CRITICAL: Use for Makepad cross-platform support. Triggers on: makepad platform, makepad…
- meteora-dlmm-pool-screening – Screen and rank Meteora DLMM pools for LP quality using public Meteora APIs (fee/TVL…
- microsoft-azure-webjobs-extensions-authentication-events-dotnet – Microsoft Entra Authentication Events SDK for .NET. Azure Functions triggers for custom…
- mirrord – Run a local process inside a live Kubernetes cluster's network, env and traffic with…
- mise-configurator – Generate production-ready mise.toml setups for local development, CI/CD pipelines, and…
- model-registry-governance – Establish model registry standards, governance controls, metadata schemas, approvals…
- model-serving-kubernetes – Deploy ML models on Kubernetes with KServe (formerly KFServing) and NVIDIA Triton…
- mongodb – Administer MongoDB databases. Configure replica sets, sharding, and backups. Use when…