Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9525

GitLabで.Net FrameowrkのソフトのCI環境を整える

$
0
0
はじめに 業務上の都合により、Windows Formアプリに関するCI環境を整えることになり、 色々検索していった所GitLabのCI/CDパイプラインである程度どうにかできそうな手がかりを得た。 ただ、色々とかなり複雑に感じたため、忘備録として資料を残しておく 環境 Windows10(Home Editionでも動作可能なはず。) RaspberryPi(GitLab動作用) 大まかな手順 GitLabのセットアップ RaspberryPi上にGitLabをインストールする リポジトリの準備 Windows側のセットアップ Windowsでgitlab-runnerをダウンロードし、インストールする NetCoreバージョンのPowershell(pwsh.exe)をインストールする 何らかの方法で(手段は問わない)pwsh.exeへのパスを通す .NetFrameworkのツールのインストールを行う ビルドツール テストツール Windows上のRunnerをGitLabへ登録する Jobの設定 GitLabのセットアップ これは公式ホームーページのReapberryPi用のインストール手順ページに従うだけだから割愛する。 セットアップが完了したら、CI環境を整えたいレポジトリを作成しておく。 Windows側のセットアップ Runnerのダウンロードとサービスへの登録 下記を参照すれば、とりあえずgitlab-runnerは登録できる。 ただし、自分の場合は何をやっても自分のアカウントでサービスとしてrunnerを立ち上げることができなかった。 ちなみにこの時点で他の設定を整えて動かそうとしたらこのようなエラーが出る。 .NetCore版のPowershell(pwsh)のインストールと環境変数の調整が必要となるようだ。 (※ログが長すぎたので改行しています。) ERROR: Job failed (system failure): prepare environment: failed to start process: exec: "pwsh": executable file not found in %PATH%. Check https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading for more information .NetCore版のPowershellのインストール 最新のPowershellでは.Net Core 6.0が必要になる。.Net Core 6.0も一緒にダウンロードしよう。 Powershellのインストール方法にはいくつか方法があるが、多分msiを使用するのが無難だと思う。 PowerShellのインストールサイト .Net 6.0(Powershellに必要なライブラリ)のダウンロードサイト 自分は「.NET グローバル ツールとしてインストール」からインストールしてしまったため、後でpwsh.exeへのパスを調べてシステムの環境変数に追加する必要が出てしまった。 その他必要なツールのインストール Visual Studio 2019の時点では、.Net FrameworkのアプリのテストにはMSTestを使用するようだ。 その場合は下記記事の「コンソールでUnitTestを実施」以降を参考にすれば良い。 あとは使用した環境に一致したBuild ToolsをAgentsをダウンロードしたサイトからダウンロードしよう。 この記事投稿時点(Visual Studio 2022)の時点では、各ツールへのパスは下記の通り。 (2022以外を使う場合は下記の2022の数字を変更すればよさそうだ。) ビルドツール C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe テストツール C:\Program Files (x86)\Microsoft Visual Studio\2022\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe ビルドはともかく、テストツールはどのように動くのかわかってないから試しに動かしてみる。 下記のようにコマンドを送って試してみた。 $mstest = "C:\Program Files (x86)\Microsoft Visual Studio\2022\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" $testtarget = ".\(テストプロジェクト)\bin\Release\MainTest.dll" cd (ソリューションのディレクトリ) & "$mstest" "$testtarget" 出力結果はこんな感じ。 Microsoft (R) Test Execution Command Line Tool Version 17.0.0 Copyright (c) Microsoft Corporation. All rights reserved. テスト実行を開始しています。お待ちください... 合計 1 個のテスト ファイルが指定されたパターンと一致しました。 成功 TestMethod1 [5 ms] テストの実行に成功しました。 テストの合計数: 1 成功: 1 合計時間: 1.4221 秒 RunnerのGitLabへの登録 これは上の方のリンク「GitLabにWindowsのrunnerを追加する」を参考にすれば問題ないので割愛します。 Jobの設定 まずは動作確認をしたかったので、サンプルに「windows」のタグだけ追加してみた。 (runnnerで指定しているタグを過不足なく入れておく必要があります) .gitlab-ci.yml stages: # List of stages for jobs, and their order of execution - build - test build-job: # This job runs in the build stage, which runs first. stage: build tags: - windows script: - echo "Compiling the code..." - echo "Compile complete." unit-test-job: # This job runs in the test stage. stage: test # It only starts when the job in the build stage completes successfully. tags: - windows script: - echo "Running unit tests... This will take about 60 seconds." - sleep 60 - echo "Code coverage is 90%" このファイルが含まれるコードを実際にPushしたら次のような動作になった。 とりあえず、適当なスクリプトをWindows上で動かせるようになったので、 今後はこの環境を使って実際に色々動かして試してみることにする。

Viewing all articles
Browse latest Browse all 9525

Trending Articles