Workflows connects pre-warmed, Bazel optimized, self-hosted runners to your existing Buildkite, CircleCI, GitHub Actions or GitLab CI/CD account. Workflows runners scale-out when there is work to do and scale-in when idle to minimize your cloud compute costs.
We've optimized every aspect of the Bazel invocations on Workflows runners to ensure that your CI jobs are as fast as possible with fully cached builds generally taking one minute or less even on large repositories. Our customers generally see a 2-3X improvement in average CI times after switching to Workflows and an equivalent reduction in cloud compute costs.
See Aspect Workflows in action with your CI provider on our live examples.
Workflows not only makes your CI run faster but also make it efficient by lowering your compute costs.
Faster Builds. Lower Costs. Workflows pays for itself.
In addition to auto-scaling, pre-warmed runners, your Workflows deployment also includes:
- 24/7 on-call support with a shared Slack support channel
- A robust, horizontally scaled remote cache
- Monitoring and metrics for visibility into cache hit rates, build times, and more
- Selective Delivery of only release artifacts affected by each change set
- Built-in Buildifier and Gazelle checks
- Aspect Build Bot that posts CI results in real-time to your GitHub PRs or GitLab MRs so you get instant feedback when there are build & test failures even before your CI job goes red
- (Buildkite only) Real-time Buildkite annotations updated build & test failures as they happen
- Deployed into your AWS or GCP cloud environment
- Compatible with Buildkite, CircleCI, GitHub Actions, and GitLab CI/CD
- Optional Bazel Open Source Support bundled at a reduced price
Your Workflows deployment is fully supported by Aspect's 24/7 on-call support. Our support team will be paged by built-in alerts in the event of any issues or outages. We'll respond and resolve issues often before your team even notices any disruption to your CI service.
Our support team also co-manages your Workflows deployment. We'll work will with your team on upgrades, either performing them for you or assisting your DevOps/Platform team. We'll also help with rolling out new features, tuning performance, and optimizing compute costs.
If you need extra help with Bazel, our Professional Services team provides Slack-based Bazel Open Source Support for the entire Bazel ecosystem. We also offer training courses and consulting services to help with Bazel migrations, develop custom rules, and more.
Discover the full potential of Aspect Workflows – visit https://aspect.build/workflows to learn more, book a demo, and start your one-month free trial today!
Workflows has the following components:
- A terraform module called
workflowsthat can be used from your existing infrastructure-as-code setup.
- A Node.js application called
rosettawhich abstracts the details of spawning the
Aspect Workflows integrates with the following CI systems:
We use your CI system's dynamic pipelines feature to generate the Workflows pipeline, so the actual configuration for CI is generated when a request arrives.
You can check in the generated CI configuration in your repo if you want to edit it by hand.
Buildkite allows you to inspect the generated config in the User Interface by expanding the "Setup Aspect CI" step and looking in the Timeline tab. The "Uploaded Pipeline Steps" shows ~100 lines of YAML configuration was produced for our build:
Behind the scenes, Workflows has deployed an elastic pool of build agents using an EC2 Auto-Scaling Group. When a new machine boots, it is "warmed up" so that even the first build it performs is incremental. As a result, you can see that our builds are under two minutes, even though this repository has low traffic and so build agents generally expire and builds launch on fresh instances.
Aspect Workflows comes pre-loaded with details metrics that track the health of your build so you can see at a glance how your build performance measures up and how it changes over time.
Aspect Build Bot
Aspect's Build Bot posts build & test results directory to your GitHub PR at they happen. Test failures are reported live while your build is still running, giving you real time time-to-failure feedback on your changes so you can iterate faster than ever before!
Support for GitLab MRs comming soon.
Annotations (Buildkite only)
Developers can crawl through the whole Bazel log, but it may be hundreds of lines of spam. Or, they could click away from the CI results page to some dedicated "Bazel results UI" which shows much more information than they wanted, and requires yet another interface.
Our approach leverages the Aspect CLI, which has a Workflows plugin. This lets us show build failures in an intuitive way on the page a developer is already looking at.
For example, here's a recent failure from a PR to that bazel-lib project:
We see that the test failures are reported, with their JUnit XML files parsed. We link to the log file for each test failure, and provide a "how to reproduce" code snippet.