CI Support `ci/`

Location: ci/
Purpose: CI configuration and support files Latest Version: 0.0.5-1


Overview

The ci/ directory contains configuration files, scripts, and Nix expressions that support the CI/CD pipeline. These files are used by GitHub Actions workflows for code quality, validation, and build processes.


Directory Structure

ci/
├── code-quality.nix        # Nix expression for code quality tools
├── code-quality.sh         # Shell script for linting/formatting
├── default.nix             # Default Nix entry point
├── parse.nix               # Nix parsing utilities
├── pinned.json             # Pinned Nix package versions
├── supportedBranches.js    # Branch configuration
├── supportedSystems.json   # Target system matrix
├── supportedVersions.nix   # Version compatibility
├── update-pinned.sh        # Update pinned packages
├── OWNERS                  # Code ownership file
│
├── codeowners-validator/   # CODEOWNERS validation
├── eval/                   # Evaluation helpers
├── github-script/          # GitHub Script automation
└── nixpkgs-vet/            # Nixpkgs validation

File Descriptions

Core Files

File Description
code-quality.nix Nix expression defining code quality tool environment
code-quality.sh Main script for running clang-format, linters, etc.
default.nix Default Nix derivation entry point

Configuration

File Description
pinned.json Pinned nixpkgs revision for reproducibility
supportedSystems.json Build matrix (Linux, macOS, Windows)
supportedVersions.nix Supported version compatibility matrix
supportedBranches.js CI branch filtering rules

Subdirectories

Directory Purpose
codeowners-validator/ Validates CODEOWNERS file format
eval/ Nix evaluation helpers for project validation
github-script/ JavaScript helpers for GitHub Actions
nixpkgs-vet/ Nixpkgs best practices validation

Usage

Running Code Quality Checks

# Using Nix
nix-shell ci/default.nix --run "./ci/code-quality.sh"

# Or directly
./ci/code-quality.sh

Updating Pinned Packages

./ci/update-pinned.sh

Integration

These files are used by:

  • ci-lint.yml — Code quality workflow
  • ci-new.yml — Main orchestrator
  • flake.nix — Nix flake development shell

Related Documentation

Was this handbook page helpful?

Last updated: February 19, 2026 Edit on GitHub