Build Aseprite from source for Windows, Linux, and macOS using GitHub Actions.
Pick a version (or latest), trigger the workflow, and get a draft release in your repo with the compiled binaries.
- Compiled from the official aseprite/aseprite source on GitHub-hosted runners.
- Binaries land as draft releases (only the repo owner sees them) — EULA-friendly.
- Skia dependency cached per OS.
- Fork this repo.
- Go to Actions → Build and deploy Aseprite new version → Run workflow.
- Enter a tag (
v1.3.18.3) or leavelatest, pick which platforms to build, hit Run. - When the run finishes, grab the ZIPs from the Releases tab (drafts are private to the repo owner).
Any push to master also triggers a build of the latest Aseprite release across all three platforms.
The platforms input on the workflow dispatch lets you pick without editing the file:
all(default),windows,linux,macos- Combinations:
windows+linux,windows+macos,linux+macos
For a permanent default (e.g. only Windows on push), edit the case block in .github/workflows/aseprite_build_deploy.yml.
GitHub gives you 2,000 free Actions minutes per month on private repos. Each OS bills at a different rate:
| OS | Real minutes | Multiplier | Billed |
|---|---|---|---|
| Ubuntu | ~10 | ×1 | 10 |
| Windows | ~20 | ×2 | 40 |
| macOS | ~8 | ×10 | 80 |
| All | 130 |
A full three-OS build costs ~130 billed minutes. Trim to one platform and you get ~15× more runs from the same quota. See the Actions billing docs.
windows-latest currently resolves to windows-2025. Both windows-2022 and windows-2025 ship Visual Studio 2022 by default, but pinning windows-2022 keeps the toolchain stable across GitHub's periodic image rollouts. If you want VS 2026, you can point the matrix at windows-2025-vs2026 instead — no path changes needed thanks to TheMrMilchmann/setup-msvc-dev which auto-discovers the VS install via vswhere. Ninja is already preinstalled on all GitHub-hosted runners, so no separate setup action is needed for it.
Everything lives in .github/workflows/aseprite_build_deploy.yml:
| Setting | Value | Where |
|---|---|---|
| Build type | Release |
env.BUILD_TYPE |
| Skia tag | m124-08a5439a6b |
env.SKIA_TAG |
| LAF backend | skia |
CMake flag |
| macOS arch | x86_64 @ min 10.9 |
CMake flags |
| Artifact retention | 30 days | upload-artifact |
| Release visibility | Draft | release-action |
The Skia tag is what aseprite/laf currently pins (misc/skia-tag.txt); bump it in one place when upstream moves.
This workflow is legal because the source is open, but Aseprite is made by people who deserve your money if you use it. Buy a license: aseprite.org/#buy.
MIT.