使用 GitLab CI 管道建構 .NET 解決方案
我有一個包含多個 .NET 項目的解決方案。我使用非自託管的 GitLab 進行版本控制,並且也想開始使用他們的 CI 工具。我已將以下
.gitlab-ci.yml文件添加到我的根目錄:stages: - build - test build_job: stage: build script: - 'echo building...' - 'msbuild.exe Bizio.sln' except: - tags test_job: stage: test script: - 'echo: testing...' - 'msbuild.exe Bizio.sln' - 'dir /s /b *.Tests.dll | findstr /r Tests\\bin\\ > tests_list.txt' - 'for /f %%f in (tests_list.txt) do mstest.exe /testcontainer: "%%f"' except: - tags舞台總是失敗,
build因為它不知道是什麼msbuild。確切的錯誤是:/bin/bash:第 61 行:msbuild.exe:找不到命令
經過一番調查,我發現我正在使用共享跑步者。這是作業執行的全部輸出:
Running with gitlab-runner 10.6.0-rc1 (0a9d5de9) on docker-auto-scale 72989761 Using Docker executor with image ruby:2.5 ... Pulling docker image ruby:2.5 ... Using docker image sha256:bae0455cb2b9010f134a2da3a1fba9d217506beec2d41950d151e12a3112c418 for ruby:2.5 ... Running on runner-72989761-project-1239128-concurrent-0 via runner-72989761-srm-1520985217-1a689f37... Cloning repository... Cloning into '/builds/hyjynx-studios/bizio'... Checking out bc8085a4 as master... Skipping Git submodules setup $ echo building... building... $ C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Bizio.sln /bin/bash: line 61: msbuild.exe: command not found ERROR: Job failed: exit code 1看起來我擁有的共享執行器正在為 Ruby 使用 Docker 映像,這似乎是錯誤的。我不知道如何更改或選擇可用於 .NET 的其他選項。經過一些進一步的調查,我開始擔心我必須跳過很多圈才能得到我想要的東西,比如使用 Azure VM 來託管可以建構 .NET 應用程序的 GitLab Runner。
我需要做什麼才能使用 GitLab 的 CI 管道來使用非自託管 GitLab 實例建構我的 .NET 解決方案?
您應該能夠在具有 Framework 4 建構工具的機器上設置您自己的共享執行器(使用 Docker 映像,如 microsoft/dotnet-framework-build,或者只是您的本機機器)。
最簡單的情況是使用您自己的桌面,您知道您的解決方案已經在其中建構。(因為使用 Docker 映像進行建構是絕對可能的,但涉及確保您的機器上有 docker 工作的所有額外步驟)。
從https://docs.gitlab.com/runner/install/windows.html在您的電腦上下載 gitlab-runner
為你的跑步者獲取一個 gitlab-ci 令牌
- 可能最簡單的方法是轉到 gitlab.com 中的項目,然後轉到 Settings -> CI/CD 並展開 General Pipeline Settings。
- 在 Runner Token 部分,點擊 Reveal Value 按鈕以顯示令牌值。您將在跑步者註冊步驟中需要它。
根據Registering Runners - Windows註冊gitlab runner
- 打開提升的命令提示符(以管理員身份執行)
- cd 到 c:\gitlab-runner
- 類型
gitlab-runner register- 註冊提示將引導您完成註冊跑步者的步驟,但簡而言之,您將輸入
- gitlab.com 作為你的協調者 URL,從你的項目中輸入令牌
- 給你的跑步者起個名字
- 標記你的跑步者(這樣你就可以將它與它能夠建構、測試等的項目相關聯——為簡單起見,你現在可以跳過標籤)
- 允許它執行未標記的作業(再次,簡單,說真的)
- 將跑步者鎖定到目前項目(簡單,說真的)
- 並選擇執行器(輸入 shell,基本上是說使用 Windows 命令行)
將 gitlab-runner 安裝為服務,以便它幾乎總是檢查要完成的工作
- 在命令提示符下,鍵入
gitlab-runner install- 然後輸入
gitlab-runner start- (現在,如果你去服務,你會看到 gitlab-runner 列出,它應該正在執行 - 就在當/如果跑步者崩潰時,你應該去服務重新啟動它)
唷。現在執行器已設置,當您推送送出或請求合併時應該啟動它。
如果您在正確建構 .gitlab-ci.yml 文件時仍然遇到問題,您可以通過轉到命令行中的解決方案文件夾然後執行
c:\gitlab-runner\gitlab-runner build(To例如,測試建構步驟)。如果建構步驟在查找解決方案文件時遇到問題,您可能需要嘗試將其從“msbuild.exe Bizio.sln”更改為“msbuild.exe .\Bizio.sln”