hf-general-ci-tools

A collection of reusable GitHub Actions workflows for general CI/CD tasks


πŸ”„ Reusable Workflows

These workflows are designed to be used by other repositories:

Workflow Description Quick Start
C/C++ Lint Code quality checks using clang-format and clang-tidy β†’ Lint Guide
Static Analysis Security analysis using cppcheck β†’ Static Analysis Guide
Documentation Doxygen documentation generation and GitHub Pages deployment β†’ Docs Guide
Versioning Multi-version documentation with Doxygen and Jekyll β†’ Versioning Guide
Link Check Documentation link validation using Lychee β†’ Link Check Guide
YAML Lint YAML file validation and formatting β†’ YAML Lint Guide

🏠 Repository-Specific Workflows

These workflows are used internally by this repository:

Workflow Purpose Trigger
Publish Documentation Builds and deploys this repo’s documentation site Push to main, PRs
YAML Lint Validates YAML syntax in this repository Push, PRs

πŸ“š Documentation

Each workflow has comprehensive documentation with usage examples and configuration options:

🎯 Quick Start

1. Choose Your Reusable Workflow

Select the appropriate reusable workflow for your needs:

1
2
3
4
5
6
7
8
9
10
11
# For C/C++ projects
uses: n3b3x/hf-general-ci-tools/.github/workflows/c-cpp-lint.yml@v1

# For documentation
uses: n3b3x/hf-general-ci-tools/.github/workflows/docs.yml@v1

# For link checking
uses: n3b3x/hf-general-ci-tools/.github/workflows/docs-link-check.yml@v1

# For YAML validation
uses: n3b3x/hf-general-ci-tools/.github/workflows/yamllint-reusable.yml@v1

Note: These are reusable workflows designed to be called from other repositories. The repository-specific workflows (like publish-docs.yml) are only used internally by this repository.

2. Configure Your Workflow

Each workflow supports extensive configuration options. See the individual workflow documentation for details.

3. Deploy

The workflows will automatically run on your specified triggers and provide detailed feedback.

πŸ”§ Features

  • πŸ”„ Reusable - Drop-in workflows for common CI tasks
  • βš™οΈ Configurable - Extensive input parameters for customization
  • πŸ“š Well Documented - Comprehensive guides and examples
  • πŸ›‘οΈ Secure - Follows GitHub Actions security best practices
  • πŸš€ Fast - Optimized for performance and reliability

πŸ“‹ Workflow Types

πŸ”„ Reusable Workflows

These workflows are designed to be called from other repositories using the uses keyword:

1
2
3
4
5
6
jobs:
  my-job:
    uses: n3b3x/hf-general-ci-tools/.github/workflows/docs.yml@v1
    with:
      jekyll_enabled: true
      deploy_pages: true

🏠 Repository-Specific Workflows

These workflows are only used internally by this repository:

  • publish-docs.yml - Builds and deploys this repo’s documentation site
  • yamllint.yml - Validates YAML syntax in this repository

For other repositories: Only use the reusable workflows listed in the β€œReusable Workflows” section above.

πŸ“– Usage Examples

Basic C/C++ Linting

1
2
3
4
5
6
7
8
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"

Documentation Generation

1
2
3
4
5
6
7
8
9
name: Documentation
on: [push]
jobs:
  docs:
    uses: n3b3x/hf-general-ci-tools/.github/workflows/docs.yml@v1
    with:
      jekyll_enabled: true
      run_link_check: true
      deploy_pages: true
1
2
3
4
5
6
7
8
name: Link Check
on: [push, pull_request]
jobs:
  links:
    uses: n3b3x/hf-general-ci-tools/.github/workflows/docs-link-check.yml@v1
    with:
      paths: "docs/** *.md"
      verbose: true

🀝 Contributing

Contributions are welcome! Please see our Contributing Guidelines for details.

πŸ“„ License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

πŸ™ Acknowledgments

  • GitHub Actions team for the excellent CI/CD platform
  • The open source community for inspiration and feedback
  • All contributors who help improve these workflows

Next: Reusable Workflows β†’

Made with ❀️ by N3b3x

GitHub β€’ Issues