I thought that the hard part of learning CI/CD was understanding pipelines, build stages and deployment strategies. It was much simpler than that, it was a .yaml file. Specifically, it was when one of the spaces in a GitHub Actions workflow is missing that it breaks silently and there is no error message that tells you what the real problem is. After I "got" YAML, all of the rest of CI/CD started making sense and I wanted to write the introduction I wished I'd had.

What YAML actually is

YAML stands for "YAML Ain't Markup Language," and that name is a clue to what makes it different from something like XML or JSON. There are no angle brackets, no closing tags, and almost no punctuation. Structure comes entirely from indentation and line breaks, which is what makes YAML so readable and also what makes it so easy to break if you're not paying attention.

GitHub Actions uses YAML for every workflow file, stored under .github/workflows/ in a repository. Once you understand how YAML represents data, reading and writing these workflows stops feeling like guesswork.

Key-value pairs: the foundation