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:
- C/C++ Lint Workflow - Code quality checks using clang-format and clang-tidy
- Static Analysis Workflow - Security analysis using cppcheck
- Documentation Workflow - Doxygen documentation generation and GitHub Pages deployment
- Versioning Guide - Multi-version documentation with Doxygen and Jekyll integration
- Link Check Workflow - Documentation link validation using Lychee
- YAML Lint Workflow - YAML file validation and formatting
- Jekyll Guide - Complete Jekyll configuration and examples
- Example Workflows - Real-world usage examples for consumer repositories
π― 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 siteyamllint.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
Link Validation
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
Made with β€οΈ by N3b3x