Pipelines
How to define a pipeline fileDownload template
Add .hearthforge-ci.toml to your repository root. Each [[steps]] entry is a step, executed in file order, and needs a name. Other tables: [on] (triggers), [variables] (user-overridable inputs) and [[copy]] (files taken from another image, like COPY --from).
Predefined variables
CI- always true
CI_PIPELINE_ID- numeric run ID
CI_COMMIT_SHA- full commit hash
CI_COMMIT_SHORT_SHA- first 8 chars
CI_COMMIT_BRANCH- branch name (empty for tags)
CI_COMMIT_TAG- tag name (empty for branches)
CI_COMMIT_REF_NAME- branch or tag name
CI_TRIGGER_SOURCE- push · tag · manual
CI_REPO_NAME- repository name
CI_SERVER_URL- HearthForge base URL
Status badge
Embed in your README:
Step options
run_sh- shell command to run
run_if- skip the step unless this exits 0
always- run even after an earlier step failed
warn_on_fail- step warns instead of failing; the run reports warning
clear- re-extract a clean checkout before the step
build_image- build a Containerfile in a VM and push it to this repository's registry
timeout- per-step timeout in seconds
Artifact types
publish_file- copy file as-is
publish_tar- .tar archive
publish_gzip- .tar.gz archive
publish_zstd- .tar.zst archive
publish_zip- .zip archive