Skip to content

ci: Windowsのテストと配布ビルドを自動化 - #8

Merged
milkeclair merged 5 commits into
mainfrom
ci/windows-build
Nov 12, 2026
Merged

milkeclair merged 5 commits into
mainfrom
ci/windows-build

Conversation

@milkeclair

@milkeclair milkeclair commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

やったこと

  • PRとmainへのpushでWindows CIを実行し、Go・フロントのテスト、型・書式検査、Windows x64ビルドを確認する。
  • Go Modulesと同じ版のWails CLIを導入し、実別ドライブ間の移動テストを実行する。
  • 配布EXEの版指定、不正な版番号の拒否、製品情報とSHA-256の検証を追加し、後続のリリース処理から呼べる形にする。
  • 外部Actionsは版タグで記述し、gh actions-lock v0.4.1で生成したactions.lockで実行コミットと参照元を固定する。CIにgh actions-lock --verifyを追加し、DependabotのAction更新とlockfile更新を連動させる。
  • LLVM-MinGW 20260908をSHA-256検証付きで導入し、既存のLF規約をGit属性でも固定する。

やらないこと

  • GitHub Releaseへの公開は、CIを先に確認してから導入するため後続PRへ分離。

動作確認 (方法、事前準備、確認したこと、動画などの資料)

方法:

  • Goとフロントのテスト、Windows向けvet、型検査付きビルド、書式検査、actionlint 1.7.12を実行。
  • WindowsのテストEXEと成果物検証スクリプトを実Windowsで実行。

事前準備:

  • ソースをWSL内に保ち、Go 1.27.3・Node.js 26.8.2・Wails CLI 2.17.1を使用。
  • 別ドライブのシナリオは専用データをCとDに作成し、終了時に削除。

確認したこと:

  • フロント162ユニット・6シナリオ、Goの内部・シナリオ・リソーステスト、Windows向けvetとビルドが成功。
  • Windows上の全backend/resourcesテストと、実C→D移動シナリオが成功。
  • 製品バージョン1.2.3、SHA-256、版不一致・欠落ファイルの拒否を確認。
  • PowerShell構文、actionlint、YAML/Markdown書式と差分チェックが成功。
  • actions-lock移行後のCIでlockfile検証、Windowsビルド・全テスト・書式・製品情報検証・成果物保存が成功。保存したrename.exeとSHA256SUMSを取得し、チェックサム一致を確認。
  • 移行後のlockfileをCLIで生成・verifyし、既存と同じ固定SHA・公式のowner_id/repo_idであることを確認。
  • 隔離したコピーで未登録の参照を追加し、検証が失敗してlockfileを書き換えないことを確認。

エビデンス:

  • アプリ画面の挙動は変わらず、CI・ビルド設定とテスト結果を確認する変更のため。

その他 (レビュワーへの注意点など)

タグのバージョンをWindowsリソースへ埋め込めるようにする。通常のローカルビルドでは既存の設定値を保持し、不正な版番号やWindowsの上限を超える値を生成前に拒否する。
PRとmainで既存のテスト、実別ドライブ移動、型・書式検査とWindowsビルドを実行する。製品バージョンとSHA-256を検証した成果物を保存し、後続のリリース処理から同じ検証を再利用する。
Windowsランナーの標準LLVMにはllvm-cvtresが含まれていないため、必要なツールを含むLLVM-MinGWを固定バージョン・SHA-256で検証して導入する。
既存の.editorconfigはLFを要求するが、Windowsランナーのautocrlfで書式検査が失敗していた。Git属性でもテキストの改行をLFへ固定し、WindowsとWSLで同じ書式検査を使えるようにする。
@milkeclair
milkeclair marked this pull request as ready for review November 12, 2026 04:07
@milkeclair milkeclair self-assigned this Nov 12, 2026
@milkeclair milkeclair added the enhancement New feature or request label Nov 12, 2026
usesは検証済みの同じ版タグで記述し、生成したactions.lockで実行コミットと参照元を固定する。CIにCLI v0.4.1のverifyを追加して、workflowとlockfileのずれを検出する。
@milkeclair
milkeclair merged commit 2ce0eaa into main Nov 12, 2026
2 checks passed
@milkeclair
milkeclair deleted the ci/windows-build branch November 12, 2026 04:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant