πŸš€ hf-general-ci-tools

A comprehensive collection of reusable GitHub Actions workflows for modern CI/CD pipelines


Publish Docs YAML Lint License GitHub Pages

Streamline your development workflow with battle-tested, production-ready GitHub Actions


πŸ“‹ Overview

This repository provides a curated set of reusable GitHub Actions workflows designed to accelerate your CI/CD pipeline setup. Whether you’re working on C/C++ projects, documentation, or need comprehensive quality checks, these workflows have you covered.

πŸ“– πŸ“šπŸŒ Live Complete Documentation - Interactive guides, examples, and step-by-step tutorials

✨ Key Features

  • πŸ”§ C/C++ Development - Linting, static analysis, and code quality
  • πŸ“š Documentation - Doxygen generation and GitHub Pages deployment
  • πŸ”— Link Validation - Comprehensive link checking for documentation
  • πŸ“ YAML Validation - Ensure your workflow files are properly formatted
  • 🎯 Production Ready - Battle-tested workflows used in real projects
  • βš™οΈ Highly Configurable - Extensive customization options
  • πŸš€ Easy Integration - Drop-in workflows for immediate use

πŸ”„ Reusable Workflows

For other repositories - These workflows are designed to be called from your own repositories

Workflow Description Features Quick Start
πŸ”§ C/C++ Lint Code quality and formatting checks β€’ clang-format
β€’ clang-tidy
β€’ Configurable rules
β†’ Use Now
πŸ›‘οΈ Static Analysis Security and bug detection β€’ cppcheck integration
β€’ Custom rules
β€’ Multiple standards
β†’ Use Now
πŸ“š Documentation Documentation generation & deployment β€’ Doxygen support
β€’ Jekyll sites
β€’ GitHub Pages
β†’ Use Now
πŸ”— Link Check Documentation link validation β€’ Lychee integration
β€’ Custom configs
β€’ Exclude patterns
β†’ Use Now
πŸ“ YAML Lint YAML file validation β€’ Syntax checking
β€’ Style validation
β€’ Custom rules
β†’ Use Now

🏠 Repository-Specific Workflows

Internal workflows - These are used by this repository itself.

Workflow Purpose Trigger Status
πŸ“š Publish Documentation Builds and deploys this repo’s documentation site Push to main, PRs βœ… Active
πŸ“ YAML Lint Validates YAML syntax in this repository Push, PRs βœ… Active

πŸ“š Documentation

🌐 Live Documentation Site
Published documentation with enhanced navigation and search

πŸ“– Available Guides

Guide Description Target Audience
πŸ“‹ Documentation Index Complete overview and navigation All users
πŸ”§ C/C++ Lint Guide Code quality and formatting setup C/C++ developers
πŸ›‘οΈ Static Analysis Guide Security analysis configuration Security-focused teams
πŸ“š Documentation Guide Documentation generation & deployment Documentation teams
πŸ”— Link Check Guide Link validation setup Documentation maintainers
πŸ“ YAML Lint Guide YAML validation configuration DevOps engineers
πŸ’‘ Example Workflows Complete workflow examples All users

πŸš€ Quick Start

πŸ“š View Complete Documentation - Interactive guides, examples, and configuration templates

🎯 Using Reusable Workflows

For other repositories - Copy and customize these examples for your project

πŸ”§ Basic CI Pipeline

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
name: πŸš€ CI Pipeline
on:
  push: { branches: [ main ] }
  pull_request: { branches: [ main ] }

jobs:
  # Code quality checks
  lint:
    uses: n3b3x/hf-general-ci-tools/.github/workflows/c-cpp-lint.yml@v1
    with:
      clang_version: "20"
      style: "file"
      extensions: "c,cpp,h,hpp"

  # Security analysis
  static:
    uses: n3b3x/hf-general-ci-tools/.github/workflows/c-cpp-static-analysis.yml@v1
    with:
      paths: "src include"
      std: "c++17"
      strict: false

  # Documentation generation
  docs:
    uses: n3b3x/hf-general-ci-tools/.github/workflows/docs.yml@v1
    with:
      doxygen_config: "Doxyfile"
      output_dir: "docs/doxygen/html"

  # Link validation
  link-check:
    uses: n3b3x/hf-general-ci-tools/.github/workflows/docs-link-check.yml@v1
    with:
      paths: "docs/**,*.md"

🎨 Individual Workflow Examples

πŸ”§ C/C++ Linting Only ```yaml name: Code Quality on: [push, pull_request] jobs: lint: uses: n3b3x/hf-general-ci-tools/.github/workflows/c-cpp-lint.yml@v1 with: source_dirs: "src/" include_patterns: "*.cpp,*.hpp,*.c,*.h" clang_version: "20" style: "file" ```
πŸ“š Documentation Only ```yaml name: Build Docs on: [push] jobs: docs: uses: n3b3x/hf-general-ci-tools/.github/workflows/docs.yml@v1 with: jekyll_enabled: true jekyll_source: "docs" deploy_pages: true run_link_check: true ```
πŸ”— Link Checking Only ```yaml name: Check Links on: [push, pull_request] jobs: link-check: uses: n3b3x/hf-general-ci-tools/.github/workflows/docs-link-check.yml@v1 with: paths: "docs/**,*.md" verbose: true timeout: "30" ```

πŸ“‹ Prerequisites

βœ… Required Setup

Requirement Description Example
GitHub Actions Enabled in your repository Repository Settings β†’ Actions
Project Structure Proper C/C++ project layout src/, include/, docs/
Configuration Files Tool-specific configs .clang-format, Doxyfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
your-awesome-project/
β”œβ”€β”€ .github/workflows/          # Your CI workflows
β”‚   └── ci.yml                  # Main CI pipeline
β”œβ”€β”€ src/                        # Source code
β”‚   β”œβ”€β”€ main.cpp
β”‚   └── utils/
β”œβ”€β”€ include/                    # Header files
β”‚   └── utils.h
β”œβ”€β”€ docs/                       # Documentation
β”‚   β”œβ”€β”€ index.md
β”‚   └── api/
β”œβ”€β”€ .clang-format              # Code style configuration
β”œβ”€β”€ .clang-tidy                # Static analysis configuration
β”œβ”€β”€ Doxyfile                   # Documentation configuration
β”œβ”€β”€ .yamllint                  # YAML linting configuration
└── README.md                  # Project documentation

πŸ“š Official Documentation

Tool Documentation Purpose
GitHub Actions Official GitHub Actions docs Workflow syntax and features
Clang Format Code formatting tool Style configuration
Cppcheck Static analysis tool Bug and security detection
Doxygen Documentation generator API documentation
Jekyll Static site generator Documentation websites

πŸ› οΈ Configuration Examples


πŸ“„ License

GNU General Public License v3.0 - See the LICENSE file for details

Free for personal and commercial use


πŸ§ͺ Test 404 Page - (on live documentation) Click this link to test our custom 404 page!

⭐ Star this repository if you find it helpful!

Report Bug β€’ Request Feature β€’ Contribute