Pegasus uses Github Actions for CI and runs compilation and testing tasks on our self-hosted runner. Since the compilation of Pegasus heavily consumes CPU resources, we deployed a high-performance server with static IP exclusively for the CI. This facility is currently the property of Xiaomi, Inc.
Workflow
As a new pull-request created, it will not immediately start compiling on the runner. Instead, it requires one Pegasus committer to add a "ready-for-testing" label to this PR. After that, the compilation and testing will begin.
Docker
To reduce the repeating preparation of CI, we encapsulate the building/testing environment into a docker image here: https://hub.docker.com/r/apachepegasus/ci-env.
...