<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=CruiseControl</id>
		<title>CruiseControl - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=CruiseControl"/>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=CruiseControl&amp;action=history"/>
		<updated>2026-05-03T16:18:05Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.26.4</generator>

	<entry>
		<id>https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=10138&amp;oldid=prev</id>
		<title>WikiSysop: 1 версия</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=10138&amp;oldid=prev"/>
				<updated>2008-12-29T11:50:25Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 11:50, 29 декабря 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>WikiSysop</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=10137&amp;oldid=prev</id>
		<title>AndrewSatarin: /* Ссылки */</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=10137&amp;oldid=prev"/>
				<updated>2008-11-26T07:29:24Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Ссылки&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 07:29, 26 ноября 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l89&quot; &gt;Строка 89:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 89:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://en.wikipedia.org/wiki/CruiseControl CruiseControl в Wikipedia]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://en.wikipedia.org/wiki/CruiseControl CruiseControl в Wikipedia]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://cruisecontrol.sourceforge.net Cтраница проекта CruiseControl]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://cruisecontrol.sourceforge.net Cтраница проекта CruiseControl]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== См. также ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Continuous Integration]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[CruiseControl.NET]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Программирование]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Программирование]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>AndrewSatarin</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=9910&amp;oldid=prev</id>
		<title>Andrew: Отмена правки № 9909 участника Andrew (обсуждение)</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=9910&amp;oldid=prev"/>
				<updated>2008-09-12T07:05:10Z</updated>
		
		<summary type="html">&lt;p&gt;Отмена правки № 9909 участника &lt;a href=&quot;/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Andrew&quot; title=&quot;Служебная:Вклад/Andrew&quot;&gt;Andrew&lt;/a&gt; (&lt;a href=&quot;/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:Andrew&amp;amp;action=edit&amp;amp;redlink=1&amp;amp;section=new&quot; class=&quot;new&quot; title=&quot;Обсуждение участника:Andrew (страница не существует)&quot;&gt;обсуждение&lt;/a&gt;)&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 07:05, 12 сентября 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l87&quot; &gt;Строка 87:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 87:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Ссылки =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Ссылки =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;{{Link-to-&lt;/del&gt;wikipedia&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://en.&lt;/ins&gt;wikipedia&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.org/wiki/CruiseControl CruiseControl в Wikipedia]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://cruisecontrol.sourceforge.net Cтраница проекта CruiseControl]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://cruisecontrol.sourceforge.net Cтраница проекта CruiseControl]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Andrew</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=9909&amp;oldid=prev</id>
		<title>Andrew: /* Ссылки */</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=9909&amp;oldid=prev"/>
				<updated>2008-09-10T18:27:16Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Ссылки&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 18:27, 10 сентября 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l87&quot; &gt;Строка 87:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 87:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Ссылки =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Ссылки =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[http://en.&lt;/del&gt;wikipedia&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;.org/wiki/CruiseControl CruiseControl в Wikipedia]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{Link-to-&lt;/ins&gt;wikipedia&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://cruisecontrol.sourceforge.net Cтраница проекта CruiseControl]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [http://cruisecontrol.sourceforge.net Cтраница проекта CruiseControl]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Andrew</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=9665&amp;oldid=prev</id>
		<title>WikiSysop: 1 версия</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=9665&amp;oldid=prev"/>
				<updated>2008-08-04T09:55:46Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 09:55, 4 августа 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' class='diff-multi' lang='ru'&gt;(не показана 1 промежуточная версия 1 участника)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>WikiSysop</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=3221&amp;oldid=prev</id>
		<title>BenderBot: реплицировано из внутренней CustisWiki</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=3221&amp;oldid=prev"/>
				<updated>2007-10-26T11:15:48Z</updated>
		
		<summary type="html">&lt;p&gt;реплицировано из внутренней CustisWiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Введение =&lt;br /&gt;
&lt;br /&gt;
CruiseControl — платформа (серверное приложение) для организации [[Continuous Integration|непрерывной сборки]] написанная полностью на Java.&lt;br /&gt;
* Сайт http://cruisecontrol.sourceforge.net/&lt;br /&gt;
* Лицензия — открытая, BSD-подобная&lt;br /&gt;
&lt;br /&gt;
CruiseControl используется для организации [[Continuous Integration|непрерывной сборки]] проектов, без участия людей (кроме начального этапа конфигурирования). После конфигурирования сервер собирает и тестирует проект при помощи различных внешний инструментов при каждом изменении в репозитории проекта. При помощи него можно сразу отловить новые ошибки возникающии при интеграции кода разных разработчиков и постоянно проверять старые при помощи автоматических тестов.&lt;br /&gt;
&lt;br /&gt;
== Зачем это надо ==&lt;br /&gt;
&lt;br /&gt;
Непрерывная интеграция вещь очень полезная, настроив все правильно один раз можно дальше спать спокойно. Если проект собирается автоматически — значит проблем нет, если не собирается — вы сразу об этом узнаете.&lt;br /&gt;
&lt;br /&gt;
Если к сборке добавить еще и автоматичесикие тесты, то всегда можно быть уверенным в том, что текущая версия в CVS и работает как надо. Всю сборку и тестирование можно проводить при каждом commit`е не тратя никаких усилий (все сам сделает сервер), а возникающие ошибки и несовместимости решать сразу быстро и эффективно.&lt;br /&gt;
Более подробные примеры использования можно найти в первых двух [[#Ссылки|ссылках]].&lt;br /&gt;
&lt;br /&gt;
== Возможности ==&lt;br /&gt;
&lt;br /&gt;
Сервер CruiseControl имеет следующие возможности:&lt;br /&gt;
* работает по расписанию или &lt;br /&gt;
* следит за изменениями:&lt;br /&gt;
** в репозитории [[CVS]] и многих других систем контроля версий&lt;br /&gt;
** в файлах и директориях&lt;br /&gt;
** в сборке других проектов&lt;br /&gt;
* сам вытащит новую версию из [[CVS]](и других)&lt;br /&gt;
* соберет используя Ant, Maven, скрипт&lt;br /&gt;
* опубликует результаты:&lt;br /&gt;
** в зависамости от результата сборки&lt;br /&gt;
** на web-сервере входящем в комплект&lt;br /&gt;
** разошлет почту&lt;br /&gt;
** выполнит скрипт (shell, bat)&lt;br /&gt;
** выполнит скрипт Ant&lt;br /&gt;
** много других способов&lt;br /&gt;
* конфигурируется одним XML файлом — его тоже можно хранить под [[CVS]]&lt;br /&gt;
&lt;br /&gt;
== Конфигурационный файл ==&lt;br /&gt;
&lt;br /&gt;
Это XML файл в котором описано как, когда и что должен делать CruiseControl.&lt;br /&gt;
Самый верхний уровень это проект — все остальные настройки в нем. Проектов может быть много и они могут собираться или не собираться в зависимости друг от друга.&lt;br /&gt;
&lt;br /&gt;
Внутри файла:&lt;br /&gt;
* &amp;lt;property&amp;gt; — переменные или файл переменных&lt;br /&gt;
* &amp;lt;bootstrappers&amp;gt; — то, что выполняется до сборки&lt;br /&gt;
* &amp;lt;listeners&amp;gt; — в основном для отображения статуса на web-сервере&lt;br /&gt;
* &amp;lt;modificationset&amp;gt; — за какими изменениями следить&lt;br /&gt;
* &amp;lt;schedule&amp;gt; — собственно расписание сборки (см. [[#Цикл сборки]])&lt;br /&gt;
* &amp;lt;publishers&amp;gt; — публикация результатов&lt;br /&gt;
 &lt;br /&gt;
== Цикл сборки ==&lt;br /&gt;
&lt;br /&gt;
В цикл сборки запускается процесс-демон, который периодически выполняет действия описанные в конфигурационном файле в элементе &amp;lt;schedule&amp;gt;. Собирать проект можно: &lt;br /&gt;
* скриптом&lt;br /&gt;
* Maven 1 или Maven 2&lt;br /&gt;
* Ant&lt;br /&gt;
* NAnt&lt;br /&gt;
Но за один раз запускается только один сборщик, а не все подряд как этого иногда хочется(см. [[#Проблемы/решения]]).&lt;br /&gt;
Сборщик запускается только если были обнаружены изменения описанные в &amp;lt;modificationset&amp;gt;, перед сборкой запускается &amp;lt;bootstrappers&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Публикация результатов ==&lt;br /&gt;
&lt;br /&gt;
Публикация результатов — важная часть процесса непрерывной интеграции, это единственный способ CruiseControl сообщить вам, что все хорошо/плохо. В CruiseControl есть много разных способов опубликовать результаты. Основной из них web-сервер на котором показаны результаты всех билдов и можно посмотреть их логи, для публикации на нем ничего делать не надо. В принципе от web-сервера можно отказаться, не запускать его и использовать только e-mail оповещение.&lt;br /&gt;
Еще можно использовать другие методы публикации:&lt;br /&gt;
* скрипт Ant&lt;br /&gt;
* скрипт&lt;br /&gt;
* выкладывание артефактов на web-сервере&lt;br /&gt;
* e-mail&lt;br /&gt;
* публикация статуса сборки — для последующего за ним слежения с сервера&lt;br /&gt;
Метод(-ы) публикации настраивается внутри элемента &amp;lt;publishers&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Проблемы/решения =&lt;br /&gt;
&lt;br /&gt;
* закладка с метриками не работает под Linux если нет доступа к графическому дисплею(X-консоли)&lt;br /&gt;
 запускать CruiseControl из-под Х-консоли и блокировать консоль&lt;br /&gt;
* задокументированная особенность: за раз выполняется только один билдер т. е. для такой конфигурации:&lt;br /&gt;
     &amp;lt;schedule interval=&amp;quot;${cc.interval}&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;exec command=&amp;quot;sh&amp;quot; args=&amp;quot;${mvn.before}&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;maven2&lt;br /&gt;
             mvnscript=&amp;quot;${mvn.script}&amp;quot; &lt;br /&gt;
 	     pomfile=&amp;quot;${mvn.file}&amp;quot;&lt;br /&gt;
 	     goal=&amp;quot;${mvn.goal}&amp;quot;&lt;br /&gt;
 	/&amp;gt;&lt;br /&gt;
     &amp;lt;/schedule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет выполнен ЛИБО exec ЛИБО maven2, что плохо, приходится все сливать в один скрипт.&lt;br /&gt;
Но есть и свои преимущества можно сделать разные билды(например обычный и с тестами) и выполнять с разной частотой.&lt;br /&gt;
&lt;br /&gt;
В последних версиях для удобства есть метод сборки &amp;lt;composite&amp;gt;, в который можно включать другие методы сборки. В этом случае все они будут выполнены последовательно, если не произойдет сбоя.&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
* [http://en.wikipedia.org/wiki/CruiseControl CruiseControl в Wikipedia]&lt;br /&gt;
* [http://cruisecontrol.sourceforge.net Cтраница проекта CruiseControl]&lt;br /&gt;
&lt;br /&gt;
[[Category:Программирование]]&lt;br /&gt;
[[Category:Тестирование программного обеспечения]]&lt;br /&gt;
&lt;br /&gt;
{{replicate-from-custiswiki-to-lib}}&lt;/div&gt;</summary>
		<author><name>BenderBot</name></author>	</entry>

	<entry>
		<id>https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=9664&amp;oldid=prev</id>
		<title>AndrewSatarin: /* Ссылки */</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=CruiseControl&amp;diff=9664&amp;oldid=prev"/>
				<updated>2007-10-25T08:40:13Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Ссылки&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 08:40, 25 октября 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>AndrewSatarin</name></author>	</entry>

	</feed>