I'm learning CI/CD and recently tried creating a simple pipeline with GitHub Actions. Writing the YAML was much harder than I expected—especially the indentation, nesting, and formatting. For people who work with DevOps professionally, is this what writing pipelines normally feels like, or do you rely on editors, templates, reusable configurations, or other tools to make it easier? I'm trying to understand what the typical real-world workflow looks like.
4 Answers
Yes, professionals still work with YAML, and sometimes it is frustrating. But the normal workflow is usually a combination of an editor, linting, validation, reusable templates, and gradually building on examples that already work. AI can help draft configuration, but it should still be checked with the relevant linter or pipeline validator—generated YAML can be syntactically valid and still do the wrong thing.
There is definitely an adjustment period, but you usually don’t write every pipeline from scratch. Teams tend to standardize their configurations, reuse templates or included files, and copy a known-good structure before changing a few values. After seeing the same patterns repeatedly, YAML becomes much less intimidating.
Most people use an editor with YAML syntax highlighting, automatic indentation, validation, and sometimes schema-based autocomplete. VS Code, IntelliJ, and configured Vim or Neovim setups can all make a big difference. A linter such as yamllint is also useful because it catches indentation and formatting problems before you push anything.
Exactly. Once the editor handles indentation and warns about invalid structure, you stop thinking about the whitespace so much.
For complicated files, use the tools around YAML rather than trying to reason about everything manually. Schema support can provide documentation and autocomplete for pipeline keys, while linters and CI validation catch structural mistakes. YAML anchors, reusable jobs, and templates can reduce duplication, although you still need to understand the underlying structure when debugging.
Schema support is especially helpful for Kubernetes and CI configurations because it explains valid keys while you’re editing instead of making you constantly search through documentation.

That has been my experience too. The first pipeline takes the longest, but later ones are mostly adapting an existing template.