LoginSignup
7
0

GitHubActionsでOpenSiv3DをWindowsビルド

Last updated at Posted at 2023-12-07

12/09 更新
環境変数の設定周り教えてもらったので修正しました

はじめに

OpenSiv3DプロジェクトをGitHubActionsでWindowsビルドする方法を紹介します。

この記事を書いた時点でOpenSiv3Dのバージョンは 0.6.13

参考リポジトリ

事前準備

サーバー上でビルドするので.gitignoreからApp/engineは外します。

.gitignore
- **/App/engine
+ #**/App/engine

ワークフローでVisual Studio プロジェクトテンプレートのzipをダウンロードしてきて、そこのengineフォルダをコピーすればIgnoreしなくてもよい

デフォルトではIgnoreされていなかったので、今回もリポジトリにengineが含まれてる想定でワークフローを組みます。

.gitignore - Siv3D

Workflow

以下ファイルをリポジトリの.github/workflows以下に配置

[repo]
|- .github
   |- workflows
      |-build.yml
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上からビルド結果をダウンロードできます。

image.png

まとめ

  • GitHubActionsでOpenSiv3DのプロジェクトをWindowsビルドするためのWorkflowを紹介
    • .github/workflows/build.ymlをリポジトリに配置(yaml名は任意)
    • build.yamlの環境変数を修正
      • app-path
      • sln-name
      • version
7
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0