전체 top-level 모양
조각들은 다 봤어. Workflow 파일의 전체 top-level 모양, GitHub 가 기대하는 순서대로:
name— 표시 이름.run-name— run 별 이름 (template 기반, 옵션).on— event.permissions—GITHUB_TOKEN이 할 수 있는 것.env— workflow level env var.defaults— 기본 shell, working dir.concurrency— cancel-in-progress group.jobs— 실제 작업.
자주 놓치는 필드
permissions— 기본적으로GITHUB_TOKEN이 너무 관대. Workflow level 에permissions: read-all박고 job 별로 override 해서 least-privilege 강제.concurrency— 없으면 모든 push 가 새 run 시작. 있으면 같은 branch / PR 의 in-progress run 취소 가능.defaults.run.shell— script 에 bash-ism 필요하면 Linux/macOS 에서bash명시 (Mac 기본sh가 놀래킬 수 있어).