XGC uses GitLab CI to test pull requests and changes to the master branch.
XGC uses a custom location for its GitLab CI configuration file (not
This allows us to define jobs specific to individual GitLab servers and their associated runners (eg. PPPL vs. NERSC).
These configuration files are location in the gitlab/ subdirectory of XGC-Devel.
Although GitLab does support integration with GitHub, this built-in functionality does not support testing pull requests from forks of the mainline repository. For this reason, instead of using GitLab’s built-in integration with GitHub, we maintain a polling script called gh-gl-sync. This script achieves two goals for us:
It copies branches to be tested from GitHub to GitLab.
It posts status back to GitHub from completed GitLab pipelines.
The source code for this script is available here:
This script runs every few minutes as a scheduled pipeline under the following GitLab project:
The GitLab runner responsible for running this scheduled pipeline uses a Docker image from this repository: