рд╢реБрдн рджрд┐рди,
% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо% !
рдЖрдк
рдпрд╣рд╛рдВ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╕рд╛рд╣рд┐рддреНрдп рдХреА рддрд▓рд╛рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЬрд╛рдПред рдпрджрд┐ рдЖрдкрдиреЗ рд╕реАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкреВрд░реНрдг рд▓рд╛рднреЛрдВ рдХрд╛ рдкрд╣рд▓реЗ рд╣реА рдПрд╣рд╕рд╛рд╕ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╡рд┐рдЪрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА: рд╣рдбрд╕рди, рдЯреАрдорд╕рд┐рдЯреА рдФрд░ рдХреНрд░реВрдЬрд╝рдХрдВрдЯреНрд░реЛрд▓ред рдЗрди рд╕рднреА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрдорддреМрд░ рдкрд░ UI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЪреБрдирддреЗ рд╣реИрдВ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ - рдФрд░ рдирд┐рд░реНрдорд╛рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реИ (рдмреЗрд╢рдХ, рдЖрдк рдЕрдкрдиреА рдЦреБрдж рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдкреНрд░рдЪреБрд░рддрд╛ рдФрд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓реЛрд╢рдиред рдФрд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдЗрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛? рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рд┐рд░реНрдл рд╡рд┐рднрд┐рдиреНрди рдмрд┐рд▓реНрдбрд░реЛрдВ, рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ, рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреАрдо рдмрдирд╛рдИ рддрд╛рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдЗрди рдЪреАрдЬреЛрдВ рдкрд░ рдЕрдкрдирд╛ рд╕рдордп рди рдмрд┐рддрд╛рдПред рдХреНрдпрд╛ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХрдорд╛рдВрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рд▓рдЧ рд░рд╣рд╛ рд╣реИ?
рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
- .NET рд╡рд┐рдХрд╛рд╕ рдордВрдЪ
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП MS SQL рд╕рд░реНрд╡рд░
- рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП NUnit
- ... рд╢рд╛рдпрдж рдХреБрдЫ рдФрд░ рдЙрдкрдХрд░рдг
рддреЛ рдХреНрдпреЛрдВ рди рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рдХреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдКрдВ, рдХреБрдЫ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреВрдВ рдФрд░ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реВрдВред
рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рд╕реАрдЖрдИ рдирд╛рдордХ рдЗрд╕ рдЕрджреНрднреБрдд рдмрд╛рдЗрдХ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛редрдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЧрдВрднреАрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╕рднреНрдп рдХрдВрдкрдирд┐рдпрд╛рдВ
рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░рддреА рд╣реИрдВ ред рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдореЗрдВ рд╣реБрдХ рд╣реИрдВ - рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ред рдпрд╣ рдСрдЯреЛрдореЗрд╢рди рд╡рд┐рдзрд┐ рдереА рдЬреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░реЗ рд╕рд╛рде рд╣реБрдИ рдереАред
рд╣рдо рд╡реАрд╕реАрдПрд╕ рдХреЗ рд░реВрдк рдореЗрдВ svn рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рд╣реБрдХ рдореЗрдВ рдЕрдВрддрд░ рдиреНрдпреВрдирддрдо рд╣реИрдВ, рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╣реИрдВ)ред
1. рдПрдХ рднрдВрдбрд╛рд░ рдмрдирд╛рдПрдБред
2. рд╣реБрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рдкреЛрд╕реНрдЯ-рдХрдорд┐рдЯ рдмрдирд╛рдПрдВред рдЗрд╕ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдо рдПрдХ рдХрдорд╛рдВрдб рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬрд┐рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд┐рдЯ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
3. рд╣рдо рднрдВрдбрд╛рд░ рд╕реЗ рдЪреЗрдХ рдмрдирд╛рддреЗ рд╣реИрдВред рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ CI рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВред CI рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, Run.bat рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реА рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
4. рдкреЛрд╕реНрдЯ-рдХрдореЗрдЯреА рдореЗрдВ, рд░рди.рдмрдЯ рдЪрд▓рд╛рдПрдВ - рдпрд╣ рд╕рдм рдСрдЯреЛрдореЗрд╢рди рд╣реИ
рдмрд╛рдж commit.bat:
D: \ Work \ SomeProject \ CI \ Run.bat
рдкрд░реАрдХреНрд╖рдг рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрд╣рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ .NET рдкрд░ рдПрдХ рдХреНрд▓рд╛рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ CI рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
- рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
- рдХрдорд┐рдЯ рдХреЗ рдмрд╛рдж рддреНрд╡рд░рд┐рдд рдирд┐рд░реНрдорд╛рдг рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ
- рдкрд░рд┐рдгрд╛рдо рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
рдмреЗрд╢рдХ, рдпрд╣ рд╕реАрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдФрд░ рд╕рднреА рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред
1. рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реЛрд░реНрд╕ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ svn рдЕрджреНрдпрддрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБред рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде, рдЕрдкрдбреЗрдЯ рдореЗрдВ рдиреНрдпреВрдирддрдо рд╕рдордп рд▓рдЧреЗрдЧрд╛ (рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдлрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЪреЗрдХрдЖрдЙрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)
2. рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдХрдорд┐рдЯ рдФрд░ рд░рди рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХреЗ рдмрд╛рдж рдлрд╛рд╕реНрдЯ рдмрд┐рд▓реНрдб
рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо msbuild рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
<? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "utf-8" ?>
<рдкреНрд░реЛрдЬреЗрдХреНрдЯ DefaultTargets = "рдЯреЗрд╕реНрдЯ" xmlns = " schemas.microsoft.com/developer/msbuild/2003" >
<! - MSBuild рдХрд╛рд░реНрдп рдЖрдпрд╛рдд рдХрд░реЗрдВ ->
<рдЖрдпрд╛рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ = "$ (MSBuildExtensionsPath) \ MSBuildCommunityTaches \ MSBuild.Community.Tasks.Targets" />
<рдкреНрд░реЙрдкрд░реНрдЯреА рдЧреНрд░реБрдк >
<рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрдВрдбреАрд╢рди = "'$ (рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди)' == '" > рдбрд┐рдмрдЧ </ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди >
<ClassLibraryOutputDirectory > bin \ $ (рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди) </ ClassLibraryOutputDirectory >
< ProjectDir > SomeSolution \ SomeProject </ ProjectDir >
<ProjectTestDir > SomeSolution \ SomeTests </ ProjectTestDir >
<ProjectFile > $ (ProjectDir) \ SomeProject.csproj </ ProjectFile >
<TestProjectFile > $ (ProjectTestDir) \ SomeTests.csproj </ TestProjectFile >
</ рд╕рдВрдкрддреНрддрд┐ рд╕рдореВрд╣ >
<! - рд╡реАрдПрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ ->
<рд▓рдХреНрд╖реНрдп рдирд╛рдо = "рдмрд┐рд▓реНрдб" >
<MSBuild рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ = "$ (рдкреНрд░реЛрдЬреЗрдХреНрдЯрдлрд╛рдЗрд▓)" />
<MSBuild рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ = "$ (TestProjectFile)" />
</ рд▓рдХреНрд╖реНрдп >
<! - рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ ->
<рд▓рдХреНрд╖реНрдп рдХрд╛ рдирд╛рдо = "рдкрд░реАрдХреНрд╖рдг" рдирд┐рд░реНрднрд░рддрд╛ рд╢рдмреНрдж = "рдмрд┐рд▓реНрдб" >
<Exec рдХрдорд╛рдВрдб = "" % PROGRAMFILES% \ NUnit 2.5.10 \ bin \ net-2.0 \ nunit-рдХрдВрд╕реЛрд▓ред Exe "$ (ProjectTestDir) \ $ (ClassLibraryOutputDirectory," SomeTests.dll / xmlConsole " />
</ рд▓рдХреНрд╖реНрдп >
</ рдкреНрд░реЛрдЬреЗрдХреНрдЯ >
рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдХреЗ CI \ Logs рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ MSBuild рдХреЗ рдкрд░рд┐рдгрд╛рдо рдбрд╛рд▓реЗрдВ
3. рдирд┐рд░реНрдорд╛рдг рдкрд░рд┐рдгрд╛рдо рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛
рдЕрдзрд┐рдХрд╛рдВрд╢ CI рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрддреНрд░ рднреЗрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдореВрд▓реА рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдкрддреНрд░ рднреЗрдЬрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдЕрдкрдиреЗ рдореЗрд▓рдмреЙрдХреНрд╕ рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ ICQ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдиреЛрд╕реНрдХрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрд╛ рдЬреЛ рд▓рдЪреАрд▓реЗ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рдВрджреЗрд╢ рдпреВрдЗрдВрд╕ рдХреА рд╕реВрдЪреА рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИред рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдмрд┐рд▓реНрдб рд▓реЙрдЧ рдореЗрдВ рдЦреЛрдЬ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд╕рдВрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ "рдмрд┐рд▓реНрдб рд╕рдлрд▓ рд░рд╣рд╛ред"
рд╕рднреА рдЪрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред
CI \ Run.bat:
рд╕реАрдбреА / рдбреА ...
REM 1. рдЕрдВрддрд┐рдо рд╕реНрд░реЛрдд рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
svn рдЕрджреНрдпрддрди
REM 2. рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ
" % windir % \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe" Master.build> CI \ Logs \ build.log
REM 3. рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рднреЗрдЬреЗрдВ
рд╕реЗрдЯ "рд╕рдВрджреЗрд╢ = рдмрд┐рд▓реНрдб рд╕рдлрд▓ рд░рд╣рд╛ред"
рдЦреЛрдЬреЗрдВ "рдмрд┐рд▓реНрдб рд╕рдлрд▓ рд░рд╣рд╛ред" CI \ Logs \ build.log> NUL
рдпрджрд┐ % errorlevel % 1 рд╕реЗрдЯ "рд╕рдВрджреЗрд╢ = рдмрд┐рд▓реНрдб рд╡рд┐рдлрд▓ рд░рд╣рд╛ред"
CI \ Notifier \ ICQSender.exe " % рд╕рдВрджреЗрд╢ % "
рдкрд░рд┐рдгрд╛рдо рдПрдХ рдХрд╛рдлреА рд╣рд▓реНрдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реАрдЖрдИ рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЯреВрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рд▓рд╛рднрджрд╛рдпрдХ рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░, рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ, рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдзрд┐рдХ рджреГрд╢реНрдп рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдлрд╛рдИ рдХреЗ рдХрд╛рд░рдг (рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рдХреЛрдИ рдкреИрдХ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдо рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдкреБрдирд╢реНрдЪ: рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░рд╣ рдХрд╛ рдХрд╛рд░рдЦрд╛рдирд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдореБрдЭреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд╛рд╣рд┐рдП рдереА - рдореИрдВ рдПрдХ рд╕рд╛рдЗрдЯ рдкрд░ рдЧрдпрд╛ - рдЙрдкрдпреЛрдЧреА рд╕реБрдЭрд╛рд╡реЛрдВ рдФрд░ рдЪрд╛рд▓ рдХреЗ рд╕рд╛рде рд▓рдЧрд╛рддрд╛рд░ рдкреГрд╖реНрдареЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА - рдЖрдкрдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ - рдЖрдкрдиреЗ рдЗрд╕реЗ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлреЗрдВрдХ рджрд┐рдпрд╛ - рдЖрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдореМрдЬреВрджрд╛ рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЖрдзреБрдирд┐рдХ рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╣реИ рдЬрдм рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХреБрдЫ рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЙрд╕рдХреА рд╕реНрдкрд╖реНрдЯ рддрд╕реНрд╡реАрд░ рдХреБрдЫ рднреА рднреНрд░рдорд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИред