#GitHub Actions
13 편의 글
GitHub Actions 강좌 #10 운영 패턴: 경로 필터, concurrency, 디버깅, 비용 점검
모노레포에서 바뀐 부분의 워크플로만 깨우는 paths 필터와 그 한계, 중복 실행을 정리하는 concurrency 그룹과 cancel-in-progress의 판단 기준, timeout-minutes를 기본 습관으로 삼아야 하는 이유를 정리합니다. 디버그 로그와 재실행 같은 디버깅 도구, 사용량 화면으로 하는 비용 점검까지 일상 운영의 패턴을 모아 시리즈를 마무리하겠습니다.
GitHub Actions 강좌 #9 보안 강화: permissions 최소화, SHA 고정, pull_request_target
GITHUB_TOKEN의 기본 권한을 읽기로 줄이고 잡별로 필요한 권한만 여는 최소화 방법부터 시작해, 태그가 가변이라 생기는 서드파티 액션의 공급망 위험과 SHA 고정, Dependabot 자동 업데이트 조합을 다룹니다. 시크릿이 노출되는 대표 경로인 pull_request_target의 함정과 제목·브랜치명 보간이 만드는 스크립트 인젝션 방어까지 정리하겠습니다.
GitHub Actions 강좌 #8 셀프호스티드 러너: 도입 기준, 등록, 보안 원칙
호스티드 러너로 부족해지는 세 가지 상황인 내부망 접근, 비용, 특수 하드웨어를 도입 기준으로 정리하고, 러너 등록 절차와 라벨로 잡을 라우팅하는 방법을 다룹니다. 퍼블릭 저장소에 셀프호스티드 러너를 쓰면 안 되는 이유와 임시 러너 운영 원칙, 쿠버네티스에서 러너를 자동 확장하는 actions-runner-controller까지 짚겠습니다.
GitHub Actions 강좌 #7 AWS 배포와 OIDC: 액세스 키 없는 자격 증명
액세스 키를 secrets에 저장하는 방식의 유출과 로테이션 문제를 짚고, 워크플로가 단기 토큰으로 AWS 역할을 맡는 OIDC 연동의 동작 원리를 토큰 교환 흐름으로 설명합니다. AWS 쪽 신뢰 구성과 sub 클레임 제한, configure-aws-credentials 액션과 id-token 권한 설정, S3 정적 사이트 배포 예제까지 완성해 배포 파이프라인의 자격 증명 문제를 끝내겠습니다.
GitHub Actions 강좌 #6 Docker 빌드와 GHCR 푸시: 태그 전략과 빌드 캐시
컨테이너 이미지를 빌드해 GitHub Container Registry에 올리는 표준 파이프라인을 조립합니다. GITHUB_TOKEN만으로 끝나는 GHCR 로그인, metadata-action이 이벤트에 따라 태그를 자동 결정하는 원리, build-push-action과 gha 캐시로 빌드 시간을 줄이는 설정까지 다루고, 브랜치·태그·SHA별 태그 전략의 실무 기본형을 정리하겠습니다.
GitHub Actions 강좌 #5 재사용: composite action과 reusable workflow
여러 워크플로와 저장소에 반복되는 스텝 뭉치를 부품으로 만드는 두 방법을 다룹니다. 스텝 묶음을 포장하는 composite action의 action.yml 작성법, 잡 단위 전체를 호출하는 reusable workflow의 workflow_call과 inputs, secrets 전달, 두 방식의 선택 기준과 조직 차원에서 공용 저장소로 표준화하는 패턴까지 정리하겠습니다.
GitHub Actions 강좌 #4 매트릭스·캐시·아티팩트: 조합 실행과 시간·비용 절약
한 잡 정의를 여러 버전과 OS 조합으로 늘리는 매트릭스 전략을 include, exclude, fail-fast 옵션과 함께 다루고, 의존성 설치 시간을 줄이는 actions/cache의 key와 restore-keys 설계, setup 계열 액션의 내장 캐시 옵션을 정리합니다. 잡 사이에 파일을 넘기는 아티팩트의 업로드와 다운로드, 보존 기간 설정까지 실행 시간과 러너 비용을 줄이는 관점으로 묶겠습니다.
GitHub Actions 강좌 #3 시크릿·변수·환경: secrets vs vars, environment 승인 관문
워크플로에 비밀 값과 설정값을 넣는 두 통로인 secrets와 vars의 구분 기준과 조직, 저장소, environment 세 계층의 우선순위를 정리합니다. 로그 마스킹이 보호해 주는 것과 과신하면 안 되는 이유, environment의 보호 규칙으로 배포 앞에 승인자와 대기 시간을 거는 방법, 자동 발급되는 GITHUB_TOKEN의 정체까지 다루겠습니다.
GitHub Actions 강좌 #2 문법 핵심: 컨텍스트와 표현식, if 조건, 값 전달
워크플로 YAML의 문법을 체계적으로 잡습니다. github, env, steps 같은 컨텍스트와 표현식 문법, if 조건과 success·failure·always 함수로 스텝을 골라 실행하는 방법을 다루고, GITHUB_OUTPUT으로 스텝 사이에 값을 전달하는 법과 needs·outputs로 잡 사이의 순서와 데이터를 연결하는 법까지 정리하겠습니다.
GitHub Actions 강좌 #1 워크플로의 구조: 이벤트, 잡, 러너, 그리고 첫 실행
푸시할 때마다 손으로 반복하던 테스트와 빌드를 자동화하는 GitHub Actions의 뼈대를 잡습니다. 워크플로, 이벤트, 잡, 스텝, 러너라는 다섯 개념의 관계를 정리하고, 파이썬 테스트를 돌리는 첫 워크플로를 작성해 Actions 탭에서 결과를 읽는 법과 상태 배지까지 다루겠습니다. 트리거 이벤트의 종류와 러너의 무료 한도도 함께 짚습니다.
K8s 실전 #4 CI/CD 파이프라인 — GitHub Actions / ECR / ArgoCD
[#3](/ko/posts/k8s-practice-3)까지 만든 myshop-api는 새 버전이 들어오는 과정이 사람의 손에 묶여 있습니다. 이번 글에서는 그 과정을 자동화하겠습니다. GitHub Actions에서 OIDC로 정적 키 없이 AWS ECR에 컨테이너 이미지를 푸시하고, 매니페스트 repo의 Helm values를 자동 commit해 [고급 #6](/ko/posts/k8s-advanced-6)에서 다룬 ArgoCD가 그 변경을 감지해 클러스터로 동기화하는 흐름을 정리하겠습니다. PR 승인 게이트, dev/prod 분기, 카나리 배포까지 함께 짚겠습니다.
AWS 실전 #3 CI/CD: GitHub Actions + ECR + ECS
OIDC로 액세스 키 없는 GitHub Actions, ECR push, 작업 정의 자동 갱신, ECS 서비스 롤링 배포, 배포 차단기와 자동 롤백, CodeDeploy blue/green 살짝까지. 한 번의 git push로 끝나는 배포 흐름을 정리합니다.