Skip to content

Latest commit

 

History

History
75 lines (51 loc) · 3.35 KB

File metadata and controls

75 lines (51 loc) · 3.35 KB

開発ガイド

開発環境の構築手順

必要環境

  • mise(タスクランナー・ツールバージョン管理)
  • Visual Studio Build Tools(C++ ビルドツール)

初回セットアップ

mise install && mise run setup

cargonodepnpmなどのコマンドはシステムにインストールされたものではなく、mise経由で実行する。 mise runタスク経由、またはmiseが管理するPATH上のバイナリを使用する。

開発コマンド

日常的に使用するのは次の2つ。

コマンド 内容
mise run format フォーマット + 軽量lint(開発時の手動実行用。自動修正あり)
mise run test 全チェック実行(これを通過すればコミット可能)

git commit時にはpre-commitフックがmise run testを自動実行する。

その他のタスクを以下に示す。

コマンド 説明
mise run setup 開発環境のセットアップ
mise run build リリースビルド
mise run clean ビルド成果物の削除
mise run update 依存パッケージの更新
mise run docs ドキュメントのローカルプレビュー

mise run testはcargo-clippy・cargo-test・cargo-deny・markdownlint・textlint等を一括実行する。 Linux環境ではlint系(textlint / markdownlint / prettier)のみ確認可能。 cargo-clippy / cargo-test / cargo-denyはWindowsターゲットのためLinuxでは失敗する。

サプライチェーン攻撃対策

cargo-denydeny.toml設定)でライセンスチェックと脆弱性アドバイザリチェックを実施する。 mise run testに組み込まれているため、コミット前に自動実行される。

GitHub Actionsのワークフローはpinactでハッシュピン留めして実行する (mise run updateでハッシュピン更新が可能)。 taiki-e/install-action@cargo-denyはツール名タグ形式のためpinactでハッシュピン不可(.pinact.yamlで除外済み)。

ドキュメントサイト運用

ドキュメントはVitePressで構築し、GitHub Pagesでホストする (URL: https://ak110.github.io/gv/)。

  • ローカルプレビュー: mise run docs
  • 自動デプロイ: masterブランチへのpush時にDocsワークフローが自動実行される(docs/以下またはpackage.jsonの変更時のみ)

リリース手順

GitHub ActionsのReleaseワークフローを手動実行してリリースする。

rem リリース実行 (いずれか1つ)
gh workflow run release.yaml --field="bump=PATCH"
gh workflow run release.yaml --field="bump=MINOR"
gh workflow run release.yaml --field="bump=MAJOR"

rem ワークフロー完了を待ち、バージョンバンプコミットを取り込む
for /f "usebackq" %i in (`gh run list --workflow=release.yaml -L1 --json=databaseId -q ".[0].databaseId"`) do gh run watch %i && git pull

結果の確認: https://github.com/ak110/gv/actions