AppVeyor というCIサービスがVisualStudioとかなり親和性が高いと聞いたので試してみました。

AppVeyor

社内で使用しているVulkanのサンプルプロジェクトをビルドしてみようと思います。

※今回はAppVeyorの動作確認がメインのためVulkanの検証プロジェクトは公開しませんのであしからず。

# appveyor.yml の内容

AppVeyorの特徴としてYAML形式でプロジェクトの設定ができるというところにあります。
今回使用しているのは下記内容となります。

version: 0.0.{build}
image: Visual Studio 2017
environment:
  VULKAN_SDK: C:\VulkanSDK\1.2.131.2
install:
- cmd: >-
    curl -L --silent --show-error --output VulkanSDK.exe https://vulkan.lunarg.com/sdk/download/1.2.131.2/windows/VulkanSDK-1.2.131.2-Installer.exe?Human=true
    .\VulkanSDK.exe /S
before_build:
- cmd: nuget restore Projects/Projects.sln
build:
  verbosity: minimal
artifacts:
- path: Projects/x32/Debug/Windows.exe
  name: x32_Debug
- path: Projects/x32/Release/Windows.exe
  name: x32_Release
- path: Projects/x64/Debug/Windows.exe
  name: x64_Debug
- path: Projects/x64/Release/Windows.exe
  name: x64_Release
on_finish:
- ps: >-
    $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))

# appveyor.yml のポイント

今回のポイントは5つです。

  • environment にて、「VULKAN_SDK」環境変数を指定。
  • install にて、VulkanSDKのインストールを行う。
  • before_build にて、NuGetのレストアを行う。
  • artifacts にて、成果物の保存を行う。
  • on_finish にて、リモートでアクセスできるようにする。
    • on_finish ビルド後にリモートでアクセスして環境に問題ないか確認できるの便利です。

# ソリューションファイルで設定しておくこと

Vulkanを扱う際にインクルードとライブラリのパスを予めソリューションに設定しておく必要があります。
設定方法は下記のとおりです。

  1. ソリューション(*.sln)で「右クリック > プロパティ(R)」を選択。
  2. 「構成プロパティ > VC++ ディレクトリ」へ移動。
    • 「インクルード ディレクトリ」に「$(VULKAN_SDK)/Include」
    • 「ライブラリ ディレクトリ」に「$(VULKAN_SDK)/Lib」

# AppVeyor上でビルドし確認

お見せできる範囲でビルドログを公開します。

Build Log

# ビルドログの補足説明

自分で記載した主な処理となります。

  1. 該当バージョンのVulkanSDKをダウンロードし、インストール。
  2. NuGet のレストア。
  3. 生成物(*.exe)をアーカイブに登録。
    • 「Current build > Artifacts」に成果物(今回はWindows.exe)が保存され、すぐにダウンロードして確認することができます。
  4. リモートで接続できる情報を表示。

# まとめ

比較的簡単にVulkanのVisualStudioプロジェクトをビルドし確認することができました。
他にも色々と便利な機能が盛り沢山なのでこれからも触っていこうと思います。

# 参考リンク