Usage
Reference the Action from the GraphCheck repository, pinned to a commit SHA (it is not yet listed on the GitHub Marketplace), and set the released GraphCheck version explicitly:graphcheck.yml and a checks/ directory — see the
Quickstart) and a graph reachable from the CI runner.
Setting
version: '' skips the PyPI install and uses whatever graphcheck is already on the
job’s PATH. That mode exists for development inside the GraphCheck repository itself, where the
workflow installs from source first; consumer repositories should always pin a released version.Inputs
Leaving
version empty is a development escape hatch for the GraphCheck repository itself, where
GraphCheck is installed from source earlier in the job. Consumer repositories should always pin an
explicit released version.
Exit codes and job status
The job’s final status is the run’s original exit code, preserved through the upload/summary steps - those steps always run (if: always()), but never mask or overwrite the run’s result.
The pass/fail/warn/error breakdown written to the workflow-run summary is read from
results.json, not
inferred from the exit code - the two are independent, since exit 1 covers both a failed check and
an error-severity errored check.
What it does
- Installs the pinned GraphCheck version from PyPI, unless
versionis empty. - Resolves the artifacts directory from
graphcheck.yml(defaults to.graphcheck). - If
profiles.ymldoes not already exist, generates one from theuri/user/databaseinputs. Onlypassword_env: NEO4J_PASSWORDis written - the real password is never in the generated file, and is read from theNEO4J_PASSWORDenvironment variable at runtime. - Runs
graphcheck runusing the given profile. - Removes the generated
profiles.yml, only if this Action created it. - Uploads
results.jsonand the HTML report as build artifacts, whenever they were produced. If an early failure produced none, the summary says so explicitly rather than uploading nothing silently. - Writes a pass/fail/errored/warn breakdown to the GitHub Step Summary.
Notes
- This Action requires a graph reachable from the CI runner.
- The install step runs on a pinned Python 3.12 via
actions/setup-python, but only when installing from PyPI (versionis non-empty) - a source install earlier in the job is expected to have already set up the interpreter it needs.
.github/actions/graphcheck-action/README.md
for the full Action reference.