Shared GitLab CI/CD framework for LLNL open-source projects to run tests on LC machines.
RADIUSS Shared CI provides reusable GitLab CI Components for testing HPC software across multiple LC supercomputers. Projects define their build/test command once and run it across multiple machines with different compilers, architectures, and configurations.
Current Version: v2026.02.2 | Requires: GitLab 17.0+
📚 Full Documentation | 🚀 5-Minute Setup | 📖 Migration Guide
Define stages and include components in your .gitlab-ci.yml:
# Define required stages (components don't define them)
stages:
- prerequisites
- build-and-test
# Include base pipeline
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/base-pipeline@v2026.02.2
inputs:
github_project_name: "my-project"
github_project_org: "LLNL"
github_token: $GITHUB_STATUS_TOKEN
# Machine availability check
dane-up-check:
extends: [.dane, .machine-check]
variables:
ASSOCIATED_CHILD_PIPELINE: "dane-build-and-test"
# Machine pipeline trigger
dane-build-and-test:
needs: [dane-up-check]
extends: [.dane, .build-and-test]
trigger:
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/dane-pipeline@v2026.02.2
inputs:
job_cmd: "./scripts/build-and-test.sh"
shared_alloc: "--nodes=1 --time=30"
job_alloc: "--nodes=1"
github_project_name: "my-project"
github_project_org: "LLNL"
- local: '.gitlab/jobs/dane.yml'Create .gitlab/jobs/dane.yml with your jobs:
gcc-build:
extends: .job_on_dane
variables:
COMPILER: "gcc"See 5-Minute Setup Guide for complete walkthrough.
Provides orchestration templates for multi-machine pipelines and machine availability checks.
Usage:
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/base-pipeline@v2026.02.2
inputs:
github_project_name: "my-project"
github_project_org: "LLNL"
github_token: $GITHUB_STATUS_TOKENExports: .machine-check, .build-and-test, .custom_job, .custom_perf, machine rule templates
CI templates for Dane (SLURM scheduler, Intel Xeon CPUs).
Usage:
dane-build-and-test:
trigger:
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/dane-pipeline@v2026.02.2
inputs:
job_cmd: "./build-and-test.sh"
shared_alloc: "--nodes=1 --time=30"
job_alloc: "--nodes=1"
github_project_name: "my-project"
github_project_org: "LLNL"
- local: '.gitlab/jobs/dane.yml'Exports: .job_on_dane, reproducer templates
CI templates for Matrix (SLURM scheduler, Intel Xeon CPUs, NVIDIA H100 GPUs).
Usage:
matrix-build-and-test:
trigger:
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/matrix-pipeline@v2026.02.2
inputs:
job_cmd: "./build-and-test.sh"
shared_alloc: "--partition=pci --nodes=1 --time=30"
job_alloc: "--partition=pci --nodes=1"
github_project_name: "my-project"
github_project_org: "LLNL"
- local: '.gitlab/jobs/matrix.yml'Exports: .job_on_matrix, reproducer templates
CI templates for Tioga (Flux scheduler, AMD EPYC CPUs, AMD MI250X GPUs).
Usage:
tioga-build-and-test:
trigger:
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tioga-pipeline@v2026.02.2
inputs:
job_cmd: "./build-and-test.sh"
shared_alloc: "--queue=pci --nodes=1 --time-limit=30m"
job_alloc: "--nodes=1 --begin-time=+5s"
github_project_name: "my-project"
github_project_org: "LLNL"
- local: '.gitlab/jobs/tioga.yml'Exports: .job_on_tioga, reproducer templates
CI templates for Tuolumne (Flux scheduler, AMD EPYC CPUs, AMD MI300A GPUs, production-like environment).
Usage:
tuolumne-build-and-test:
trigger:
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/tuolumne-pipeline@v2026.02.2
inputs:
job_cmd: "./build-and-test.sh"
shared_alloc: "--queue=pci --nodes=1 --time-limit=30m"
job_alloc: "--nodes=1 --begin-time=+5s"
github_project_name: "my-project"
github_project_org: "LLNL"
- local: '.gitlab/jobs/tuolumne.yml'Exports: .job_on_tuolumne, reproducer templates
CI templates for Corona (Flux scheduler, AMD EPYC CPUs, AMD MI50 GPUs).
Usage:
corona-build-and-test:
trigger:
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/corona-pipeline@v2026.02.2
inputs:
job_cmd: "./build-and-test.sh"
shared_alloc: "--nodes=1 --time-limit=30m"
job_alloc: "--nodes=1 --begin-time=+5s"
github_project_name: "my-project"
github_project_org: "LLNL"
- local: '.gitlab/jobs/corona.yml'Exports: .job_on_corona, reproducer templates
Templates for performance measurements across machines with GitHub benchmark reporting.
Usage:
stages:
- prerequisites
- build-and-test
- performance-measurements
performance-measurements:
extends: [.performance-measurements]
trigger:
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/performance-pipeline@v2026.02.2
inputs:
job_cmd: "./scripts/run-benchmarks.sh"
tioga_perf_alloc: "--queue=pci --nodes=1 --time-limit=15m"
perf_processing_cmd: "./scripts/process-results.py"
github_token: $GITHUB_STATUS_TOKEN
github_project_name: "my-project"
github_project_org: "LLNL"
- local: '.gitlab/jobs/performances.yml'Exports: .perf_on_<machine>, .results_processing, .results_reporting, GitHub benchmark templates
Skips CI pipelines on draft pull requests.
Usage:
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/utility-draft-pr-filter@v2026.02.2
inputs:
github_token: $GITHUB_STATUS_TOKEN
github_project_name: "my-project"
github_project_org: "LLNL"Skips CI on branches not associated with a pull request.
Usage:
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/utility-branch-skip@v2026.02.2
inputs:
github_token: $GITHUB_STATUS_TOKEN
github_project_name: "my-project"
github_project_org: "LLNL"Warns when shared CI jobs updated via the radiuss-spack-configs submodule may
conflict with a project's local job overrides. Advisory only (does not fail the
pipeline). Runs when a branch bumps the submodule pointer.
Usage:
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/utility-job-override-check@2026.6.0All inputs (submodule_path, shared_jobs_path, local_jobs_path,
machine_files, ref_branch) are optional and default to the conventional
RADIUSS project layout.
Complete configuration examples in examples/:
example-gitlab-ci.yml- Complete component-based setupexample-custom-jobs.yml- Job customization templatesexample-jobs-dane.yml- Machine-specific jobs
The include-based approach (using pipelines/*.yml and utilities/*.yml) remains available for GitLab < 17.0 or projects not yet migrated.
See Migration Guide for migration instructions.
Contributions are welcome! See Contributing Guide for:
- Development workflow
- Testing guidelines
- Code style
- Pull request process
Please read our Code of Conduct.
Current Version: v2026.02.2
Version format: vYYYY.MM.PATCH
YYYY.MM- Release year and monthPATCH- Hotfix index
See CHANGELOG.md for release history.
Projects using RADIUSS Shared CI:
Adrien M. Bernede
See contributors for all participants.
MIT License - All new contributions must be made under the MIT License.
See LICENSE, COPYRIGHT, and NOTICE for details.
SPDX-License-Identifier: (MIT)
LLNL-CODE-793462
About RADIUSS: The RADIUSS project promotes and supports key HPC open-source software developed at LLNL. These tools and libraries cover a wide range of features teams would need to develop modern simulation codes targeting HPC platforms.