±à¼ÍƼö: |
±¾ÎÄÖ÷ÒªÏêϸ½éÉÜÁ˳ÖÐø¼¯³ÉµÄºÃ´¦£¬ÈçºÎ´î½¨GitLab³ÖÐø¼¯³É»·¾³£¨NET°æ£©£¬ÒÔ¼°³£¼ûµÄÎÊÌâ½â¾ö£¬
Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼ÍƼö¡£ |
|
1. ³ÖÐø¼¯³É½éÉÜ
1.1 ¸ÅÄî
³ÖÐø¼¯³ÉÊÇÒ»ÖÖÈí¼þ¿ª·¢Êµ¼ù£¬¼´ÍŶӿª·¢³ÉÔ±¾³£¼¯³ÉËüÃǵŤ×÷£¬Í¨¹ýÿ¸ö³ÉԱÿÌìÖÁÉÙ¼¯³ÉÒ»´Î£¬Ò²¾ÍÒâζ×ÅÿÌì¿ÉÄܻᷢÉú¶à´Î¼¯³É¡£Ã¿´Î¼¯³É¶¼Í¨¹ý×Ô¶¯»¯µÄ¹¹½¨£¨°üÀ¨±àÒ룬·¢²¼£¬×Ô¶¯»¯²âÊÔ£©À´ÑéÖ¤£¬´Ó¶ø¾¡ÔçµØ·¢ÏÖ¼¯³É´íÎó¡£

1.2 ³ÖÐø¼¯³ÉµÄºÃ´¦
£¨1£©¿ìËÙ·¢ÏÖ´íÎó¡£Ã¿Íê³ÉÒ»µã¸üУ¬¾Í¼¯³Éµ½Ö÷¸É£¬¿ÉÒÔ¿ìËÙ·¢ÏÖ´íÎ󣬶¨Î»´íÎóÒ²±È½ÏÈÝÒס£
£¨2£©·ÀÖ¹·ÖÖ§´ó·ùÆ«ÀëÖ÷¸É¡£Èç¹û²»ÊǾ³£¼¯³É£¬Ö÷¸ÉÓÖÔÚ²»¶Ï¸üУ¬»áµ¼ÖÂÒԺ󼯳ɵÄÄѶȱä´ó£¬ÉõÖÁÄÑÒÔ¼¯³É¡£
2. GitLab³ÖÐø¼¯³É£¨CI£©
2.1 ¼ò½é
ÔÚGitLab 8.0+ÌṩÁ˳ÖÐø¼¯³ÉµÄ¹¦ÄÜ£¬ÔÚGitLabÖÐÓиöRunnersµÄ¸ÅÄî¡£
RunnerÒ»¹²ÓÐÈýÖÖÀàÐÍ
1) ±¾µØRunner
2) ÆÕͨµÄ·þÎñÆ÷ÉϵÄRunner
3) »ùÓÚDockerµÄRunner
2.2 GitLab¼òµ¥ÔÀíͼ

±¾ÎÄÖ»½éÉÜGitLab¶ÔNET½øÐгÖÐø¼¯³É
2.3 GitLab³ÖÐø¼¯³ÉËùÐè»·¾³
¿ª·¢»·¾³£ºVS2015¡¢Git
GitLab·þÎñÆ÷»·¾³£ºGitLab 8.0+
Runner-CI·þÎñÆ÷£ºwindow¡¢Git¡¢Msbuild¡¢Nuget¡¢PowerShell¡¢GitLab-Runner
2.4 ÐèÒªÁ˽â֪ʶ
Git²Ù×÷¡¢GitLab¡¢Msbuild&NugetÃüÁîÐС¢PowershellÃüÁîÐÐ
3. ´î½¨GitLab³ÖÐø¼¯³É»·¾³£¨NET°æ£©
3.1 »·¾³´î½¨

3.1.1 »ù´¡»·¾³´î½¨
ÕÒһ̨µçÄÔ£¨·þÎñÆ÷×îºÃ£©ÏµÍ³°²×°Îªwindow 7£¨x64£¬¸Ä³ÉÓ¢Îİæ×îºÃ£©£¬²¢ÇÒ»ú×Ó°²×°ÁË.net
framework4.0ÔËÐл·¾³£¨ÀïÃæÒªÓÐMsBuild£©
3.1.2 Git°²×°
°²×°Git£¬ÏÂÔØµØÖ·
https://git-scm.com/download/win

3.1.3 NuGet°²×°
°²×°NuGet.exe£¬ÏÂÔØµØÖ·£ºhttp://nuget.codeplex.com/downloads/get/669083
3.2 Ïà¹ØÅäÖÃ
3.2.1 Git»·¾³±äÁ¿ÅäÖÃ
¼ÆËã»úÓÒ¼ü¡ª>ÊôÐÔÀïµ¥»÷Ñ¡Ôñ¡ª>»·¾³±äÁ¿

Git Ŀ¼Ï嵀 bin£¨Èç C:\Program Files (x86)\Git\bin£©Ìí¼Óµ½
PATH »·¾³±äÁ¿¡£
ÈçÏÂͼ£ºÑ¡Ôñ PATH±à¼£¬½« bin µÄ·¾¶£¨C:\Program
Files (x86)\Git\bin£©Ìí¼Óµ½±äÁ¿Öµ

ÏêϸÅäÖòο¼·½·¨£¨¶þѡһ¼´¿É£©
¡¾ÊÖ¶¯ÅäÖû·¾³±äÁ¿¡¿
http://jingyan.baidu.com/article/fec4bce271601ff2618d8be3.html
¡¾Git°²×°×Ô¶¯ÅäÖû·¾³±äÁ¿¡¿
http://jingyan.baidu.com/article/9f7e7ec0b17cac6f2815548d.html
3.2.2 PowerShellµ÷ÓòâÊÔ
PowerShellÊǵ÷Ó÷½Ê½£¨GitLabÌṩºÜ¶àÖÖ·½Ê½£©£¬±¾ÎÄÖ»Õë¶ÔPowerShell·½Ê½½øÐÐÑÝʾ¡£PowerShell¿ÉÒÔÀí½âΪ¾ÍÊÇcmdµÄÉý¼¶°æ¡£
´ò¿ªPowerShell£¬²âÊÔGit¡¢MsBuild¡¢NuGetÃüÁîÐÐÄÜ·ñÔÚPowerShellÖÐʹÓã¨Èç¹û²»Ïë²âÊÔ£¬Çë¼ÌÐøÍùÏ¿´£©¡£

¾ÙÀý£º
²âÊÔGit

3.2.3 GitLab-RunnerÏÂÔØ
Ê×ÏÈ£¬ÏÂÔØgitlab-ci-multi-runner-windows-amd64£¬²¢½«Æä·Åµ½C:\CI
ÏÂÔØµØÖ·£º
3.3 GitLab²é¿´ÏîÄ¿µÄRunners
µã»÷Ò»¸öÏîÄ¿->Settings->Runners, µÃµ½UrlµØÖ·¢ÙºÍregistration
token¢Ú



3.4 ¹¹½¨GitLab-Runner·þÎñ
3.4.1 ½éÉÜ
»ù´¡»·¾³ÒѾ´î½¨Íê³É£¬ÈçºÎ½«Õą̂¼ÆËã»úÕæÕý±ä³Éһ̨Runner-CI·þÎñÆ÷£¬ÎÒÃÇÐèÒªÏêϸ½éÉÜһϡ£

3.4.2 ÏÂÔØÈí¼þ£¨Ã»ÏÂÔØµÄÇëÏÂÔØ£©
Ê×ÏÈ£¬ÏÂÔØgitlab-ci-multi-runner-windows-amd64£¬²¢½«Æä·Åµ½
D:\CI_Test
ÏÂÔØµØÖ·£º
3.4.3 ×¢²áÐÅÏ¢
ÔËÐÐcmdÃüÁÒÔ¹ÜÀíÔ±Éí·Ý´ò¿ªcmd£©

ÊäÈëÃüÁîΪ:
cd \
cd ci
gitlab-ci-multi-runner-windows-amd64.exe register |
¸ù¾ÝÌáʾ£¬Ìîд
1) GitLab->RunnersµÄUrlµØÖ·¢Ù
2) GitLab->RunnersµÄregistration
token¢Ú
3) runnerÃû³Æ£¬Õâ¸öËæ±ãд
4) ·ÖÖ§Ãû£¬master
5) ÐÒ鷽ʽ£¬shell
ÈçÏÂͼÌîдÐÅÏ¢ºìÉ«²¿·Ö

3.4.4 ¿ªÆôgitlab-runner·þÎñ
ÊäÈ뿪ÆôÃüÁ²¢¼ì²éwindow·þÎñÖкÍGitLab->RunnersÖÐÊÇ·ñ¿ªÆô³É¹¦
gitlab-ci-multi-runner-windows-amd64.exe
install
gitlab-ci-multi-runner-windows-amd64.exe start |




3.4.5 ÐÞ¸ÄÐÒéconfig.tomlÎļþ£¨ÖØÒª£©
×¢²á³É¹¦ºó£¬ÔÚÎļþ¼ÐÖÐÕÒµ½config.toml£¬ÔÚ[[runners]]ºóÃæÌí¼Óshell
= "powershell"½Úµã

3.5 ¹¹½¨.gitlab-ci.yml½Å±¾
¡¾.gitlab-ci.ymlÄÚÈÝΪ¡¿
stages:
- build
job:
stage: build
script:
- echo "Restoring NuGet Packages..."
- C:\test\nuget.exe restore "ConsoleApplication1.sln"
- echo "Solution Build..."
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe
/p:Configuration=Debug /p:Platform="Any
CPU" /consoleloggerparameters:ErrorsOnly
/maxcpucount /nologo /property:Configuration=Release
/verbosity:quiet "ConsoleApplication1.sln"
tags:
except:
- tags |
ÏÂͼºì¿òÖеÄÃüÁֻҪ½«Â·¾¶ÐÞ¸ÄΪ"ConsoleApplication1.sln"µÄʵ¼Ê·¾¶¾ÍÄÜÖ±½Ó´ÓPowershellÖÐÔËÐС£×¢Ò⣺Èç¹û±¨´í"ConsoleApplication1.sln"ÕÒ²»µ½¿ÉÒÔ³¢ÊÔ±äΪ"src/ConsoleApplication1.sln"

3.6 Íê³ÉÅäÖÃ
Ìá½»´úÂë²âÊÔ
³É¹¦£º µã»÷²é¿´³É¹¦ÈÕÖ¾
ʧ°Ü£º
µã»÷²é¿´´íÎóÈÕÖ¾
±àÒëÖУº µã»÷²é¿´±àÒëÖеÄÈÕÖ¾
.gitlab-ci.yml½Å±¾´íÎó£º £¬µã»÷Ìø×ªµ½.gitlab-ci.ymlÑéÖ¤Ò³Ãæ

4. ³£¼ûÎÊÌâ½â¾ö
4.1 GitLab³öÏÖPending¿¨×¡
Çë¼ì²éRunner-CI·þÎñÆ÷µÄGitLab-Runner·þÎñÊÇ·ñ°²×°³É¹¦£¬RunnersÖеÄUrlµØÖ·¢ÙÊÇ·ñÕýÈ·¡£

4.2 GitLab CIÂÒÂëÎÊÌâ
GitLab·µ»ØÐÅÏ¢ÂÒÂ룬һ°ãÊÇÒòΪGitLab²»ÄÜʶ±ðÖÐÎÄ£¬Ò»°ãÂÒÂëÊÇPowerShell·µ»ØµÄÖÐÎÄ£¬°ÑPowerShell½Å±¾¶ÀÁ¢ÔËÐп´¿´ÊÇ·ñ±¨´í¡£ËùÒÔÍÆ¼öwindow¸ã³ÉÓ¢ÎİæµÄ£¬ÒªÊÇÄÄλ´óÏÀÖªµÀGitLabÔõôʶ±ðÖÐÎÄÂé·³·ÖÏíϹþ¡£
4.3 Ã÷Ã÷´íÎ󣬵«Build³É¹¦
´íÎó½ØÍ¼ÈçÏ£¬Çë¼ì²éGit»·¾³±äÁ¿ÊÇ·ñÅäÖã¬PowerShell½Å±¾ÊÇ·ñ¶ÀÁ¢ÎªÒ»¸öÎļþ

4.4 .gitlab-ci.yml½Å±¾´íÎó
µã»÷Lint£¬½øÐнű¾ÑéÖ¤£¬²Î¿¼×ÊÁÏhttp://docs.gitlab.com/ee/ci/yaml/README.html
×¢Òâ
script:
- {¿Õ¸ñ} {ÄãµÄÃüÁî}



|