Continuous Integration
Buildkite approval for fork pull requests
Buildkite runs automatically for eligible pull requests whose branches are in the RisingWave repository. Pull requests opened from forks require approval before Buildkite executes their code.
After reviewing the changes, a RisingWave maintainer can approve the current commit by posting this exact comment on the GitHub pull request:
/approve-run-bk
Buildkite accepts this command only from a trusted GitHub owner, member, or collaborator, or from a GitHub account linked to a Buildkite user with permission to run the pipeline. The command from an outside contributor does not start a build.
The comment creates a new build for the pull request’s current head commit. A new commit does not inherit an earlier approval, so a maintainer must post the command again after the contributor pushes.
The pull-request pipeline runs after approval when the pull request is ready
for review. To run main-cron for a fork pull request, first add either:
ci/main-cron/run-all; orci/main-cron/run-selectedtogether with one or more applicableci/run-*labels.
Then post /approve-run-bk. A single approved comment can trigger both
pipelines when their respective conditions are satisfied.
CI Labels Guide
[ci/run-xxx ...]: Run additional steps in the PR workflow indicated byci/run-xxxin your PR.ci/pr/run-selected+[ci/run-xxx ...]: Only run selected steps indicated byci/run-xxxin your DRAFT PR.ci/main-cron/run-all: Run fullmain-cronworkflow for your PR.ci/main-cron/run-selected+[ci/run-xxx …]: Run specific steps indicated byci/run-xxxfrom themain-cronworkflow, in your PR. Can use to verify somemain-cronfix works as expected.- To reference
[ci/run-xxx ...]labels, you may look at steps frompull-request.ymlandmain-cron.yml.
Example
https://github.com/risingwavelabs/risingwave/pull/17197
To run e2e-test and e2e-source-test for main-cron in your pull request:
- Add
ci/run-e2e-test. - Add
ci/run-e2e-source-tests. - Add
ci/main-cron/run-selectedto skip all other steps which were not selected withci/run-xxx.
Main Cron Bisect Guide
- Create a new build via buildkite
- Add the following environment variables:
GOOD_COMMIT: The good commit hash.BAD_COMMIT: The bad commit hash.BISECT_BRANCH: The branch name where the bisect will be performed.CI_STEPS: TheCI_STEPSto run during the bisect. Separate multiple steps with a comma.- You can check the labels for this in main-cron.yml, under the conditions for each step.
Example you can try on buildkite:
- Environment variables:
GOOD_COMMIT=29791ddf16fdf2c2e83ad3a58215f434e610f89a BAD_COMMIT=7f36bf17c1d19a1e6b2cdb90491d3c08ae8b0004 BISECT_BRANCH=kwannoel/test-bisect CI_STEPS="test-bisect,disable-build"