12/09 更新
環境変数の設定周り教えてもらったので修正しました
はじめに
OpenSiv3DプロジェクトをGitHubActionsでWindowsビルドする方法を紹介します。
この記事を書いた時点でOpenSiv3Dのバージョンは 0.6.13
参考リポジトリ
事前準備
サーバー上でビルドするので.gitignore
からApp/engine
は外します。
- **/App/engine
+ #**/App/engine
ワークフローでVisual Studio プロジェクトテンプレートのzipをダウンロードしてきて、そこのengineフォルダをコピーすればIgnoreしなくてもよい
デフォルトではIgnoreされていなかったので、今回もリポジトリにengineが含まれてる想定でワークフローを組みます。
Workflow
以下ファイルをリポジトリの.github/workflows
以下に配置
[repo]
|- .github
|- workflows
|-build.yml
name: build
on: [push]
env:
app-path: ./Test/App
sln-name: ./Test.sln
version: 0.6.13
jobs:
build:
name: MSBuild
runs-on: windows-latest
steps:
- uses: actions/checkout@v1
with:
fetch-depth: 1
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.3.1
# OpenSiv3D セットアップ
- name: Setup s3d
run: |
bitsadmin /transfer s3d-download "https://siv3d.jp/downloads/Siv3D/manual/${{ env.version }}/OpenSiv3D_SDK_${{ env.version }}.zip" "C:\OpenSiv3D_SDK.zip"
Expand-Archive -Path "C:\OpenSiv3D_SDK.zip" -DestinationPath "C:"
shell: powershell
# ビルド
- name: MSBuild
run: |
[Environment]::SetEnvironmentVariable("SIV3D_" + "${{ env.version }}".Replace(".", "_"), "C:\OpenSiv3D_SDK_${{ env.version }}")
msbuild ${{env.sln-name}} -p:Configuration=Release`;Platform="x64"
shell: powershell
# ビルド結果をアップロード
- name: Upload artifact
uses: actions/upload-artifact@v1
with:
name: build-result
path: ${{env.app-path}}
流れを見てみよう
実行トリガー
on: [push]
とりあえずGitHubへのpush時にしてあるが、任意のタイミングに設定しましょう。
環境変数
app-path: ./Test/App
sln-name: ./Test.sln
version: 0.6.13
app-path
:Appフォルダのパス
sln-name
:VSソリューションへのパス
↑使用する際に変更する箇所
version
:Siv3Dのバージョン
↑zipファイルの命名規則が変わらない間はバージョンの数値を変えるだけでよいはず
昔は命名規則が違っていたので注意
- OpenSiv3D_SDK(0.6.4)
- OpenSiv3D_SDK_0.6.13
ベースイメージ
Windowsでビルドしたい
runs-on: windows-latest
チェックアウト
- uses: actions/checkout@v1
with:
fetch-depth: 1
msbuildを使えるようにする
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.3.1
OpenSiv3Dを落としてくる
- name: Setup s3d
run: |
bitsadmin /transfer s3d-download "https://siv3d.jp/downloads/Siv3D/manual/${{ env.version }}/OpenSiv3D_SDK_${{ env.version }}.zip" "C:\OpenSiv3D_SDK.zip"
Expand-Archive -Path "C:\OpenSiv3D_SDK.zip" -DestinationPath "C:"
shell: powershell
SDKは手動インストールできるようにzipファイルが用意されているのでそいつをダウンロードしてきてzipを解凍している。
ビルドする
# ビルド
- name: MSBuild
run: |
[Environment]::SetEnvironmentVariable("SIV3D_" + "${{ env.version }}".Replace(".", "_"), "C:\OpenSiv3D_SDK_${{ env.version }}")
msbuild ${{env.sln-name}} -p:Configuration=Release`;Platform="x64"
shell: powershell
OpenSiv3Dのビルドに必要なSIV3D_X_Y_Z
の環境変数をenv.version
から設定する
ビルド結果を保存する
- name: Upload artifact
uses: actions/upload-artifact@v1
with:
name: build-result
path: ${{env.app-path}}
ビルドが成功すれば、GitHub上からビルド結果をダウンロードできます。
まとめ
- GitHubActionsでOpenSiv3DのプロジェクトをWindowsビルドするためのWorkflowを紹介
- .github/workflows/build.ymlをリポジトリに配置(yaml名は任意)
- build.yamlの環境変数を修正
- app-path
- sln-name
- version