Global Health Policy Simulation model
| Home | Quick Start | User Guide | Schemas | Models | Architecture | Data Model | Developer Guide | Technical docs | API |
Last updated: July 2026
The public site (imperialchepi.github.io/healthgps) is built by the Deploy Jekyll and Doxygen workflow (.github/workflows/docs.yml). It does not run on every push to main. It runs on:
Markdown/Jekyll and the Doxygen API are built in the same job. If CMake configure fails, the whole deploy fails — including the markdown site — even when Jekyll itself succeeded.
| Topic | Document |
|---|---|
| Local API build | Developer Guide |
| Docs layout / API note | documentation/README.md |
| Workflow file | .github/workflows/docs.yml |
| CI reference (vcpkg cache) | .github/workflows/ci.yml |
On GitHub → Actions → Deploy Jekyll and Doxygen:
| Step | Typical result when this issue hits |
|---|---|
| Build with Jekyll | Success |
| Install VCPKG | Success |
| Configure HealthGPS | Failure (exit code 1) |
| Build with doxygen | Skipped |
| Upload artifact / deploy | Skipped |
The annotation often only says Process completed with exit code 1 on the Configure step. Open that step’s log for the real CMake/vcpkg error.
The live Pages site keeps the previous successful deploy until a new run succeeds.
The docs job configures the C++ project with:
cmake --preset=linux-release -DBUILD_DOC=ON
so Doxygen can build /api. That needs a working vcpkg install on the runner.
A common failure mode is the docs workflow using a different vcpkg binary-cache setup than CI:
| Setting | Should match CI |
|---|---|
VCPKG_BINARY_SOURCES |
clear;x-gha,readwrite |
| Cache env export | ACTIONS_CACHE_URL and ACTIONS_RUNTIME_TOKEN via actions/github-script |
Older docs workflows used clear;nuget,GitHub,readwrite without the GHA cache export. That can make Configure fail even though the markdown content is fine.
Other real causes of the same step failing:
CMakePresets.json and the manifestbuild-essential, ninja-build, doxygen, graphviz)linux-*-release preset and -DBUILD_DOC=ON (if applicable).In .github/workflows/docs.yml, keep vcpkg caching in sync with .github/workflows/ci.yml:
VCPKG_BINARY_SOURCES: clear;x-gha,readwriteACTIONS_CACHE_URL and ACTIONS_RUNTIME_TOKEN before Install VCPKG / ConfigureCommit, push to main, then re-run Deploy Jekyll and Doxygen (Actions → workflow → Run workflow).
Reproduce locally on Linux (or WSL):
cmake --preset=linux-release -DBUILD_DOC=ON
ninja -C out/build/linux-release/ doxygen-docs
Smoke-check:
Remember nested paths under user/, developer/, and technical/ may differ from older flat URLs.
docs.yml vcpkg cache matches ci.yml (x-gha + cache env export)/ and /api/ on PagesAuthor: Mahima Ghosh