logo

Your first build

Once a branch is added with at least one build configuration, the next push to it becomes a build. This page follows that build from the push to the downloaded artifact, using the main branch of Starfall as the example.

What starts a build

A build is created for a push when all three of these are true: the push lands on a branch listed under Branch Configuration on the Connections page, that branch has at least one entry in its Build Configuration column, and the branch's Build Schedule allows it. One build is created per push, with one job per selected configuration.

Build schedules and what triggers a build
Build ScheduleWhat starts a build
On Every CommitEvery push to the branch. The head commit of the push is what gets built.
Nightly OnlyOnce a day at the time you picked, building the latest push on the branch. If that push has already been built, nothing is created.
Weekly OnlyOnce a week on the day and time you picked, with the same latest-push rule.

The time shown next to a nightly or weekly schedule is in your own time zone; the label names the zone, for example Time (PDT):. On a scheduled branch you can also build a specific commit ahead of the schedule with Build Now on the Commits page; see The Commits page for when the button appears.

If the Builds page still shows the Welcome! Let's Get Started banner, the project has no repository yet and nothing can build. Choose Connect Source Control Provider and follow the connection page for your provider: GitHub, Bitbucket Cloud or Diversion.

The Builds page before any repository is connected, showing the Welcome banner with the Connect Source Control Provider button.

Read the Builds page

Builds in the sidebar opens the build stream. The header card is titled Build stream and states how many branches build automatically, for example Currently auto-builds on 1 branch. The Search field matches commit messages; Filter opens a sheet with Order by, Branch, Status and Configuration, plus Reset filters.

The Builds page with one commit group expanded, showing a succeeded job and a failed job with their View Log and Download buttons.
One card per push. Expand it to see one row per build configuration.

