The Fluid Project uses Buildkite and Jenkins for hosted continuous integration. Jenkins has been in use for a few years but search for alternatives has been underway due to issues documented FLUID-6220. Buildkite is a new option currently being tested with the Infusion repository. The rest of this page focusses solely on Buildkite-related details.
Buildkite provides free accounts to open source projects. They offer a dashboard, API, and agents. The agents, hosted on user-provided infrastructure, poll the API for jobs. Jobs are triggered via webhooks payloads emitted when GitHub pull requests or branch merges take place. As jobs are run on agents results are sent back to the API and reflected on the dashboard.
It is useful to subscribe to Buildkite status emails as reliability issues they experience impact Fluid CI.
A fluid-bot GitHub account is used to post job status updates in PR threads.
To set up a new pipeline visit the Fluid Project's Buildkite dashboard and follow these steps:
Wait and block pipelineone with a
Run this CI joblabel and
Read steps from repositorytype
Then visit the
GitHub settings for the new pipeline and:
Branch filter patternin the
Build pull requests,
Skip pull request builds for existing commits,
Build pull requests from third-party forked repositories,
Prefix third-party fork branch names, and
Update pull request commit statusesboxes are checked