π hf-general-ci-tools
A comprehensive collection of reusable GitHub Actions workflows for modern CI/CD pipelines
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 |
ποΈ Recommended Project Structure
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
π Related Resources
π 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
- Configuration Examples - Ready-to-use config files
- Example Workflows - Complete workflow 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