đź“Ł Introducing: Global Builds

đź“Ł Introducing: Global Builds
TL;DR Use the same build across multiple applications. No more repetitive build uploads.

Previously, each application needed its own build, meaning you had to push the same build multiple times if you wanted to use it across different apps.

With Global Builds, upload your build once, and use it across all your applications. You'll now see a new "Builds" tab in the top-level navigation below Applications.

đź’ˇ
All new builds are now Global Builds. There are no breaking changes, but to access full functionality, upgrade your CLI/SDKs. Keep reading for details.

🔓Unlocked use cases:

  • Custom BuildIDs: Align Hathora buildIds with your internal build identifiers. You can optionally pass in your unique buildId or stick with the default system-generated ID. Note: unlike buildTag, buildId must be globally unique.
  • Seamless Build Promotion: Promote (or roll back) a build from one app (e.g., “Dev”) to another (e.g., “Production”) with just one command.
  • Build Efficiency: Avoid needing to push the same build to multiple applications.

🚀 Biggest changes

  • Global Builds UI: View and manage all your builds from a single location.
  • No more appId in builds: When creating a build, you no longer need to pass in an appId. If you pass it into the CLI, we'll simply ignore it.
  • UUIDs for buildId and deploymentId: Both buildId and deploymentId are now UUIDs instead of integers. If you’ve been relying on these being incremental, make sure to update your logic.

🛫 What you need to do

  1. Update your CI integration/deployment workflow to use the newest CLI version
  2. If you’re using the Unity plugin, upgrade to the latest version

đź‘€ Things to look out for

If you don’t upgrade immediately, you may start to notice a few inconsistencies:

  1. Once a deployment is manually made through the Console, older version of CLI will not work to create new deployments on that application.
  2. Builds or deployments created through the Console will be unavailable on older versions of CLI or SDKs. Only exceptions are AppV1.GetApps() and ProcessesV1/V2 endpoints will return -1 for buildId and deploymentId.

⚡️ API changes

This upgrade required us to bump our API resources for Build, Deployment, Process, and App. Below are the changes to each object.

ProcessesV3

ProcessesV2 ProcessesV3
deploymentId: integer deploymentId: string

DeploymentsV3

DeploymentV2 DeploymentsV3
buildId: integer buildId: string
deploymentId: integer deploymentId: string
buildTag

BuildsV3

BuildV2 BuildsV3
appId
regionalContainerTags
orgId
contentHash
buildId: integer buildId: string

AppsV2

AppV1 AppsV2
deploymentId: integer deploymentId: string
buildId: integer buildId: string

We can’t wait to hear what you think about Global builds! Feel free to share your feedback and questions in our discord.