Skip to content

Search

Documentation

Forge: cloud builds for Balaur games

Forge builds a Balaur project for every platform on each push, signs what you give it keys for, and publishes to itch.io, Google Play and the App Store when you ask.

En esta página

Forge builds your Balaur game for every platform, from one repository, without a Mac, a Windows machine or an Android toolchain of your own. Push to GitHub and each platform you picked comes back as a download, signed where you gave it the keys, with a check on the commit saying how it went.

It is the same export you run on your own machine with balaur export <project> --target <platform>. Forge runs it for all your targets at once, on Linux, and keeps the result.

What it does

  • Builds Linux, macOS, Windows, iOS, Android and the web from one commit. See Builds and artifacts.
  • Follows GitHub. Install the Forge App on a repository and every push builds, with a Forge / <target> check per platform on the commit. See Connecting GitHub.
  • Signs Windows, macOS (with notarisation), iOS and Android builds with your certificates. See Signing.
  • Publishes to itch.io, Google Play and App Store Connect — one button per store on a finished build, never automatically. See Stores.
  • Answers scripts through an HTTP API. See Builds from scripts.

Start with Your first build.

What happens to your code

Forge runs code you wrote, on machines you do not own, so here is exactly what it does with it.

  • Your repository is cloned by Forge, one commit deep, and handed to the build read-only. The build has no network: it cannot download anything, and nothing in it can send your code anywhere.
  • Each build runs in its own container with fixed CPU, memory and time limits, and is thrown away afterwards. Its scratch space lives in memory, never on disk.
  • Your signing keys never enter the build. A build produces an unsigned file; a second container — from a different image, with no engine in it and none of your code — signs it afterwards. Keys are encrypted at rest, and no page or API ever shows one again.
  • Store credentials are handled the same way, and a store only ever receives a build when you press its button.
  • For a private repository Forge uses a short-lived GitHub token scoped to the repositories you granted, passed to git directly and never written into the checkout.