What
Replace the inline Doxygen workflow with the shared reusable workflow from kcenon/common_system.
- Current: database_system uses a custom inline workflow in
build-Doxygen.yaml with actions/checkout@v4 and direct deployment steps.
- Expected: Use
kcenon/common_system/.github/workflows/doxygen.yml@main shared workflow, matching 5 other ecosystem libraries (common, thread, logger, container, network).
- Scope:
.github/workflows/build-Doxygen.yaml only
Why
- DRY principle: The shared workflow centralizes Doxygen version, Graphviz setup, and deployment configuration. Changes to the shared workflow automatically propagate to all consumers.
- Version divergence: The inline workflow uses
actions/checkout@v4 while the shared workflow has moved to @v5. Divergence grows over time.
- Maintenance burden: database_system and monitoring_system are the only 2 libraries maintaining their own workflow copies.
Where
| File |
Action |
.github/workflows/build-Doxygen.yaml |
Replace contents |
How
Current (inline)
jobs:
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Doxygen and Graphviz
run: sudo apt-get install -y doxygen graphviz
- name: Generate documentation
run: doxygen Doxyfile
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
...
Target (shared workflow)
name: Generate-Documentation
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
docs:
uses: kcenon/common_system/.github/workflows/doxygen.yml@main
secrets: inherit
Acceptance Criteria
What
Replace the inline Doxygen workflow with the shared reusable workflow from
kcenon/common_system.build-Doxygen.yamlwithactions/checkout@v4and direct deployment steps.kcenon/common_system/.github/workflows/doxygen.yml@mainshared workflow, matching 5 other ecosystem libraries (common, thread, logger, container, network)..github/workflows/build-Doxygen.yamlonlyWhy
actions/checkout@v4while the shared workflow has moved to@v5. Divergence grows over time.Where
.github/workflows/build-Doxygen.yamlHow
Current (inline)
Target (shared workflow)
Acceptance Criteria
doxygen.ymlfrom common_system