Documentation Maintenance Guide
The CloudForge CI project publishes a Docusaurus documentation site and an aggregated JavaDoc API reference alongside its test and validation reports. This guide describes how to maintain and verify that documentation.
Published Structure
The GitHub Pages site uses this layout:
https://cloudforgeci.github.io/cfc-core/
├── index.html # Reports dashboard
├── documentation/ # Docusaurus user documentation
├── javadoc/ # JavaDoc API reference
├── coverage/ # Code coverage reports
├── validation/ # Validation reports
├── sbom/ # Security reports
└── history/ # Historical versions
The publishing workflow builds:
- Docusaurus documentation
- Source: Markdown files in
docs/ - Configuration:
docs/web/ - Output: the documentation site
- Source: Markdown files in
- JavaDoc API reference
- Source: Java documentation comments
- Command:
mvn javadoc:aggregate - Output: aggregated API documentation for
cloudforge-apiandcloudforge-core
- GitHub Pages content
- Publishes the documentation and JavaDoc with the existing reports
- Retains historical versions according to the workflow configuration
Review .github/workflows/publish-reports.yml before changing build triggers, retention, or publication paths.
Maintain the Docusaurus Site
The main files are:
docs/web/package.json- Node.js dependencies and scriptsdocs/web/docusaurus.config.js- Site and navigation configurationdocs/web/sidebars.js- Sidebar structuredocs/web/src/css/custom.css- Site stylingdocs/web/static/img/- Logo and favicondocs/web/.gitignore- Generated-file exclusionsdocs/web/README.md- Docusaurus-specific setup notes
The Docusaurus site reads every Markdown file under docs/ except docs/web/. Pages not
listed in sidebars.js are still built but are not reachable from the sidebar.
When adding or moving a document:
- Add or move the Markdown source under
docs/. - Update its entry in
docs/web/sidebars.js. - Check links from
docs/README.mdand other index pages. - Run the local Docusaurus build.
Update Site Metadata
Edit docs/web/docusaurus.config.js when the publication location changes:
url- GitHub Pages URLorganizationName- GitHub organizationprojectName- Repository name
Keep docs/web/static/img/logo.svg and docs/web/static/img/favicon.ico aligned with the current project identity.
Configure Search
If Algolia DocSearch is enabled, set the values in docs/web/docusaurus.config.js:
algolia: {
appId: 'YOUR_APP_ID',
apiKey: 'YOUR_SEARCH_API_KEY',
indexName: 'cfc-core',
}
Apply through Algolia DocSearch, replace the placeholder values, or remove the Algolia configuration when hosted search is not in use.
Verify Changes Locally
Run Docusaurus
cd docs/web
npm install
npm start
The development server defaults to http://localhost:3000 and reloads when source files change.
Build Docusaurus
cd docs/web
npm run build
npm run serve
Use the production build to detect broken links, invalid sidebar entries, and configuration errors before publication.
Generate JavaDoc
From the repository root:
mvn javadoc:aggregate
# Output: target/site/apidocs/
Review JavaDoc warnings and add or correct source comments where appropriate. The release
profile sets <failOnError>false</failOnError> for the JavaDoc plugin, so warnings do not fail
a release build.
Publishing Checks
Before merging documentation changes:
- Build the Docusaurus site.
- Generate JavaDoc when Java API comments or signatures changed.
- Confirm that sidebar paths match files under
docs/. - Check links to the documentation site, JavaDoc, repository, and contributing guide.
- Review
.github/workflows/publish-reports.ymlif publication behavior changed.
The reports dashboard should link to:
Documentation
- Docusaurus site
- Java API reference
- GitHub repository
- Contributing guide
Troubleshooting
npm ci reports a missing lockfile
Generate and commit the lockfile:
cd docs/web
npm install
git add package-lock.json
git commit -m "Add package-lock.json for Docusaurus"
git push
Markdown links are broken
Check that paths in docs/web/sidebars.js match the corresponding Markdown files under docs/, then run npm run build.
JavaDoc emits warnings
Run mvn javadoc:aggregate, review the reported source locations, and update the relevant JavaDoc comments. Because warnings may not fail the build, inspect the command output explicitly.