# Anchors (&name) and aliases (*name). An alias is a REFERENCE to the same node, not a copy:
# after loading, `jobs.build` and `jobs.test` may be the identical object, so mutating one
# mutates the other unless the loader deep-copies. Round-tripping usually loses the anchors
# entirely and writes the value out three times.
defaults: &defaults
  image: registry.example.invalid/ci/runner:1.4
  retries: 2
  timeout: 30

artifacts: &artifacts
  - build/
  - dist/

release_tag: &tag v1.4.0

jobs:
  build: *defaults
  test: *defaults
  package: *defaults

collect:
  build: *artifacts
  test: *artifacts

annotations:
  version: *tag
  built_from: *tag

nested:
  outer: &outer
    inner: &inner
      leaf: value
    sibling: *inner
  copy: *outer