Each card is one push. The heading is the commit message, followed by Version (the branch's version, for example v1.4.0), Build Number (counts up per branch, for example #4) and Created at. On the right, a summary chip rolls up the jobs: 1 Running while any job is still going, then 2 Failed if any failed, otherwise Success 2/2. The branch name sits next to it as a chip.

Click the card to expand it. Each row is one job, named by its configuration chip such as win32-release. The status chip at the left of a row is one of:

Job status chips on the Builds page
Status chipMeaningTime label
Build in progress...A build machine is working on it.Running for and a live elapsed time
Waiting for a build machineThe job is queued because no machine on the farm can take it right now. It stays queued and is retried; it does not time out on its own.Queued for
Build succeededThe job finished and an artifact was produced.Finished
Build failedThe job finished without an artifact. Open the log.Finished
Build canceledSomeone canceled it while it was in progress.Finished
Not BuiltThe job exists but has not been submitted. You rarely see this.Created

Two more chips can accompany the status. Last Known Good marks the most recent succeeded job for that configuration on the branch. Canceling... appears after you request a cancel and before the build machine confirms it.

At the right of every row are View Log, and on a succeeded job Download, followed by a checkbox labelled Select win32-release (one per configuration). The card header has Select all jobs and a 0 Selected counter; selection drives the cancel and delete buttons described in Cancel and delete. An expanded card with no jobs reads No builds have been run for any configuration yet; an empty stream reads No builds found.

Open the log

View Log on a job row opens the Logs page for that job. Back returns you to the Builds page with the row you came from scrolled into view. The page has three tabs: Log Viewer, Build Buddy and Export, the last of which is disabled today.

The Logs page for a failed job: the banner with the Failed chip, the Build Steps list at the left and the log viewer at the right scrolled to the first error.
The banner repeats the build's identity; the log viewer jumps to the first error on a failed job.

The banner repeats the commit message, Version, Build Number and Created at, then a status chip: Success, Running, Waiting for a build machine, Failed, Canceled or Idle, with Last Known Good and the configuration chip alongside. On a succeeded job the banner also carries Download.

Build Steps lists the stages the build machine reported, each with its duration and a tick, a cross or a spinner. The step that introduced a failure is the one marked with the cross. Until the machine reports its first step the panel reads No build steps available.

Log viewer shows up to four streams joined in order, labelled Setup · stdout, Setup · stderr, Build · stdout and Build · stderr. Setup is everything before the engine runs (checkout, toolchain checks, submission); Build is the engine's own output. Empty streams are dropped. The viewer has a Search field with previous and next match buttons, a line-wrapping toggle, a level filter, and an error-density strip you can click to jump. On a failed job the viewer opens at the first error. While a job is running the log streams in as it is written.

Build Buddy is an automated reading of a failed log. It opens with one of four verdicts, Build infrastructure issue, Project code issue, Project configuration issue or Cause unclear, then a Signature (the lines it keyed on), Affected Files and Warnings & Notices. Treat it as a lead. The log is the record.

Download the artifact

Download appears only on a job whose status is Build succeeded and which produced an artifact. It is on the job row on the Builds page and in the banner on the Logs page. Each click asks for a fresh, short-lived link and starts the download in your browser; there is no permanent URL to bookmark.

The artifact is one zip per configuration, named after it, for example win32-release.zip, containing the engine's build output for that platform and flavor. A failed or canceled job has no artifact, so it has no Download button. If the link cannot be issued you see a toast titled Download Failed; wait a moment and try again, and if it persists the artifact may have been removed with the build (see Deleted Builds).

The Commits page

Commits in the sidebar lists every commit Build Stream has received from your repository, whether or not it built. The page header reads Track code changes and build results across commits and has the same Search and Filter controls as the Builds page. Each row shows the commit message, then by the author, the short commit id and a count such as 1 file changed, with the provider name at the right.

The Commits page listing pushed commits, each with author, short commit id, file count and the source control provider.

Click a row to open the details panel. It shows Changes (for example 1 added • 0 modified • 0 removed), Contributors, Files Changed and Related Builds. Each related build is a row such as Failed • win32-debug • 7d ago (or Not started for a job that has not begun); clicking it takes you to that build on the Builds page.

The commit details panel open beside the Commits list, showing Changes, Contributors, Files Changed and Related Builds for one commit.

Build Now sits at the bottom of the panel only when both of these hold: the commit's branch is on Nightly Only or Weekly Only, and the commit has no builds yet. On an On Every Commit branch the button never appears, because the push already built. Once a commit has been built the button is gone for good, unless every build of that commit has been deleted; deleting a build is how you clear the way to build its commit again. If the request is refused you see a toast titled Build Failed with the reason, most often Build already exists for this commit or No build configurations found for this branch.

Cancel and delete

Both actions work on a selection. Tick the checkbox on one or more job rows, or Select all jobs in the card header, then use the buttons in the header. The counts in the button labels tell you what the selection contains.

  1. Cancel a job that is in progress

    Select the running or queued jobs and choose (1) Cancel In Progress. The dialog is titled Cancel Builds and asks Cancel 1 in-progress build?; confirm with Cancel Builds. A toast reads Cancel Requested / 1 build is being canceled., the row shows Canceling..., and it settles to Build canceled once the build machine has stopped. A job that is Waiting for a build machine can be canceled the same way.

  2. Delete completed jobs

    Select succeeded, failed or canceled jobs and choose (1) Delete Completed. With one job selected the dialog is titled with the commit message and configuration, for example Add double-jump: win32-release, and reads This build will be moved to the trash and will be permanently deleted 24 hours from now. Confirm with Delete Build. With several selected the title is Delete 2 Builds, the body says These builds, and the button is Delete Builds.

    The delete dialog for one selected job, titled with the commit message and configuration, warning that the build moves to the trash and is permanently deleted after 24 hours.

    The toast reads 1 build deleted / Auto-deletes after 24 hrs. The job leaves the Builds page at once and appears under Deleted Builds. If part of a selection could not be deleted, a second toast titled Delete Failed names how many, and those rows stay selected so you can retry.

Deleted Builds

Deleted Builds in the sidebar is the trash. The header reads Deleted builds are staged here and permanently deleted 24 hours after deletion. Each row shows the commit message, Deleted at, a countdown such as Permanently deletes in 23h 54m, the branch chip, a job count such as 1 build and a Restore button. A deleted single job shows its configuration chip instead of a count.

The Deleted Builds page with one trashed build showing its deletion time, the countdown to permanent deletion and the Restore button.

Restore puts the build back in the stream with its artifact and log intact; the toast reads Build restored and names the commit as being back in the build stream. When the trash is empty the page reads No deleted builds. Once the countdown reaches zero the next cleanup pass removes the build and its artifact from storage, and it cannot be recovered.

Builds also arrive in the trash without anyone deleting them: builds older than the retention window are swept into it automatically, and from there follow the same 24-hour countdown. The window is 90 days by default. See the reference.

When a build fails

Open the log first. A failure that happened before the engine ran appears in the Setup · stderr stream, prefixed OVERALL WORKER PROCESS ERROR:, and the message names what to change. A failure inside the engine appears in Build · stderr and the viewer jumps to it. The troubleshooting page quotes each Build Stream message with its cause and fix:

Something out of date or unclear? Email [email protected].