入門 Windows OS-based Self-hosted Runner for GitHub Actions

309 Views

July 26, 25

スライド概要

2025/07/26 .NETラボ 勉強会 2025年7月の飛び入りLT でお話した内容です。Windows OS ベースのSelf-hosted Runner に関してどのようなものか、構築時のポイント、注意点について実際に利用し気づいたことをお話しています。

profile-image

都内で働いているインフラエンジニアです。Azure を含むMicrosoft 製品、インフラ、CI/CD を強みとしています。Microsoft MVP 2025~

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

入門 Windows OS-based Self-hosted Runner for GitHub Actions 2025/07/26 .NETラボ 勉強会 2025年7月 Kazuki Yamabe

2.

アジェンダ • 自己紹介 • 今回の経緯 • Windows OS ベースのSelf-hosted Runner • Windows OS ベースのSelf-hosted Runner ユースケース • Windows OS ベースのSelf-hosted Runner 構築ポイント • Windows OS ベースのSelf-hosted Runner の注意点 • Actions Runner Controller (ARC) 上のWindows Runner • まとめ • 参考資料 2

3.

自己紹介 名前:Kazuki Yamabe 所属:株式会社エーピーコミュニケーションズ 受賞歴:Microsoft MVP 2025 ~ (Azure Compute Infrastructure、Azure Networking) ◼ ブログ・SNS • ブログ:https://www.kdkwakaba.com/ • X:@kdk_wakaba • Linkedin:kdk-wakaba 3

4.

注意事項 • 本内容は2025年7月26日現在の内容となります。今後のアップデートで仕様変更となる可能性もあ るためご了承ください • 本内容では具体的な構築手順、設定手順は説明しません 4

5.

今回の経緯 お仕事でLinuxベースのActions Runner Controller (ARC) を運用してた時にこんな問い合わせが。 Windows OS のSelf-hosted Runner を作ってほしい! 検討します。 (Windows OS のやつ、触ったこと ないけどどんなんだっけ…) 5

6.

Windows OS ベースのSelf-hosted Runner • Windows Server をベースOS としたGitHub Self-hosted Runner • 現時点ではSelf-hosted Runner ではWindows Server 2016、2019、2022 をサポート - Windows Server 2025 でもSelf-hosted Runner は動作するが正式なサポートではない • Windows ベースのため、デフォルトシェルはPowerShell (OS 付随) となる ※ GitHub Enterprise Cloud では、Azure Vnet 内でGitHub ホステッドを実行できる機能もある 参考:企業内の GitHub ホストランナー向けの Azure プライベート ネットワークについて 6

7.

Windows OS ベースのSelf-hosted Runner ユースケース セキュリティ面の厳しい環境で以下のようなアプリのビルド、テスト、デプロイ環境が欲しい場合に利用する。 • .NET Framework のようなレガシーアプリケーションのCI/CD • WPF / WinForms のようにWindows GUI のアプリケーションのビルド、テスト • COM コンポーネント、Windows API を利用するアプリケーションのビルド • Microsoft Office と連携のあるアプリケーションのビルド、テスト • Windows サービスの開発、など 7

8.

Windows OS ベースのSelf-hosted Runner 構築ポイント • パフォーマンスを重視したい場合はWindows Server Core で構築する - 余計なサービスが無いためCPU、メモリ 消費を減らし、ビルド、テストの実行時間削減に繋がる - 他サービスと併用で利用したい、メンバーがCLI 慣れしていない、winget で運用・管理を楽にしたい、場合は Desktop 版のWindows Server でもよい • Windows Server の場合、サービス登録で継続的な実行をする - これをやらないと run.cmd を毎回実行しなければならない - Self-hosted Runner 登録時のみサービス登録があるため忘れずに実施する • UAC 制御やファイル実行ポリシーがある場合、バッチ形式のファイルを事前に許可する - VM 上の場合、ドメイン参加でグループポリシーを適用され実行できない、なんてことも - セキュリティソフトを導入する場合、ブロックされていないかも考慮する 8

9.

Windows OS ベースのSelf-hosted Runner の注意点 • PowerShell 7 をインストールしないと run: pwsh でエラーとなる - 使いたい場合は構築時にPowerShell 7 のインストールが必要 - Core エディションを使う場合、winget が利用できないため、手動導入や環境変数設定が必要 • GitHub 公式によるWindows Runner のDocker イメージは提供されていない - 個人の開発者がGitHub 上でDockerfile を公開しているため、こちらを参考にカスタマイズが必要 • Windows Self-hosted runner はDocker アクションは利用できない - Marketplace や独自のDocker アクションがある場合は別の代替手段を検討する 9

10.

Actions Runner Controller (ARC) 上のWindows Runner • GitHub 公式ではARC でWindows を正式にサポートしていない - ARC のHelm チャートではDebian ベースのRunner イメージがデフォルトで設定されている - Kubernetes (AKS)で構築する場合、Node 側のOS もWindows にする必要がある • 個人で検証している方もいるが、GitHub 公式の方法ではないため利用時は要検討の上で利用する - Windows Runners on Actions Runner Controller 10

11.

まとめ • Windows OS のSelf-hosted Runner はセキュリティの厳しい環境でWindows アプリケーションの ビルド、テストが必要な場合に利用する • パフォーマンスを重視したい場合はWindows Server Core を利用することで、余分なCPU、メモリ消 費量を削減できる • Windows でContainer ベースのSelf-hosted Runner は公式で提供していないため、コンテナ ベースの環境が必要な場合はイメージ構築が必要 11

13.

ご清聴ありがとうございました。 13