디지털 가든

TiebaLite 이전 서사: Codeberg의 십분 학살에서 GitHub의 새 왕조까지

2026-10-16 · 약 12분 · TiebaLite · 코드 이전 · Codeberg · GitHub · 지속적 통합

어느 왕조의 땅이 염분화하기 시작할 때, 문명의 유일한 출로는 이전이다. 이날, 티에바 Lite는 그 전진 서사를 완결했다——메모리 핍박의 Mac 빌드 기기에서, Codeberg 위의 구연패라는 자동화의 꿈을 거쳐, 마침내 GitHub의 새 흙 위에 입국했다.

1. Mac 빌드 기기의 첫 숨

서사의 제일 장은 원격 빌드의 개통이었다. 본机的 mihomo TUN 프록시가 세 번째로 Mac의 Tailscale IP로 가는 트래픽을 납치하고, tailscaled는 크래시 재시작 루프에 빠졌다——GUI(profile의 소유주)를 시작하고 정적 루트를 더하는 두 갈래로, mindemacbook-pro는 다시 온라인이 됐다. TiebaLite의 첫 원격 빌드 작업(JOB 1790230496960816128)은 냉 캐시와 메모리 핍박(swap 피크 이점칠 GB)이라는 이중 시련을 삼십사 분 이십칠 초에 통과했다. 서명의 규율은 지켜졌다——저장소 내에서 추적된 tblite_debug.jks는 새 열쇠를 자동 생성하지 않고 그대로 빌드 기에 프리세트되었다——apksigner로 인증서 지문이 로컬 v4.0.52 정식판과 필적 동일함을 검증했다(CN=TiebaLite, SHA-256 f7e02f10…a759, v1/v2/v3 전 통과), 휴대폰에 설치된 버전은 원활하게 덮어 업데이트할 수 있다. 공구包의 한 결함도 여기서 현형했다——collect_mapping가 생성한 아카이브명은 ./ 접두사로 ._ 시작으로 오염되고, 즉시 자신의 clean_junk에 AppleDouble 쓰레기로 정리됐다——mapping.txt는 한 번도 아카이브에 들어간 적이 없었다.

2. Codeberg의 「시스템 산출」꿈: 구연패

제이 장은 「시스템 산출」에 대한 두 차례 돌격으로, 각각 전보다 장렬했다. 4.0.52의 재푸시는 run #304의 육십사 분 실패로 끝났다; 더 나쁜 것은 tag를 지우자 Forgejo의 숨은 메커니즘이 발동했다——tag에 걸려 있던 release가 함께 사라지고, 수동 복원 시 DB에 남은 숨은 release 레코드(읽기 경로는 404, 목록에 비표시, 그러나 쓰기 경로는 모두를 가로막음)에 부딪혀, API의 tag 삭제는 「tag에 release가 걸려 있다」고 거절하고 release 생성은 모두 「Release has no Tag」를 보고했다. 존재하지 않는 tag명을 프로브로 삼아 비교하는 것으로, Codeberg 측 생성 체인의 이상임을 확인하고, 구 id로 직접 DELETE해 숨은 레코드를 지우자, release는 원래대로 부활했다.

4.0.53의 돌격은 인프라 재난의 기록片으로 발전했다——아홉 개의 tag run이 모두 정십 분 이십오 초에 외부 취소되고(초급 정밀의 반복), runner 라벨을 바꿔도 효과가 없으며, 거기에 runner가 KSP 플러그인을 가져오지 못하는(aliyun 미러 전멸) 문제가 겹쳤다——상대측 인프라의 기계적 학살이지, 빌드의 파동이 아니다. Mac의 폴백 빌드는 이십칠 분에 산출해 검증 완료, 사용자의 한마디 「A」 뒤 API로 발표(release id 12437484), 다운로드해 검인, 바이트급 일치. 판词는 정직하게 쓰여졌다——Codeberg의 공유 runner는 이십 분 이상의 Android 빌드를 받칠 수 없다, 「시스템 산출」은 이 땅에서는 믿을 수 없다——설정 문제가 아니라 인프라의 규모 문제다.

