hearthforge-ci-template.toml
| 1 | # HearthForge CI Pipeline Template |
| 2 | # Place this file at .hearthforge-ci.toml in your repository root. |
| 3 | |
| 4 | image = "docker.io/debian:stable" |
| 5 | work_dir = "/ci/build" |
| 6 | clone_project_to = "/ci/build/project" |
| 7 | # shell = ["/bin/sh", "-c"] |
| 8 | shell_setup = "set -euo pipefail" |
| 9 | # timeout = 3600 # overall run timeout in seconds |
| 10 | # cpu_limit = 2.0 # CPU cores limit |
| 11 | # memory_limit = "2g" # memory limit (k/m/g suffix) |
| 12 | # cache = ["/root/.cargo", "/root/.npm"] # persist between runs |
| 13 | |
| 14 | [on] |
| 15 | push = ["main"] # trigger on push to these branches; use ["*"] for all |
| 16 | tag = false # trigger on tag push |
| 17 | manual = true # allow manual trigger from the UI |
| 18 | |
| 19 | [variables] |
| 20 | # [variables.MY_VAR] |
| 21 | # default = "hello" |
| 22 | # description = "A custom variable, overridable from the UI" |
| 23 | |
| 24 | # Steps are executed in file order. Each [section] is one step. |
| 25 | # Reserved section names: [on], [variables] |
| 26 | |
| 27 | [setup] |
| 28 | run_sh = "apt-get update -qq && apt-get install -y --no-install-recommends build-essential" |
| 29 | timeout = 180 |
| 30 | |
| 31 | [build] |
| 32 | run_sh = "make -C project all" |
| 33 | |
| 34 | [test] |
| 35 | # run_if is a shell expression; the step is skipped if it returns non-zero |
| 36 | # run_if = 'test -n "${CI_COMMIT_TAG}"' |
| 37 | run_sh = "make -C project test" |
| 38 | |
| 39 | [package] |
| 40 | run_sh = "make -C project dist" |
| 41 | # Publish artifacts — these can appear in any step |
| 42 | # publish_file: copy a single file directly |
| 43 | # publish_file = ["/ci/build/project/dist/my-binary"] |
| 44 | # publish_gzip: create a .tar.gz archive (requires tar in image) |
| 45 | # publish_gzip = ["/ci/build/project/dist/"] |
| 46 | # publish_tar: create a plain .tar archive |
| 47 | # publish_tar = ["/ci/build/project/dist/"] |
| 48 | # publish_zip: create a .zip archive (requires zip in image) |
| 49 | # publish_zip = ["/ci/build/project/dist/"] |
| 50 | # publish_zstd: create a .tar.zst archive (requires tar + zstd in image) |
| 51 | # publish_zstd = ["/ci/build/project/dist/"] |
| 52 |