CI 가 되는 YAML
GitHub Actions workflow 가 .github/workflows/<name>.yaml 에 살아. 언제 (event), 어디서 (runner), 무엇을 (step) 실행 선언. 세 중첩 단계: workflow → jobs → steps.
골격
on:— 트리거 event.push,pull_request,workflow_dispatch(수동),schedule(cron),workflow_call(재사용).jobs:— 기본으로 병렬 실행되는 이름 붙은 job. 각 job 이runs-on:runner 고름.steps:— job 안 순서 있는 리스트. 각 step 은uses:(게시된 액션) 또는run:(shell 명령).
Secret 과 권한
Secret 은 리포 또는 org 단계; ${{ secrets.NAME }} 로 참조. 기본 GITHUB_TOKEN 이 2023 년부터 contents 권한 read-only; write 필요하면 (tag push, release 생성) job 에 permissions: contents: write 선언.
'액션을 SHA 로 pin' 규칙:
uses: actions/checkout@v4 가 v4 의 움직이는 tag 추적. compromise 된 maintainer 가 v4 아래 악성 코드 출시할 수 있고 CI 가 실행. 공급망 안전을 위해 SHA 로 pin: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11. Dependabot 이 자동 업데이트.