From b536622606d2c3eda24c9e5edde201d14c424799 Mon Sep 17 00:00:00 2001 From: Yun Chan Date: Mon, 17 Aug 2026 23:36:29 +0900 Subject: [PATCH] =?UTF-8?q?BACKLOG=2011=EC=B0=A8=20=EA=B8=B0=EB=A1=9D:=20F?= =?UTF-8?q?orgejo=20=EC=9E=90=EC=B2=B4=20=EB=9F=AC=EB=84=88=20=EB=A6=B4?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=20CI=20=EA=B0=80=EB=8F=99=20=E2=80=94=20?= =?UTF-8?q?=EB=A6=AC=ED=97=88=EC=84=A4=202=EC=B0=A8=205/5=20=EC=9E=A1=20?= =?UTF-8?q?=EC=84=B1=EA=B3=B5,=20ci-rehearsal=20draft=20=EC=97=90=20?= =?UTF-8?q?=EC=A0=84=20=ED=94=8C=EB=9E=AB=ED=8F=BC=207=EA=B0=9C=20?= =?UTF-8?q?=EC=9E=90=EC=82=B0(=EC=84=A4=EC=B9=98=EC=9E=90=202=C2=B7tar.gz?= =?UTF-8?q?=204=C2=B7APK=201)=20=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=8B=A4?= =?UTF-8?q?=EC=A6=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/BACKLOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/BACKLOG.md b/docs/BACKLOG.md index 375d130..bda5070 100644 --- a/docs/BACKLOG.md +++ b/docs/BACKLOG.md @@ -245,3 +245,17 @@ ### 검증 (10차) - `dotnet test` — **실패 234 / 통과 180 / 전체 414** (RED 의도 상태: 신규 234전부 실패, 기존 180 전부 통과, 기존 영향 실패 0건). - 빌드 오류 0 / 신규 경고 0. + +## 11차 (2026-08-17) — Forgejo 자체 러너 릴리스 CI 가동 (전 플랫폼 빌드→배포 폐쇄루프) +> 사용자: "러너들이 생겼다 이제 우리도 빌드를 모두 다 배포할 수 있다" — 저장소를 자체 Forgejo +> (`git.chanpaca.net/Video-Downloader/client`)로 이관한 데 이어, org 러너 3대로 릴리스 CI 구축. §5-bis 참조. + +- [x] **`.forgejo/workflows/release.yml`** — 태그 `v*` → test 관문(전체 xUnit) → windows(설치자 x64/arm64)·android(APK)·linux(tar.gz×2 RID)·macos(tar.gz×2 RID) 병렬 → 각 잡이 draft 릴리스에 자산 직접 업로드. 러너 3대(yunchan-win/kd-desktop/yunchan-mac) 모두 host 모드라 `uses:` 액션 전무 — 체크아웃도 `git fetch`+`FETCH_HEAD` 직접. workflow_dispatch = `ci-rehearsal` draft prerelease 리허설. +- [x] **`build/ci/upload-release-asset.{ps1,sh}`** — draft 릴리스 확보(병렬 잡 동시 생성 경합 시 재조회) + 동명 자산 교체 멱등. 실 API 검증 중 Windows Git Bash 에서 python 출력 CRLF 로 자산 id 가 `5\r` 로 오염돼 DELETE 가 조용히 실패하는 결함 발견·수정(`tr -d '\r'`). +- [x] **android MSB3030 수정** — CLI 전역 `-p:RuntimeIdentifiers=android-arm64` 가 참조 프로젝트(net8.0 Mobile.Core)까지 전파돼 RID 경로 dll 부재로 실패. 9차 GitHub 스캐폴드에 잠재하던 결함이 첫 실전 실행에서 실증 → Mobile csproj 의 `CiPackArm64Only` 게이트 조건부 `RuntimeIdentifiers` 로 이전. +- [x] **인프라** — `RELEASE_TOKEN` 시크릿(PAT `write:repository`) API 등록, ALPACA-HOME 유령 Inno Setup(레지스트리만 잔존) 재설치, `.sh` 실행 비트. Forgejo 는 `.forgejo/workflows` 만 인식 — `.github/workflows`(GitHub 공개 시 백업 채널)와 이중 실행 없음 확인. + +### 검증 (11차) +- 리허설 1차(b05e8bf): test **453/453 통과**(실창 E2E 포함 — 러너가 사용자 세션이라 창 생성 가능) · windows/linux/macos 성공 · android 실패(MSB3030). +- 리허설 2차(d98c734, 수정 후): **5/5 잡 전부 성공** — `ci-rehearsal` draft prerelease 자산 7개: Setup x64 57.2MB·arm64 51.5MB / linux tar.gz x64 71.1MB·arm64 68.1MB / osx tar.gz arm64 69.6MB·x64 72.7MB / APK(arm64-v8a 단독) 23.3MB. +- 정식 배포: `git tag v1.0.0 && git push origin v1.0.0` → 동일 파이프라인이 `v1.0.0` draft 릴리스 생성 → QA 후 수동 Publish (§7.5 런북 그대로).