How HDCharts Ships
Every change goes through the same path: a pull request is checked, merged changes are
published as a nightly snapshot, and a maintainer promotes a tested snapshot to a release.
All workflows live in HDCharts/charts.
| Stage | Workflow | What it publishes |
|---|---|---|
| Pull request | pull-request.yml, pull-request-api.yml, pull-request-gif-validation.yml | Nothing; it gates the merge. |
| Snapshot | nightly.yml → snapshot-release.yml | Maven snapshot, snapshot API reference and demo, snapshot Android APK, snapshot docs. |
| Release | release.yml | Maven release and tag, versioned API reference and demo, release Android APK, versioned docs, GitHub release. |
What validates main
The pull-request checks. The nightly snapshot publishes main as those checks left it when the
last 24 hours brought code changes, and a maintainer starts release.yml by hand.
That makes the pull-request checks the tests that gate every commit. See Pull Requests for the jobs they run and Validation Matrix for what each one covers.
warm-gradle-cache.yml runs on main when sources, resources, or build files change and twice a
week. It runs lint, the JVM tests and the API diff, and compiles the other Linux and iOS CI targets.
Dependencies use a cache keyed by build files. Gradle task outputs use a separate cache keyed by
runner OS, architecture, and commit, so source changes refresh the outputs that pull requests
restore. Each warm job restores earlier outputs and saves the updated cache after a successful
build. Pull requests restore the latest available outputs for their platform without saving them.
Other workflows on main restore caches read-only. Release jobs start fresh.