đź“Ł Introducing: Global Builds
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
buildId
s with your internal build identifiers. You can optionally pass in your uniquebuildId
or stick with the default system-generated ID. Note: unlikebuildTag
,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 anappId
. If you pass it into the CLI, we'll simply ignore it. - UUIDs for
buildId
anddeploymentId
: BothbuildId
anddeploymentId
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
- Update your CI integration/deployment workflow to use the newest CLI version
- 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:
- Once a deployment is manually made through the Console, older version of CLI will not work to create new deployments on that application.
- Builds or deployments created through the Console will be unavailable on older versions of CLI or SDKs. Only exceptions are
AppV1.GetApps()
andProcessesV1/V2
endpoints will return -1 forbuildId
anddeploymentId
.
⚡️ 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.