top of page

Git 태그에서 라이브 서버까지: 우리의 릴리스 파이프라인

작성자 사진: Marcel Dütscher
Marcel Dütscher
7월 7일
1분 분량

요즘 Blocks Beyond The Stars의 릴리스는 명령어 하나로 이뤄져요. git 태그를 푸시하는 거예요. 그 뒤의 모든 일은 기계가 해요. 이 글에서는 우리의 CI/CD 파이프라인과, 취미 프로젝트에서도 그 수고가 왜 값진지 보여 드릴게요.


릴리스 워크플로. v0.7.4 같은 태그를 푸시하자마자 GitHub Actions가 완전한 패키지를 빌드해요. Windows 설치 파일(셋업, 포터블, MSI), 리눅스 빌드, 브라우저용 WebGL 빌드, 서버용 Docker 이미지까지, 태그 하나로 결과물 여섯 개가 나와요. 버전 번호는 태그 자체에서 가져와요. 기준이 되는 출처는 하나뿐이에요.


배포 워크플로. 두 번째 워크플로가 새 버전을 서버에 올려요. 우리에게 중요했던 건 프로덕션 게이트예요. 명시적으로 승인해야만 배포가 시작돼요. “아차, 그게 프로덕션이었네” 같은 사고는 없어요. 서버는 게임 버전을 설정 파일에 고정해 두고, 새로 깨어나는 월드는 자동으로 새 버전으로 시작해요. 이미 실행 중인 월드는 끊김 없이 그대로 두고요.


우리가 겪고서야 배운 교훈: 게임 클라이언트의 수정 사항은 진짜 릴리스가 있어야 플레이어에게 닿아요. 우리 클라이언트는 Velopack으로 스스로 업데이트하는데, 게임을 설치한 사람은 우리가 새 버전을 공개해야만 업데이트를 받아요. 메인 브랜치에 머지된 버그 수정은 태그가 뒤따르지 않는 한 아무에게도 도움이 안 돼요. 당연하게 들리지만 “고친” 버그가 왜 아직 있는지 의아했던 적이 한두 번이 아니에요.


그럼 브라우저는요? WebGL 빌드는 ZIP으로 서버에 올려서 디렉터리를 맞바꾸는 방식으로 활성화해요. 이전 디렉터리는 대비책으로 남겨 두고요. 작은 version.txt 파일이 지금 라이브인 버전을 알려 줘요.


이 모든 장치를 만드는 데 주말 몇 번이 들었어요. 그리고 릴리스할 때마다 그 값을 톡톡히 해요.

최근 게시물

전체 보기
새 버전이 0.9.2가 아니라 2026.7.19인 이유 🗓️

오늘 업데이트하면 버전 0.9.1에서 2026.7.19로 껑충 뛰어요. 오타처럼 보이지만 의도한 결정이에요. 버전 방식을 “시맨틱” 버전에서 날짜 기반 버전(연.월.순번)으로 바꿨어요. 이유를 설명할게요. 옛 방식은 아무도 묻지 않는 질문에 답했어요. 시맨틱 버전(0.9.1, 1.2.3 …)은 소프트웨어 라이브러리 세계에서 왔어요. 거기서는 훌륭해요. 첫

 
 
대청소 완료: GitHub 캐시를 드디어 제대로 쓰게 됐어요 🧹

지난 기술 글에서 우리 빌드와 검사 파이프라인에 정말로 드는 비용을 재 봤고, 돈이 아니라 기다리는 시간과 저장 공간이 문제라는 걸 알게 됐어요. 그 글은 “정리 작업은 계획했지만 아직 하지 못했다”로 끝났죠. 생각보다 빨리 끝났어요. 오늘 낮부터 메인 브랜치에 들어가 있어요. 숫자를 보여 드릴게요. 결과부터요. 저장소의 캐시 사용량이 항목 63개에 5.3

 
 
한 달에 빌드 천 번 — 그런데 한 번도 돈이 들지 않아요 ⚙️

먼저 정정할 게 있어요. 이 글의 첫 버전은 GitHub 빌드 시간이 다 떨어져서 Pro 계정으로 올릴 수밖에 없었다고 썼어요. 그건 틀렸어요. 문서를 한 번만 봤어도 풀렸을 일이에요. 공개 저장소에서는 GitHub 빌드 시간이 무료예요. 아티팩트와 캐시도요. 저희 저장소는 5월 말부터 공개였으니, 단 1분도 돈을 낸 적이 없고 앞으로도 낼 일이 없어요.

 
 

댓글


더 이상 게시물에 대한 댓글 기능이 지원되지 않습니다. 자세한 사항은 사이트 소유자에게 문의하세요.
bottom of page