The RADIUSS project promotes and supports key High Performance Computing (HPC) open-source software developed at the LLNL. These tools and libraries cover a wide range of features a team would need to develop a modern simulation code targeting HPC platforms.
Radiuss Shared CI allows project to share CI configuration for GitLab.
This project is meant to be hosted in a GitLab instance so that other projects can use it to configure their CI pipelines.
As of v2025.12.0, RADIUSS Shared CI is available as GitLab CI Components (requires GitLab 17.0+). This provides:
- Better versioning through the GitLab CI/CD Catalog
- Type-safe inputs with validated parameters
- Cleaner syntax using
component:instead ofinclude: project: - No more copy-pasting - all templates are reusable components
User documentation is located here: RADIUSS Shared CI Docs.
Add components to your .gitlab-ci.yml:
# You must define stages (components don't define them to allow customization)
stages:
- prerequisites
- build-and-test
- performance-measurements
include:
# Base pipeline orchestration
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/[email protected]
inputs:
github_project_name: "my-project"
github_project_org: "LLNL"
github_token: $GITHUB_TOKEN
# Machine-specific pipeline (choose the machines you need)
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/[email protected]
inputs:
job_cmd: "./scripts/build-and-test.sh"
job_alloc: "1 -W 30"
github_project_name: "my-project"
github_project_org: "LLNL"See the examples/ directory for complete configuration examples.
- base-pipeline - Orchestration templates and machine availability checks
- lassen-pipeline - Lassen supercomputer (LSF scheduler)
- dane-pipeline - Dane supercomputer (SLURM scheduler)
- matrix-pipeline - Matrix supercomputer (SLURM scheduler)
- corona-pipeline - Corona supercomputer (flux scheduler)
- tioga-pipeline - Tioga supercomputer (flux scheduler)
- tuolumne-pipeline - Tuolumne supercomputer (flux scheduler)
- performance-pipeline - Performance measurement and GitHub reporting
- utility-draft-pr-filter - Skip CI on draft pull requests
- utility-branch-skip - Skip CI on non-PR branches
The traditional include-based approach (using pipelines/*.yml and utilities/*.yml) is still available for GitLab versions < 17.0 or for projects that haven't yet migrated. See the documentation for migration guidance.
This project requires no installation. Components are consumed directly from the GitLab instance.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
version: v2025.12.0
When a new version of RADIUSS Shared CI is released, we use the current year and month to set the version number, followed by a "minor" index which we increase in case we need a hotfix.
This is coherent with how most projects using RADIUSS Shared CI deal with versioning and helps syncing with other utilities, like RADIUSS Spack configs.
Adrien M. Bernede
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE file for details
All new contributions must be made under the MIT License.
See LICENSE, COPYRIGHT, and NOTICE for details.
SPDX-License-Identifier: (MIT)
LLNL-CODE-793462