E2E 테스트를 CI에 안정적으로 붙이기: Playwright 병렬 실행
E2E 테스트는 로컬에서는 잘 도는데 CI에 붙이는 순간 무너지는 경우가 유독 많다. 어제까지 초록불이던 파이프라인이 오늘은 같은 코드로 빨간불이 뜨고, 재실행하면 통과한다. 이 “가끔 실패(flaky)”가 쌓이면…
E2E 테스트는 로컬에서는 잘 도는데 CI에 붙이는 순간 무너지는 경우가 유독 많다. 어제까지 초록불이던 파이프라인이 오늘은 같은 코드로 빨간불이 뜨고, 재실행하면 통과한다. 이 “가끔 실패(flaky)”가 쌓이면…
CI 파이프라인이 클라우드에 배포하려면 인증이 필요하다. 가장 흔한 방식은 콘솔에서 장기 액세스 키를 발급받아 CI 시크릿 저장소에 넣어두는 것이다. 처음엔 간단하지만, 시간이 지나면 “누가 언제 발급했는지…
CI 파이프라인이 느려지는 과정은 대개 조용하다. 처음엔 3분이던 빌드가 어느 날 8분이 되고, 머지 큐가 밀리는 시점이 되어서야 문제가 드러난다. 이때 흔히 저지르는 실수는 감으로 최적화하는…
대부분의 CI 도구는 쿠버네티스 바깥에 살면서 클러스터를 원격으로 조종한다. Jenkins 마스터, GitLab 러너, GitHub Actions 워커가 kubectl apply나 헬름 명령을 던지는 구조다. 익숙하지만, 파이프라인의 상태·권한·확장이 전부…
애플리케이션 하나를 빌드하면 직접 작성한 코드는 전체의 5~10%에 불과하고 나머지는 오픈소스 의존성이다. 그 의존성은 또 다른 의존성을 끌어오고, 이 전이(transitive) 관계는 수백 단계까지 뻗어나간다. 이 사슬…
초록불을 유지하던 CI가 어느 날부터 같은 커밋을 두 번 돌리면 한 번은 통과하고 한 번은 실패하기 시작하면, 팀은 조용히 위험한 습관을 들인다. 바로 “일단 재시도(retry) 버튼을…
오래 굴러온 Jenkins 파이프라인은 대개 하나의 거대한 생명체처럼 자라 있다. 수십 개의 Jenkinsfile, 손으로 설치한 플러그인 더미, 특정 노드에만 존재하는 도구 버전, 아무도 전체를 이해하지 못하는…
라이브러리나 CLI 도구를 만들다 보면 “이게 Python 3.9에서도 돌아가나?”, “Windows에서는 경로 처리가 깨지지 않나?” 같은 질문이 계속 쌓인다. 이걸 손으로 하나씩 확인하는 건 현실적이지 않고, 워크플로…
모노레포가 커질수록 CI는 “매번 전부 빌드하고 전부 테스트하는” 관성 때문에 느려집니다. 패키지가 30개인데 하나만 고쳐도 30개를 전부 도는 파이프라인은 개발자 대기 시간을 잡아먹고 러너 비용을 태웁니다.…
GitLab CI 파이프라인을 처음 구성할 때는 잘 동작하다가, 프로젝트가 커지고 잡(job)이 늘어나면 어느 순간 빌드 시간이 10분을 넘어가기 시작한다. 원인을 들여다보면 대부분 매 잡마다 의존성을 새로…