What
Replace the inline Doxygen workflow with the shared reusable workflow from kcenon/common_system.
- Current: monitoring_system uses a custom inline workflow (50 lines) in
build-Doxygen.yaml with actions/checkout@v6, manual Doxygen install, and direct peaceiris/actions-gh-pages@v4 deployment.
- Expected: Use
kcenon/common_system/.github/workflows/doxygen.yml@main shared workflow, matching 5 other ecosystem libraries.
- 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.
- Inconsistency risk: The inline workflow uses
actions/checkout@v6 while the shared workflow uses @v5. Divergence grows over time.
- Maintenance burden: 2 out of 8 libraries (monitoring, database) maintain their own workflow copy instead of reusing the shared one.
Where
| File |
Action |
.github/workflows/build-Doxygen.yaml |
Replace contents |
How
Current (inline, 50 lines)
jobs:
generate-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Checkout common_system dependency
uses: actions/checkout@v6
with:
repository: kcenon/common_system
path: common_system
- 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, 8 lines)
name: Generate-Documentation
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
jobs:
docs:
uses: kcenon/common_system/.github/workflows/doxygen.yml@main
with:
checkout-common-system: true
secrets: inherit
Acceptance Criteria
What
Replace the inline Doxygen workflow with the shared reusable workflow from
kcenon/common_system.build-Doxygen.yamlwithactions/checkout@v6, manual Doxygen install, and directpeaceiris/actions-gh-pages@v4deployment.kcenon/common_system/.github/workflows/doxygen.yml@mainshared workflow, matching 5 other ecosystem libraries..github/workflows/build-Doxygen.yamlonlyWhy
actions/checkout@v6while the shared workflow uses@v5. Divergence grows over time.Where
.github/workflows/build-Doxygen.yamlHow
Current (inline, 50 lines)
Target (shared workflow, 8 lines)
Acceptance Criteria
doxygen.ymlfrom common_systemcheckout-common-system: trueis set (monitoring_system depends on common_system headers)