Netsukefile is a YAML mapping. Unknown fields and duplicate mapping keys are
errors. netsuke_version and targets are required; all other top-level
collections are optional.
The following complete example shows every top-level section:
netsuke_version: "1.0.0"
vars:
greeting: Hello
macros:
- signature: "message(name)"
body: |
{{ greeting }}, {{ name }}!
rules:
- name: write_message
command: "echo '{{ message('Netsuke') }}' > {{ outs }}"
description: "Writing greeting"
actions:
- name: greet
command: "echo '{{ message('builder') }}'"
targets:
- name: greeting.txt
rule: write_message
defaults:
- greeting.txt
The top-level fields are:
netsuke_version: required semantic version for the manifest schema.vars: global strings, numbers, booleans, or lists available to Jinja.macros: named Jinja macro definitions registered before other fields render.rules: reusable recipes referenced by targets or actions.actions: implicitly phony operations, such astestorlint.targets: required list of file-producing or logical build nodes. An empty list is valid for an action-only manifest.defaults: target or action names used whenbuildreceives no explicit targets.
defaults entries are literal names in v0.1.0-beta1; Jinja expressions are not
rendered in this field.