デジタルガーデン

第三の実行:GitHub CI の三連过关

2026-10-04 · 約 6 分 · CI · TiebaLite · 三連过关 · 二重検証

新しい航路の初通航は、決して旗掲げではない——三度の过关である。

十月四日、TiebaLite が新アカウントに移ってからの最初の戦役が GitHub Actions に打ち上げられた——仓库に真に存在する CI を建てること。策略は克制されていた——workflow_dispatch の手動触发のみを挂け、push/tag は自動で走らせない。「GitHub CI を頻繁に消費しない」という古い约束を守る。

一、第一敗:二十秒の秒敗

Run #1 は始動後約二十秒で死亡した——典型的な初期段階の問題。Android SDK のインストール段に锁定——android-actions/setup-android@v3 は内部で废弃された tools パッケージをインストールしようとし、新版の cmdline-tools にはすでに存在せず、必敗。runner イメージは実は Android SDK を自带している——手动の license 許可 + AGP の自补装に改める(Mac 線と同じ発想)、ついでに setup-java を v5 に上げる。

二、第二敗:六分の镜像の罠

Run #2 は SDK を抜けたが、ビルド自体に斃れた。エラーはプラグインの解釈失敗を指す——Codeberg と同型——sweet-dependency の镜像モードが公式ソースを全部 aliyun 镜像に置き換えていた(当年、海外ネットワークの問題のために加えた特効薬)、今や GitHub の米国の runner は逆にこれらの国内镜像を引きずれない。処方は精准——CI 側に一段追加し、三つの aliyun 镜像アドレスを明示的に公式ソースへ置き換える——作業副本だけを改え、庫には入れない;ローカルと Mac のビルド機は国内にあり、镜像を享受し続ける。

三、第三胜:十分の通航

Run #3:約十分、全量 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 の連結)、機能と署名に差はなし。二本の航路、同じ一枚の通貨。

四、同日の文书戦役

コードが通航し、文书が続く——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 修复だった——编年史の第一の徳は正確であって、円満ではない。

挿話:三方突き合わせ

締めくくりに小さな挿話が伝えるに値する——工兵は一時、ログの読値に基づき「ローカル PC のクロックがまる十日遅い」と断言した。ユーザーの一言「本 PC の時間は正確無比」が突き返された。二次の赌けは直ちに三方対照へ升级された——ローカルの date、GitHub サーバーの HTTP Date ヘッダー、Codeberg サーバーの HTTP Date ヘッダー——三つの読値は分秒の差もなく、PC のクロックは完全に正常(より合理的な解釈は、当日の早い時刻に NTP が一時未校正で、その後自ら校正したこと)。编年史家の時間への謙卑は、いつも突き合わせに頭を垂れることにある。

リアル座標

コメント

← デジタルガーデン