Quick Reference¶
This page provides a quick lookup for common RADIUSS Shared CI components, variables, and configurations.
Component Catalog¶
All components are consumed with the pattern:
component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/<component-name>@<version>
Core Components¶
Component |
Purpose |
Required Inputs |
|---|---|---|
base-pipeline |
Orchestration templates, machine checks, GitHub integration |
|
dane-pipeline |
Build/test jobs on Dane (SLURM scheduler) |
|
matrix-pipeline |
Build/test jobs on Matrix (SLURM scheduler) |
|
corona-pipeline |
Build/test jobs on Corona (Flux scheduler) |
|
tioga-pipeline |
Build/test jobs on Tioga (Flux scheduler) |
|
tuolumne-pipeline |
Build/test jobs on Tuolumne (Flux scheduler) |
|
performance-pipeline |
Performance testing and GitHub benchmark reporting |
|
utility-draft-pr-filter |
Skip CI on draft pull requests |
|
utility-branch-skip |
Skip CI on branches not associated with PRs |
|
Required Stages¶
When using components, some stages must be defined in your .gitlab-ci.yml:
stages:
- prerequisites # Required for machine checks
- build-and-test # Required for machine child pipelines
- performance-measurements # Required if using performance child pipeline
Common Variables¶
Parent Pipeline Variables¶
Set these in .gitlab-ci.yml or .gitlab/custom-variables.yml:
Variable |
Description |
Example |
|---|---|---|
|
Your GitHub project name |
|
|
Your GitHub organization |
|
|
GitHub token (set in GitLab CI/CD settings) |
|
|
Service account username (optional) |
|
|
Build and test command (non-expandable) |
|
|
How to handle submodules |
|
Machine Control Variables¶
Choose the machines you want to run CI on by including the relevant machine components. Then, you can use variables to disable machines without changing includes. This can be convenient for temporary overrides, like skipping a machine with known issues, or for debugging.
Variable |
Effect |
|---|---|
|
Disable CI on Dane |
|
Disable CI on Corona |
|
Disable CI on Tioga |
|
Disable CI on Tuolumne |
|
Disable CI on Matrix |
Allocation Variables¶
SLURM (Dane, Matrix)¶
inputs:
shared_alloc: "--nodes=1 --exclusive --time=30"
job_alloc: "--nodes=1"
Flux (Corona, Tioga, Tuolumne)¶
inputs:
shared_alloc: "--nodes=1 --exclusive --time-limit=30m"
job_alloc: "--nodes=1 --begin-time=+5s"
Disable shared allocation:
inputs:
shared_alloc: "OFF"
See also
For complete input tables and exported template lists, see Component Reference.
GitHub Token Setup¶
Required scopes vary by feature. Create a dedicated token per use case:
Purpose |
Required Scopes |
Notes |
|---|---|---|
Status Reporting (required) |
|
Set as |
Performance Reporting (optional) |
|
For posting benchmark results to GitHub |
GitHub Integration Setup (one-time) |
|
Used when first connecting LC GitLab to GitHub |
Warning
Tokens must have a lifetime of no more than 30 days per LLNL policy.
Generate Token:
Go to GitHub Settings → Developer settings → Personal access tokens
Create token with the scopes for your use case
Add to GitLab:
Navigate to your GitLab project → Settings → CI/CD → Variables
Add variable:
GITHUB_STATUS_TOKEN= your tokenMark as “Masked” and “Protected” (recommended)
Use in Pipeline:
include: - component: .../base-pipeline@v2026.02.2 inputs: github_token: $GITHUB_STATUS_TOKEN
Common Job Customization¶
Override Custom Job Template¶
In .gitlab/custom-jobs.yml:
.custom_job:
before_script:
- echo "Project-specific setup"
- module load my-dependencies
artifacts:
reports:
junit: junit.xml
Extend Machine Job Template¶
In .gitlab/jobs/dane.yml:
gcc-11-build:
extends: .job_on_dane
variables:
COMPILER: "gcc"
COMPILER_VERSION: "11.0.0"
clang-14-build:
extends: .job_on_dane
variables:
COMPILER: "clang"
COMPILER_VERSION: "14.0.0"
File Structure¶
Typical project layout with components:
my-project/
├── .gitlab-ci.yml # Main pipeline (includes components)
├── .gitlab/
│ ├── custom-variables.yml # Variables (optional)
│ ├── custom-jobs.yml # Job templates (optional)
│ └── jobs/
│ ├── dane.yml # Dane-specific jobs
│ ├── matrix.yml # Matrix-specific jobs
│ ├── corona.yml # Corona-specific jobs
│ └── performances.yml # Performance jobs (optional)
└── scripts/
├── build-and-test.sh # Your build/test script
└── run-benchmarks.sh # Your performance script (optional)
Minimal Example¶
Simplest possible setup (single machine, one job):
.gitlab-ci.yml:
stages:
- prerequisites
- build-and-test
variables:
GITHUB_PROJECT_NAME: "my-project"
GITHUB_PROJECT_ORG: "LLNL"
JOB_CMD:
value: "./build-and-test.sh"
expand: false
include:
- component: $CI_SERVER_FQDN/radiuss/radiuss-shared-ci/base-pipeline@v2026.02.2
inputs:
github_project_name: $GITHUB_PROJECT_NAME
github_project_org: $GITHUB_PROJECT_ORG
github_token: $GITHUB_STATUS_TOKEN
dane-up-check:
extends: [.dane, .machine-check]
variables:
ASSOCIATED_CHILD_PIPELINE: "dane-build-and-test"
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: $JOB_CMD
shared_alloc: "--nodes=1 --exclusive --time=30"
job_alloc: "--nodes=1"
github_project_name: $GITHUB_PROJECT_NAME
github_project_org: $GITHUB_PROJECT_ORG
- local: '.gitlab/jobs/dane.yml'
.gitlab/jobs/dane.yml:
my-build-job:
extends: .job_on_dane
Quick Links¶
Getting Started: 5-Minute Quick Start
Core Concepts: Core Concepts
Migration Guide: Migrating to GitLab CI Components
Detailed Setup: Setup CI with Components
How-To Guides: How To
Troubleshooting: Troubleshooting
See also
For complete examples, see the examples/ directory in the repository.