3. 천도: qaqmin09577의 새 왕조

제삼 장은 서사의 전환점——GitHub 새 계정으로의 천도였다. token의 안전 규율은 철률——사용자급 ~/.git-credentials에만 쓰고, Windows 자격 관리자의 옛 계정 잔재를 제거, git remote는 모두 token 없이, 프로젝트 내 어떤 파일에도 token은 나타나지 않고, GitHub API 호출은 합쳐 약 이십 회로, 한도를 크게 밑돌았다. 이전의 영향면은 파일별로 세척됐다——Consts.kt의 네 개의 소원 상수, UpdateDownloader.kt의 채널 API 루트와 기본 채널 반전, 관해서 페이지, 빌드 필드, 테스트 어서션, README 배지. 한 개의 관건적인 행동은 이전 전에 발견됐다——채널 폴백은 주 채널이 실패할 때만 발동한다——그래서 과도기는 양端 동시 발표가 필수였다. 도중 한 번의 오커밋(git add -A가 artifacts와 인계 파일을 쓸어담음)은 즉시 롤백해 .gitignore를 추가; 한번 자신이 자초한 CRLF 자격 증명 파일이 host 매칭을 망가뜨린 것도 정직하게 수정. OmniDL 자매 프로젝트의 정보는 사용자의 명령에 따라 README에서 통째로 절제. Mac이 이십육 분에 4.0.53→4.0.54 패키지를 산출하고, 양端 동일 패키지로 발표——GitHub release 402894274(새 주 채널) + Codeberg release 12695076(예비 채널). 검증은 앱 동일 로직을 사용——익명으로 GitHub releases API를 끌어 pickLatestStable가 정확히 v4.0.54를 선택하고, 다운로드 검인은 Mac 산출물과 바이트급 일치.

4. 새 왕조의 인프라: CI 첫 녹색과 사언어

최종 장은 새 왕조의 기반 만들기였다. GitHub Actions는 약속을 지켜 수동 발동만(workflow_dispatch, CI를 너무 쓰지 않는 약정을 준수), 세 번 돌격했다——첫 번째는 setup-android가 폐기된 tools 패키지를 설치하려 해 초패; 두 번째는 sweet-dependency가 공식 소스를 전부 aliyun 미러로 덮어 해외 runner가 플러그인 마커를 가져오지 못해 패배——세 번째는 약 십 분에 성공, 산출물의 인증서는 Mac 빌드와 필적 동일(+sha 접미사는 CI 환경의 설계 행동). README는 사언어판이 됐다(영어 기본에 중일한 전환 바, About는 중문 유지), 버전 반복 기록은 다섯 개의 결실 버전을 보충하고 한 개의 귀속 오류를 정정. 가장 웅대한 한 획은 역사의 다시쓰기——fork 이래 삼백칠십칠 건의 커밋 메시지를 전부 영문화(한 커뮤니티 PR의 CRLF 행 끝이 정밀 매칭을 방해해, 필터 스크립트를 전수해 겨우 삼켰다), 다섯 개의 tag를 위치 매핑으로 재가리키고, 삼端에 강제 푸시; 자신의 삼백육십구 건의 커밋의 작성자 정체성은 qaqmin09577으로 이전(noreply 메일도 동기), 상류 팔백칠십삼 건은 fork의 혈맥을 보존하기 위해 원형 부동. 끝소리에는 한 차례의 시계 풍파의 정직한 수속——어시스턴트는 일찍이 PC의 시계가 십 일 느리다고 판단하고, 삼방 대조(본机 vs GitHub Date 헤더 vs Codeberg Date 헤더)가 분초 차이 없이 일치한 후 그 자리에서 오류를 인정했다——그것은 NTP 미보정의 순간 상태로, 자신이 회복된 것이었다.

실제 좌표

댓글

← 디지털 가든