Skip to main content
This section provides an overview of the automated pipelines, security enforcement mechanisms, and release engineering processes that govern the Palyra codebase. The infrastructure is designed to ensure high-quality contributions through rigorous quality gates, supply chain security, and deterministic testing. The automation is primarily driven by GitHub Actions, supplemented by local Makefile and justfile targets to allow developers to mirror CI checks locally.

Pipeline Architecture Overview

The Palyra CI/CD infrastructure is divided into four primary domains: quality assurance, security/supply chain, release distribution, and fuzzing. These domains are implemented as distinct workflows that coordinate to validate every commit and pull request.

System Mapping: CI/CD to Code Entities

The following diagram illustrates how the GitHub Action workflows interact with specific scripts and tools within the repository to enforce system integrity. Workflow and Script Association Sources: .github/workflows/ci.yml#1-10, .github/workflows/security.yml#1-10, .github/workflows/release.yml#1-10, Makefile#126-130, justfile#76-80

CI Pipeline and Quality Gates

The CI pipeline (.github/workflows/ci.yml) enforces code style, linting, and functional correctness across a multi-OS matrix (Ubuntu, macOS, Windows) .github/workflows/ci.yml#18-23. Key gates include: For details, see [CI Pipeline and Quality Gates (#11.1)]. Sources: .github/workflows/ci.yml#17-137, Makefile#4-6, Makefile#20-21

Security Gates and Supply Chain

Security is integrated directly into the SDLC via the security.yml workflow. This pipeline focuses on dependency hygiene and secret prevention: For details, see [Security Gates and Supply Chain (#11.2)]. Sources: .github/workflows/security.yml#11-156, infra/ci/security.yml#1-35, scripts/clean-runtime-artifacts.sh#7-26

Release Packaging and Distribution

The release process (.github/workflows/release.yml) automates the creation of portable bundles for Desktop and Headless environments. For details, see [Release Packaging and Distribution (#11.3)]. Sources: .github/workflows/release.yml#30-120, Makefile#120-125

Fuzzing Harness

Palyra maintains a suite of fuzzing targets in the fuzz/ directory to identify edge-case crashes and logic errors in critical parsers.
  • Target Areas: Includes parsers for config_path, a2ui_json, webhook_payload, and redaction_routines Makefile#147-160.
  • Execution: Fuzz targets are built using cargo-fuzz and are designed to run in continuous overnight campaigns infra/ci/security.yml#19-22.
For details, see [Fuzzing Harness (#11.4)]. Sources: Makefile#147-160, justfile#154-167, infra/ci/security.yml#19-22

Developer Pre-push Workflow

To minimize CI failures, developers are encouraged to use the local pre-push gate. This is available via .githooks/pre-push which invokes the scripts/run-pre-push-checks.sh script .githooks/pre-push#1-4. Local Verification Flow Sources: Makefile#7-11, justfile#7-11, .githooks/pre-push#1-4, scripts/run-pre-push-checks.sh#1-5

Child Pages