Aggregates the results of the automated LAMMPS test runs into a static website and a rolling GitHub status issue.
- GitHub Actions workflows in lammps/lammps
upload JUnit XML test results as artifacts for post-merge runs on the
developbranch (regression tests: mergedrun.json+ JUnit XML; unit tests: onejunit-<config>artifact per platform/configuration). - The nightly update workflow in this
repository ingests new artifacts (
tools/ingest_actions.py), archives onerun.jsonper run underdata/<suite>/<runid>/, rebuilds the website (generator/build_site.py), deploys it to GitHub Pages, and updates the rolling status issue (tools/update_issue.py). - Summaries of the server-side reports (code coverage, static analysis) can
be ingested as
data/external/*.json; the publicly visible Coverity Scan analysis metrics are scraped nightly from the project overview page (tools/scrape_coverity.py).
The status issue body is rewritten in place on every update, which does not notify anybody. A comment is posted only when new failures appear or known failures are fixed; comments notify issue subscribers. Subscribe to the pinned status issue to get emails about regressions - and nothing else.
Everything only needs the Python standard library (plus the gh CLI for the
scripts that talk to GitHub):
python3 generator/build_site.py # data/ -> _site/
python3 tools/ingest_actions.py --dry-run # what would be ingested
python3 tools/update_issue.py --repo <owner/repo> --site-url <url> --dry-run
run.json files can also be produced manually from local test runs with
tools/regression-tests/merge_results.py (regression tests) in lammps/lammps
or tools/junit_to_json.py (any JUnit XML file, e.g. from
ctest --output-junit).
data/<suite>/<runid>/run.json
<suite> is full-regression, quick-regression, or unit-tests/<config>;
<runid> is <ISO timestamp>_<short sha> and sorts chronologically. The
run.json format is documented in tools/rundata.py.