GitLabでVS2019プロジェクトを自動ビルドするようにしてみた


GitLab で VS2019プロジェクトを自動でビルドするようにしてみました。

環境

  • Windows 10 Home
  • GitLab CE 12.8.6
  • GitLab Runner 12.9.0
  • Git for Windows 2.25.1
  • Visual Studio Community 2019

フォルダ構成

ファイル/フォルダ 内容
TestProject_VS2019/ VS2019プロジェクトフォルダ
.gitignore Git無視リストファイル
.gitlab-ci.yml GitLab CI 設定ファイル
build.bat ビルド用バッチファイル
README.md 説明ファイル

ファイルの内容

.gitignore

不要なものもありますが、使いまわしています。

/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/Assets/AssetStoreTools*

# Autogenerated VS/MD solution and project files
ExportedObj/
*.csproj
*.unityproj
# *.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd

# Unity3D generated meta files
*.pidb.meta

# Unity3D Generated File On Crash Reports
sysinfo.txt

# Builds
*.apk
*.unitypackage

# Visual Studio
.vs
Release/
Debug/

.gitlab-ci.yml

GitLabにPUSHしたらビルドが走るようにしています。
同じPCにGitLab-Runnerをインストールして、Shared Runnerとして登録しています。

before_script:
  - chcp 65001
  - '"C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/Tools/VsDevCmd.bat"'

stages:
  - build

job_build01:
  stage: build
  script:
    - echo "Start build"
    - ./build.bat
    - echo "Finish build"
  tags:
    - shared-runner
  artifacts:
    paths:
      - TestProject_VS2019/Release/TestProject_VS2019.exe
      - TestProject_VS2019/Debug/TestProject_VS2019.exe
    expire_in: 1 week

build.bat

ReleaseとDebugを順番にビルドしています。

SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"

%MSBUILD% TestProject_VS2019\TestProject_VS2019.sln -t:Rebuild -p:Configuration=Release -p:Platform="x86"
if %errorlevel% neq 0 (
  echo "build Release failed"
  goto :error_exit
)
%MSBUILD% TestProject_VS2019\TestProject_VS2019.sln -t:Rebuild -p:Configuration=Debug -p:Platform="x86"
if %errorlevel% neq 0 (
  echo "build Debug failed"
  goto :error_exit
)

goto :success_exit

:error_exit
echo "Error!!"
exit /b 1

:success_exit
echo "Finish!"
exit /b 0

実行結果

まとめ

GitLab で自動ビルドするようにしてみました。
同様にして、自動テストも入れたりすれば、効率よく作業ができるようになりそうです。