We’re changing how you can view Solano CI’s processing of events that trigger builds, for example like the webhooks sent from GitHub. An event can be a webhook, a push from the command line, a “build now”, or a scheduled build.
We’ve always tracked incoming events (e.g. pushes) separately from viewable Sessions (i.e. Builds), and there hasn’t been a good presentation of events that haven’t had associated Sessions.
Since Solano CI will (by default) collapse pushes on a branch together into a new build if there’s an existing build running (“CI Squash”), we use this distinction between event and Session to minimize the number of running Sessions, in order to keep your build queues free of extra work. Also, incoming webhooks are often filtered out or dropped based on repo settings, and it made sense to hide the dropped events from view. This has had the negative UX impact that it may have taken many minutes for a push to be displayed as a visible report, even though it was received successfully and is being properly processed. We provide controls in your Repo Settings for CI Squash”, and the related behavior of not re-running a new build if there’s already a build on the same commit (“Dedup”).
This change allows us to share more information about these events sooner.
We’re now making visible and linkable reports for the event(s) that will turn into the next build on a branch. These will show up as “initializing”, and will remain like this while there’s already a running build. Once the running build on a branch completes, the initializing build will progress to “queued” as normal. A build that shows up as “initializing” won’t take up a build slot.
Initially we are adding three new report pages:
- An updated page for builds in “initializing” state
- A page for builds that have been squashed,
- A page for duplicate builds that were skipped because of a pre-existing build on the same commit.
First, let’s talk about the updated “initializing” page. This page will be available as soon as an event is received. As not much has happened yet in this build, it will just contain some basic information such as creation time, type (ci, cli, scheduled), commit id (if available), and event initiator. Once a build actually starts running it will return to the normal report page view.
Next up is “squashed” builds. Until now there has been no display for squashed builds. They now have their own report page that contain a link to the build that ran, and a link to the repo settings page where squash is set. Quick primer on squashed builds: “Solano CI will build only the most recent un-built push on the current branch, skipping intermediate pushes.” Here is an example of what a squashed build now looks like:
The build number in the title (i.e.#1096) is a link to the build that actually ran. It leads to the normal report page.
Finally Duplicate builds: Solano CI will not run a build for a webhook (by default) or scheduled build (if you set the option) whose latest commit has already run on the same branch within the past few days. Additionally it is possible to enable this feature repo-wide, to not run a new build if the same commit has been run on any branch in the repo. The Duplicate build page will contain a link to the build that ran, and the latest commit sha, in addition if it was a scheduled build it will contain the Schedule Info. Scheduled builds can be set to always run by selecting “always run” in the schedule builds options.
We hope you like this change!