Aspect Workflows integrates Bazel with your CI/CD workflow, using your existing CI platform.

Aspect Workflows supports Buildkite, CircleCI, and GitHub Actions

Why Aspect Workflows?

Fast builds

Optimize your Bazel configuration with fast warming, auto-scaling workers and a horizontally scaling remote cache so you can spend less time waiting on CI and more time shipping code to production.

Monitoring & alerts

Monitor your build metrics over time & get alerted immediately when there is a build or test breakage on main or a performance regression to your build lands.

Reduced compute costs

Minimize cloud costs with auto-scaling CI workers that leverage Bazel’s built-in incrementally.

Less maintenance

Aspect Workflows is a fully-managed offering. We operate the services, tune infrastructure configurations, and ensure CI stays fast and cloud costs are minimized.

Most CI platforms are based on the premise that the build system is incorrect: incremental rebuilds can produce stale results, so they are all designed around clean, cold workers that re-do all the build and test work.

Bazel should be hosted the opposite way: re-build and re-test work can be minimized by leveraging Bazel’s built-in incrementally, and correctness is guaranteed.

Making Bazel fast

Bazel requires a lot of tuning to get good performance

Check icon

Configure Bazel with CI specific flags

Check icon

Operate a horizontally scalable remote cache service

Check icon

Detect and report on non-determinism that causes cache misses

Check icon

Detect anomalies to know when code changes regress performance

Elastic pool of CI workers

Check icon

Reduce datacenter costs by scaling down unneeded replicas off-peak

Check icon

Reduce developer queue times by scaling up in anticipation of peak load.

Engagement model

Check icon

Aspect engineers deploy the infrastructure, either in our Cloud account or yours

Check icon

Aspect engineers are on-call for the service under our SLA

Warm CI workers

Avoid slow builds during scale-up periods when a developer’s request is dispatched to a fresh worker that has no local cache.

Check icon

Ensure that Bazel repository cache is persisted across machines

Check icon

Prevent analysis cache busts

Check icon

Populate local cache from remote cache before accepting user requests

Check icon

Execute Bazel repository rules before accepting user requests

Affectedness

Prevent changes in one project from negatively affecting build and test times in another by only building and testing the exact set of targets affected in each change set.

Check icon

Build and test only the subset of targets that are affected by files modified in change sets

Check icon

Workflows improves on current solutions which are very incorrect or slow

Formatting and linting

Check icon

Ensure that formatters were run and fail quickly, with a developer experience that guarantees quick repair

Check icon

Ensure that linters run and can report warnings back to code review tool

Keeping main green

Check icon

Provide a Buildcop service which ensures that an oncall engineer is alerted and can easily and quickly repair any breakage

Releasing changed artifacts

Check icon

Determine which deterministic build outputs differ from previous green builds

Check icon

Re-build changed artifacts with version stamping enabled

Check icon

Publish these artifacts to external storage such as container registry or cloud storage buckets

Check icon

Ensure that PR/diff requests don’t have permission to push artifacts

Expert help is a click away

Aspect Development, our professional services division, is here to help make your Bazel migration a success. Come find us at aspect.dev

Aspect CLI makes it easy for developers to diagnose their broken build by asking for help directly within their terminal session.