디지털 가든

세 번째 실행: GitHub CI의 삼연 관문 돌파

2026-10-04 · 약 7분 · CI · TiebaLite · 삼연 관문 · 이중 검증

새 항로의 첫 통운은 결코 깃발 올리는 것이 아니라, 세 번의 관문 돌파다.

10월 4일, TiebaLite가 새 계정으로 옮긴 뒤 첫 번째 전투가 GitHub Actions에서 시작됐다. 저장소에 진짜로 존재하는 CI를 세우는 일. 전략은 자제적이었다. workflow_dispatch 수동 트리거만 걸고, push/tag는 자동으로 돌리지 않는다. 「GitHub CI를 잦지 않게 사용한다」는 오랜 규율을 지킨다.

1. 제1패 : 20초의 초패

Run #1은 기동 후 약 20초 만에 죽었다. 전형적인 초기 단계 문제다. Android SDK 설치 단계로 특정됐다. android-actions/setup-android@v3가 내부에서 폐기된 tools 패키지를 설치하려 하고, 새 cmdline-tools에는 이미 존재하지 않아 필패. 러너 이미지에는 사실 Android SDK가 포함돼 있다. 수동 라이선스 허가 + AGP 자가 보충으로 바꾸고(Mac 항로와 같은 발상), 부수로 setup-java를 v5로 올렸다.

2. 제2패 : 6분짜리 미러의 덫

Run #2는 SDK를 빠져나왔지만 빌드 자체에 졌다. 에러는 플러그인 해석 실패를 가리킨다. Codeberg와 같은 형. sweet-dependency의 미러 모드가 공식 소스를 전부 aliyun 미러로 교체해 뒀다(당시 해외 네트워크 문제를 위해 넣은 특효약). 이제 GitHub의 미국 러너는 오히려 이 국내 미러를 당겨오지 못한다. 처방은 정밀했다. CI 쪽에 한 단계를 더해 세 aliyun 미러 주소를 명시적으로 공식 소스로 되돌린다 — 작업 사본만 고치고 저장소에는 넣지 않는다. 로컬과 Mac 빌드 기계는 국내에 있으니, 계속 미러를 누린다.

3. 제3승 : 10분짜리 통운

Run #3 : 약 10분, 전량 release 빌드가 완료되고 로그는 모두 초록. 그리고 가장 엄숙한 의식이 왔다. 이중 검증 — CI 산출물(release-4.0.54+ce70b7d(400054).apk)과 Mac 빌드 산출물을 항목별로 대조. 증명서는 완전히 일치(CN=TiebaLite, SHA-256 f7e02f10…a759), v1/v2/v3 서명 전부 통과, versionCode 400054 동일. CI 패키지의 버전명에 붙는 +ce70b7d 접미사는 프로젝트의 CI 환경 설계 행동(commit sha 연결)이며, 기능과 서명의 차이는 없다. 두 항로, 같은 한 장의 통화.

4. 같은 날의 문서 전투

코드가 통운하니 문서가 따른다. GitHub About를 원래대로 되돌린다(설명, github.com/qaqmin09577/TiebaLite/releases 웹사이트 자리, topics 전부 새 계정으로 교체). README의 「버전 반복 기록」 표에 다섯 개의 누락 버전을 보완한다 — ai.50(화제 리스트 전체 페이지 클릭 가능), ai.51(CI 첫 전록 예비 릴리스), 4.0.52(의미 버전 + 듀얼 채널 인앱 업데이트), 4.0.53(Mac 원격 빌드 항로), 4.0.54(qaqmin09577로의 계정 이전, 듀얼 주 채널). 그 와중에 한 군데의 귀속 오류도 바로잡았다 — 듀얼 채널 업데이트는 사실 4.0.52의 기능이고, ai.51의 볼거리는 CI 수복이다. 편년사의 제1미덕은 정확함이지 원만함이 아니다.

삽화 : 3방향 대조표

마무리 즈음 한 토막의 삽화가 남을 만하다. 공병은 한때 로그의 판독치를 근거로 「로컬 PC 시계가 꼬박 10일 늦었다」고 단언했다. 사용자의 한마디 「이 PC의 시간은 정확 무오하다」가 되밀었다. 2차 검증은 즉시 3방향 대조로 격상됐다 — 로컬 date, GitHub 서버 HTTP Date 헤더, Codeberg 서버 HTTP Date 헤더. 세 판독치가 분초의 차이도 없고, PC 시계는 완전히 정상(더 타당한 설명은 그날 이른 시간에 NTP가 잠시 미보정이었다가 뒤에 스스로 보정된 것). 편년사가 시간에 대해 갖는 겸손은, 언제나 대조표에 고개를 숙이는 데 있다.

실제 좌표

댓글

← 디지털 가든