Skip to content

docs(doxygen): Migrate to shared Doxygen workflow from common_system #466

Description

@kcenon

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

  • Workflow uses shared doxygen.yml from common_system
  • Documentation still generates and deploys correctly to GitHub Pages
  • Workflow triggers on push, PR, and manual dispatch

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationpriority:mediumMedium priority issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions