ãããšããã§å®å šã«èª¬æãããŠãããç¶ç¶ççµ±åããšã¯ããã®ãããã¯ã100åç¹°ãè¿ãå¿ èŠã¯ã»ãšãã©ãããŸããã
ããŠãåå¿è åã-TeamCityã§ã§ããããšïŒä»¥äžãåã«TCïŒ ãŸãã¯ã次ã®ãããªå ŽåããããŸãïŒãªããžããªã®æå®ããããã©ã³ãïŒãŸãã¯ä»ã®ã€ãã³ãïŒã«å€æŽã衚瀺ãããããããšãã°ãã¢ããªã±ãŒã·ã§ã³ã®ãã«ãããã¹ãã®å®è¡ãä»ã®ã¹ã¯ãªããã®å®è¡ããªã¢ãŒããµãŒããŒãžã®ãã¡ã€ã«ã®ã¢ããããŒããªã©ãå«ãã¹ã¯ãªãããå®è¡ããŸã
éèŠãªç¹ã¯ããçµ±åãµãŒããŒããšããã®ããã»ã¹ãè¡ããããã·ã³ãã¯éåžžïŒå¿ ãããã§ã¯ãªãïŒç°ãªããµãŒããŒã§ããããšã§ãã ããã«ãã¢ã»ã³ããªããã¹ããå®è¡ããããã·ã³ãè€æ°ãããã«ã¯å€ãããããã¹ãŠãç°ãªãOSäžã«ååšããå¯èœæ§ããããŸããäžè¬ã«ãå±éããå ŽæããããŸãã
ã¢ã»ã³ããªããã»ã¹ãéå§ããã«ã¯ãTCãµãŒããŒããã®ã³ãã³ããåãä»ãããšãŒãžã§ã³ãããã°ã©ã ã䜿çšããŸã;ã¡ã€ã³OSïŒJavaãã«ããã©ãããã©ãŒã ã®æ å ïŒã§å®è¡ã§ããŸãã 1å°ã®ã³ã³ãã¥ãŒã¿ãŒã«è€æ°ã®ãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ããŠäžŠè¡ããŠå®è¡ã§ããŸããã1ã€ã®ãšãŒãžã§ã³ããäžåºŠã«åŠçã§ãããããžã§ã¯ãã¯1ã€ã ãã§ããããšã«æ³šæããŠãã ããã ã¿ã¹ã¯ãéå§ããããšãTCã¯æåã®é©åãªéå æãšãŒãžã§ã³ããéžæããããã£ã«ã¿ãŒããèšå®ã§ããŸããããšãã°ãWindowsã®ã¿ããŸãã¯4.0以äžãã€ã³ã¹ããŒã«ããã.NETããŒãžã§ã³ã®ã¿ãªã©ã®ãšãŒãžã§ã³ããéžæã§ããŸãã
次ã«ãäœæ¥ã·ããªãªãèãåºãå¿ èŠããããŸãã ç§ãã¡ã¯ä»äºã§æ¬¡ã®ãã©ã³ãã䜿çšããŸãã
- release-æŠéãµãŒããŒã«ããçŸåšã®ã³ãŒããäœæ¥ããŒãžã§ã³ãå«ãŸããŠããŸãã
- dev-ãã¹ãŠã®æ°æ©èœãçµã¿èŸŒãŸããåŸã§ãªãªãŒã¹ã«ããŒãžãããŸãã
- devããåå²ãããŠããã«æ»ãåæ©èœã®åå¥ã®ãã©ã³ã ã
äžè¬çã«ã¯ãã»ãŒæšæºã®git-flowã§ãããããã«ã€ããŠã¯ãããšãã°ãã¡ãã§è©³çŽ°ã確èªã§ããŸã ã
ãã®ç¹ã§ãã¹ã¯ãªããã¯æ¬¡ã®ããã«ãªããŸãã
- devãã©ã³ãã®ãªããžããªããææ°ã®å€æŽãååŸããŸãã
- ãããžã§ã¯ããã³ã³ãã€ã«ããŸãã
- åã®ã¹ãããã§ãã¹ãŠãããŸããã£ãå Žå-åäœãã¹ããå®è¡ããŸãã
- åã®ã¹ãããã§ãã¹ãŠãããŸããã£ãå Žå-æ©èœãã¹ããå®è¡ããŸãã
- åã®ã¹ãããã§ãã¹ãŠãããŸããã£ãå Žå-ãã¹ããµãŒããŒã«å€æŽãã¢ããããŒãããŸãã
ãªãªãŒã¹ãã©ã³ãã«ã€ããŠãåãããšãè¡ããŸãããæ°ããããŒã¿ãå ¥åããéããµãŒããŒãäžæåæ¢ããŠã¹ã¿ãã衚瀺ããŸãã
ãããå ã«é²ãã§ãã ãã-ã¹ã¯ãªãããå®è£ ããŠãã ããïŒ
ãªããžããªããææ°ã®å€æŽããã«ããŸã
ãã¹ãŠã¯ããããžã§ã¯ãã®ç°¡åãªäœæããå§ãŸããŸãã

åŸ-ã ãã«ãæ§æ ããäœæããŸã ã æ§æã¯ããã«ãã¹ã¯ãªãããå®çŸ©ããŸãã

æ§æãäœæãã2çªç®ã®ã¹ãããã§ã¯ã䜿çšãããŠããVCSã«ã€ããŠå°ããããã®ã§ãããã«gitããããšæ£çŽã«çããŸãã å¥ã®VCSããããŸã-è¿·åã«ãªããªãã§ãã ããã æ°ãããªããžããªãè¿œå ããã«ã¯ã[ æ°ããVCSã«ãŒãã®äœæãšæ¥ç¶ ]ãã¿ã³ã䜿çšããŸã ã

ãããã£ãŠãäž»èŠãªèšå®ïŒ

- ãšã«ããã VCSã«ãŒãID-äžæã®ã³ãŒãã«è§Šããããšã¯ã§ããŸããã 空çœã®ãŸãŸã«ãããšãèªåçã«çæãããŸãã
- ãã§ããURL-ãªããžããªã®ã³ã³ãã³ããååŸããã¢ãã¬ã¹ã
- ããã©ã«ããã©ã³ã -æ
å ±ãååŸããããã©ã³ãã
- èªèšŒæ¹æ³ -æãèå³æ·±ãã®ã¯èªèšŒæ¹æ³ã§ãã ããŒãšãã¹ã¯ãŒãã®äž¡æ¹ã§ãèªèšŒãªãã§ã¢ã¯ã»ã¹ã§ããå ŽåããããŸãïŒããšãã°ãããŒã¿ãå éšãµãŒããŒäžã«ããå ŽåïŒã ãªãã·ã§ã³ããšã«ãè¿œå ã®ãã£ãŒã«ããç¬èªã®ãã®ã«ãªããŸãã
æ®ãã®ããŸããŸãªãªãã·ã§ã³ã¯ãããªãã®å¥œã¿ãšè²ã«ãããã®ã§ãã
次ã«ãã¿ã¹ã¯ã®èªåèµ·åãæ§æããå¿ èŠããããŸãã Build Triggers ïŒãã«ãæ¡ä»¶ïŒã«ç§»åãã VCS Triggeræ¡ä»¶ãéžæããŸã-ããã©ã«ãèšå®ã§ã¯ããªããžããªã«æ°ããã³ãããããããã©ããã1åããšã«ç¢ºèªããããå Žåã¯å®è¡ããã¿ã¹ã¯ãéå§ããŸãã

ãããžã§ã¯ããã³ã³ãã€ã«ãã
Visual Studioã®ãœãªã¥ãŒã·ã§ã³ãšãã圢åŒã®ASP.NETãããžã§ã¯ãããããããããã§ããã¹ãŠãç°¡åã§ããã
[ ãã«ãã¹ããã ]ã¡ãã¥ãŒã«ç§»åãã ã©ã³ããŒã®çš®é¡ãéžæãïŒå®éã«ã¯å€æ°ãããŸãïŒã MSBuildã§åæ¢ããŸãã ãªãæ£ç¢ºã«ïŒ ã¢ã»ã³ããªããã»ã¹ãèšè¿°ããããã®éåžžã«ç°¡åãªæ¹æ³ãæäŸããåçŽãªXMLãã¡ã€ã«ã§ããŸããŸãªã¹ããããè¿œå ãŸãã¯åé€ããããšã§ååã«è€éã«ãªããŸãã


ããã«ããã¹ãŠãåºæ¬ã§ãã

ãã«ããã¡ã€ã«ãã¹ -slnãã¡ã€ã«ãžã®ãã¹ã
ãããžã§ã¯ãã®èŠä»¶ã«åãã㊠ã MSBuildããŒãžã§ã³ ã MSBuild ToolsVersion ãããã³Runãã©ãããã©ãŒã ãéžæããŸãã
ãããžã§ã¯ãã«è€æ°ã®æ§æãããå Žåã¯ã ã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒãªãã·ã§ã³ã䜿çšããŠãã®ããŒã®ãããªãã®ãå ¥åã§ããŸãã
/p:Configuration=Production
Productionã¯ç®çã®æ§æã«çœ®ãæããããŸãã
NuGetããã±ãŒãžã®ããŠã³ããŒããæå¹ã«ãã
NuGetããã±ãŒãžã䜿çšããå Žåã®éèŠãªãã€ã³ãã ããã§ãªãå Žåã¯ã次ã®é ç®ã«çŽæ¥ç§»åã§ããŸãã
NuGetããã±ãŒãžã¯éåžžã«éããç¹å¥ãªå¿ èŠãªãã«ã©ã€ãã©ãªãã€ããªããªããžããªã«ä¿åããããªãã®ã§ãçŽ æŽãããNuGet Package Restoreãªãã·ã§ã³ã䜿çšã§ããŸãã

ãã®ç¶æ³ã§ã¯ãã©ã€ãã©ãªãã€ããªã¯ãªããžããªã«å«ãŸããŸãããããã«ãããã»ã¹äžã«å¿ èŠã«å¿ããŠããŠã³ããŒããããŸãã
ãããã MSBuildã¯æ¬ç©ã®çŽ³å£«ã§ãããèš±å¯ãªãäžå¿ èŠãªãžã§ã¹ãã£ãŒãè¡ãããšã¯ãªãããããã®ãããªããã±ãŒãžãããŠã³ããŒãããããšã¯ã§ããŸããããã®ããã»ã¹ãèš±å¯ããå¿ èŠããããŸãã ãããè¡ãã«ã¯ãã¯ã©ã€ã¢ã³ãã§[ NuGetããã±ãŒãžã®åŸ©å ãæå¹ã«ãã]ç°å¢å€æ°ãtrueã«èšå®ãããã[ ãã«ããã©ã¡ãŒã¿ãŒ ]ã¡ãã¥ãŒã«ç§»åããŠèšå®ããå¿ èŠããããŸãã

ãã©ã€ããŠããããã¹ã
åäœãã¹ãã¯ããœãªã¥ãŒã·ã§ã³å ã®ç¬ç«ãããããžã§ã¯ãã§ãã ãã®ãããåã®ã¹ãããã§æ¢ã«ã³ã³ãã€ã«ãããŠããŸã-ããããå®è¡ããããã«æ®ã£ãŠããŸãã
æ°ããã¹ããããè¿œå ããŸã ã ã©ã³ããŒã®ã¿ãNUnitã«ãªããŸãã ã Execute stepãã©ã¡ãŒã¿ãŒã«æ³šæããŠãã ãããããã¯ã ã¹ããããå®è¡ããæ¡ä»¶ã瀺ãã4ã€ã®å€ããããŸãã
- åã®ãã¹ãŠã®ã¹ããããæ£åžžã«çµäºããå ŽåïŒçµäºã³ãŒãããŒãïŒ -åã®ãã¹ãŠã®ã¹ãããããšã©ãŒãªãã§å®äºããå Žåã ãã®å Žåããã§ãã¯ã¯çŽç²ã«ãšãŒãžã§ã³ãã§å®è¡ãããŸãã
- ãã«ãã¹ããŒã¿ã¹ãæåããå Žåã®ã¿ -åã®ãã«ãã¹ããŒã¿ã¹ãšåæ§ã§ãããåæã«ããšãŒãžã§ã³ãã¯TCãµãŒããŒã®ãã«ãã¹ããŒã¿ã¹ãæ確ã«ããŸãã ç¹å®ã®ã¹ãããã®ãŒããªã¿ãŒã³ã³ãŒãããšã©ãŒã§ããå Žåãªã©ãã¿ã¹ã¯ã®ããžãã¯ããã现ããå¶åŸ¡ããå¿ èŠããããŸãã
- åã®æé ã®äžéšã倱æããå Žåã§ããåã®æé ã®ããããã倱æããå Žåã§ãã
- ãã«ãåæ¢ã³ãã³ããçºè¡ãããå Žåã§ããåžžã« -ã¢ã»ã³ããªããã£ã³ã»ã«ããã³ãã³ããçºè¡ãããå Žåã§ããã¹ããããå®è¡ããŸãã
ããã§æãéèŠãªããšã¯ã[ãã¹ãã®å®è¡]åã§ãããžã§ã¯ãå ã®ãã¹ãã䜿çšããŠãã¢ã»ã³ããªãžã®æ£ãããã¹ã瀺ãããšã§ãã ããã§ã¯ãããšãã°ã次ã®ããã«ãªããŸãã
%teamcity.build.checkoutDir%\project\project.FuncTests\bin\Dev\project.FuncTests.dll
ïŒ teamcity.build.checkoutDirïŒ ã¯ããªããžããªããããŒã¿ãããŠã³ããŒãããããã©ã«ããŒãæãå€æ°ã§ãã ååãšããŠã以äžã瀺ãå¿ èŠã¯ãããŸããã ããã©ã«ãã§ã¯ããã¹ã¯ãã®ãã£ã¬ã¯ããªãåºæºã«ããŠããããããã¹ã¯æ¬¡ã®ããã«ççž®ã§ããŸãã
project\project.FuncTests\bin\Dev\project.FuncTests.dll

[ æè¿å€±æãããã¹ããæåã«å®è¡ ]ãªãã·ã§ã³ã«å¥é泚æããŸããååã®å®è¡ã§äžéšã®ãã¹ãã倱æããå Žåã次ã®å®è¡ã§ããããæåã«éå§ãããææ°ã®å€æŽã®æåãããã«ããããŸãã

ã€ã³ã¿ãŒãã§ã€ã¹ãã¹ããå®è¡ããŸãïŒæ©èœãã¹ãïŒ
ããã§ã®ãã¹ãŠã¯ãåäœãã¹ããããã¯ããã«èå³æ·±ããã®ã§ãã ããã§ã®äžéã¯ããã©ãŠã¶ã§ãããžã§ã¯ãããã¹ãããããã«ãã€ãŸãã ãããžã§ã¯ããç«ã¡äžããå¿ èŠããããŸãã ããããããã§ã¯ãSeleniumã®ãã¹ãã³ãŒãããçŽæ¥WebãµãŒããŒãèµ·åããŠãäžæ£è¡çºãè¡ããŸããã
[SetUpFixture] class ServerInit { private const string ApplicationName = "justtest"; private Process _iisProcess; private string GetApplicationPath(string applicationName) { var tmpDirName=AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\'); var solutionFolder = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(tmpDirName))); string result = Path.Combine(solutionFolder, applicationName); return result; } [SetUp] public void RunBeforeAnyTests() { [âŠ] var applicationPath = GetApplicationPath(ApplicationName); var programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); _iisProcess = new Process { StartInfo = { FileName = string.Format("{0}/IIS Express/iisexpress.exe", programFiles), Arguments = string.Format("/path:\"{0}\" /port:{1}", applicationPath, UrlProvider.Port) } }; _iisProcess.Start(); } [TearDown] public void RunAfterAnyTests() { [âŠ] if (_iisProcess.HasExited == false) { _iisProcess.Kill(); } } }]
ãŸããèµ·åèªäœã¯ãåäœãã¹ãã®ã¹ããããšãŸã£ããåãã«èŠããŸãã

å€æŽããã¹ããµãŒããŒã«ã¢ããããŒããã
TCãšãŒãžã§ã³ããååšãããµãŒããŒãšIISãã€ã³ã¹ããŒã«ãããŠãããµãŒããŒã¯ç°ãªããµãŒããŒã§ãããããã«ããããã¯ç°ãªããããã¯ãŒã¯ã«é 眮ãããŠããŸãã ãããã£ãŠããã¡ã€ã«ã¯äœããã®æ¹æ³ã§å®å ãµãŒããŒã«é ä¿¡ããå¿ èŠããããŸãã ãããŠãããã§ã¯ãéåžžã«ãšã¬ã¬ã³ãã§ã¯ãªããããããŸããããéåžžã«ã·ã³ãã«ãªãœãªã¥ãŒã·ã§ã³ãéžæãããŠããŸãã FTPçµç±ã®ã¢ããããŒãã䜿çšãã MSBuildã¯ãããè¡ããŸãã
ã¹ããŒã ã¯æ¬¡ã®ãšããã§ãã
- FTPãµãŒããŒã§ãã¡ã€ã«ãã¢ããããŒãããããã®ã¢ã«ãŠã³ããèšå®ããŸãã ã»ãã¥ãªãã£ã匷åããããã«ãTCãµãŒããŒãå éšãããã¯ãŒã¯äžã«ããå Žåãå éšIPãé€ããã¹ãŠã®IPã®å ¥åãçŠæ¢ã§ããŸãã
- FTPã¢ããããŒãã¿ã¹ã¯ã䜿çšã§ããããã«ããã«ã¯ããšãŒãžã§ã³ãMSBuild Community Tasksã«ã€ã³ã¹ããŒã«ããŸãã ããããããŠã³ããŒãããŠãã ãã ã
- MSBuildçšã®ã¹ã¯ãªãããã¡ã€ã«ãæºåããŸããããã«ããã次ã®ã¢ã¯ã·ã§ã³ãå®è¡ãããŸãã
- äžæãã©ã«ããŒã«ã¢ããªã±ãŒã·ã§ã³ããã«ãããŸã
- æ§æãã¡ã€ã«ã®ãªãããŸã;
- FTPçµç±ã§ãã¡ã€ã«ãã¢ããããŒãããŸãã
ããã¯ããã®ãã¡ã€ã«ã®å€èŠ³ã§ãïŒdeploy.xmlïŒ
<?xml version="1.0" encoding="utf-8"?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0" DefaultTargets="Build"> <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.Tasks.dll"/> <Import Project="$(MSBuildExtensionsPath32)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/> <PropertyGroup> <OutputDir>bin</OutputDir> <PublishDir>../output</PublishDir> <Configuration>Dev</Configuration> <TransformInputFile>..\project\project\Web.template.config</TransformInputFile> <TransformFile>..\project\project\Web.$(Configuration).config</TransformFile> <TransformOutputFile>..\project\output\Web.config</TransformOutputFile> <StackTraceEnabled>False</StackTraceEnabled> </PropertyGroup> <ItemGroup> <ProjectToBuild Include="../project/project.sln"> <Properties>WebProjectOutputDir=$(PublishDir);OutputPath=$(OutputDir);Configuration=Dev</Properties> </ProjectToBuild> </ItemGroup> <Target Name="Build"> <MSBuild Projects="@(ProjectToBuild)"/> </Target> <Target Name="CreateWebConfigs" AfterTargets="Build"> <TransformXml Source="$(TransformInputFile)" Transform="$(TransformFile)" Destination="$(TransformOutputFile)" /> </Target> <Target Name="AfterBuild" AfterTargets="CreateWebConfigs"> <PropertyGroup> <ftpHost>dev.example.com</ftpHost> <ftpUser></ftpUser> <ftpPass></ftpPass> <LocalDirectory>..\project\output</LocalDirectory> </PropertyGroup> <FtpUploadDirectoryContent ServerHost="$(ftpHost)" Port="21" Username="$(ftpUser)" Password="$(ftpPass)" LocalDirectory="$(LocalDirectory)" RemoteDirectory="" Recursive="true" /> </Target> </Project>
ãããŠ-圌ãåŒã³åºãã¿ã¹ã¯ïŒ

ãã®ãœãªã¥ãŒã·ã§ã³ã®æ¬ ç¹ã¯ãå€æŽãããæ°ãããã¡ã€ã«ã ãã§ãªãããã¹ãŠã®ãã¡ã€ã«ãã¢ããããŒããããããšã§ãã å€æ°ã®ã¬ã€ã¢ãŠããã¡ã€ã«ãŸãã¯å€æ°ã®ã¢ãžã¥ãŒã«ããããããžã§ã¯ãã§ã¯ãæéãåããããã«æéããããããããããåé¡ã«ãªãå¯èœæ§ããããŸãã
ãã1ã€ã®æ¬ ç¹ã¯ããã¡ã€ã«ã®ååã«ã©ãã³æå以å€ã®æåãå«ãŸããŠãããšããšã©ãŒãçºçããããšã§ãã ã©ãã³ããã³æå/æ°åã¯éåžžéãåŠçãããŸãã ãã®åé¡ã®èã¯FTPãããã³ã«ã®ä»æ§ããçºå±ããŠããããã§ããASCIIã«åºã¥ããŠããŸãããéASCIIæåã®ãšã³ã³ãŒãæ¹æ³ã«ã€ããŠã¯èª¬æããŠããããããµãŒããŒãç解ã§ããããã«è¡ããããšã瀺åããŠããŸãã ãããã£ãŠãã¹ããŒã ãå€æŽããã«åé¡ã解決ããã«ã¯ã ãœãŒã¹ãéããŠãããããMSBuildã³ãã¥ããã£ã¿ã¹ã¯ã«ããããé©çšããå¿ èŠããããŸã ã ããŠããŸãã¯ãWinSCPãªã©ã䜿çšããŠããã¡ã€ã«ãã¢ããããŒãããå¥ã®æ¹æ³ã䜿çšããŸãã
ãªãªãŒã¹ã¹ã¯ãªããã®ãµãŒããŒãåæ¢ããŠèµ·åããŸã
å°ãã¯ã€ã«ãã§ããããæ¹æ³ã§è§£æ±ºããŸãã IISã«ã¯ç¹æ®æ§ããããŸãããµã€ãã®ã«ãŒãã«app_offline.htmlãšããååã®ãã¡ã€ã«ãé 眮ãããšããµã€ããåæããããã¹ãŠã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ãããšããã®ãã¡ã€ã«ã®å 容ã衚瀺ãããŸã ã
ãã€ãã¹-éçãªãã¡ã€ã«ãå«ããã¹ãŠã®ãã¡ã€ã«ã«é åããããŸãã ãããã£ãŠããã¶ã€ã³ãCSSãããã³ã€ã¡ãŒãžã䜿çšããŠã¹ã¿ããäœæããå Žåã¯ãã€ã³ã©ã€ã³ã¹ã¿ã€ã«ãšããŒã¿ã䜿çšããŸããurlãwellããŸãã¯ãªãã·ã§ã³ãšããŠãããããå¥ã®ãµãŒããŒã«é 眮ããŸãã
ããã§ã¯ãWinSCPã¹ã¯ãªãããšãã®ãããªãã¡ã€ã«ã䜿çšããŠãµãŒããŒãæå¹/ç¡å¹ã«ããŸãã
server_off.cmd
winscp.exe /console /script=server_off.txt
server_on.cmd
winscp.exe /console /script=server_on.txt
server_off.txt
option batch abort option confirm off open ftp://:@dev.example.com mv _app_offline.htm app_offline.htm close exit
server_on.txt
option batch abort option confirm off open ftp://:@dev.example.com rm app_offline.htm close exit
ã€ãŸããæåã¯ãã¡ã€ã«ã¯ã«ãŒãã«ããã _app_offline.htmlãšããååã§ãã æŽæ°äžã«ã¢ã¯ã»ã¹ããããã¯ããå¿ èŠãããå Žåãååãapp_offline.htmlã«å€æŽããŸã ã ãã¡ã€ã«ãã¢ããããŒããããšãæ°ãã_app_offline.htmlãã¡ã€ã«ãã¢ããããŒããã ãçµäºåŸã«app_offline.htmlãã¡ã€ã«ãåé€ãããŸãã ãããŠãå ã®ç¶æ ãæ£ç¢ºã«ååŸããŸãã
ã¹ã¿ãããŒãžã®ããã¹ãã§ã¯ãããŒãžãå®æçã«æŽæ°ããæŽæ°ã¡ã¿ã¿ã°ã®äœ¿çšã匷ããå§ãããŸãã æŽæ°ããã»ã¹ããã®æéãŸã§ã«å®äºãããšããŠãŒã¶ãŒã¯ãµãŒãã¹ã«æ»ããŸãã
ã¹ã¯ãªãããåŒã³åºããŠã¹ã¿ããæå¹ã«ããŸãïŒã¹ã¿ãã®ç¡å¹åãåæ§ã§ãïŒïŒ

ã¯ãã WinCSPã¯ãªããžããªå ã§çŽæ¥çæãããŸãã ã¯ããã¯ãªã¢ããã¹ãã®ãã¹ã¯ãŒãã¯ãã¡ã€ã«ã«ãããŸãã ã¯ããæããšã¬ã¬ã³ããªãœãªã¥ãŒã·ã§ã³ã§ã¯ãããŸããããç§ãã¡ã®ããŒã ã®éçºè ã®ã¿ããªããžããªãšãšãŒãžã§ã³ããåããä»®æ³ãã·ã³ã«ã¢ã¯ã»ã¹ã§ããã®ã§ããªãã§ããïŒ ã¯ããããšãã°ããã¹ã¯ãŒããå«ããã¡ã€ã«ããšãŒãžã§ã³ãã«çŽæ¥ä¿åããããšã¯å¯èœã§ãããåºæ¬çã«ã¯ã»ãã¥ãªãã£ã¯åäžããŸããããããšãã°æ°ãããšãŒãžã§ã³ãã®å±éã¯é ããªããŸãã
ãããã®èšå®ãçŽ6ãæ䜿çšããŸãããããããŸã§ã®ãšããåé¡ã¯çºçããŠããŸããããã¹ãŠãæèšã®ããã«æ©èœããŸããããã¯æå ±ã§ãã
ããã ãã§ã ãããã®æé ãæ¹åããããã®ã³ã¡ã³ããšã¢ããã€ã¹ãããã³èªå® ã§äœ¿çšããTCæ©èœã«é¢ããã¹ããŒãªãŒããèãããã ããã
2014幎11æ3æ¥ã®æŽæ°ã
ã©ã³ããŒã¿ã€ããã³ãã³ãã©ã€ã³ããéžæããå Žåãã¹ããŒã¹ããšã¹ã±ãŒãããæ¹æ³ã¯å¿ èŠãããŸãããTeamCityãç¬èªã«åŠçããŸãã