Как мне создать ZIP-файл моих сборок Cruise Control? - PullRequest
2 голосов
/ 06 ноября 2008

Я использую CruiseControl.NET, чтобы автоматически создавать свои веб-приложения .NET 3.5, что прекрасно работает. Однако есть ли способ автоматически создать ZIP-файл этих сборок и поместить ZIP-файлы в отдельный каталог?

Я видел, что это возможно с помощью NAnt, но не могу найти пример того, как заставить это работать.

Кто-нибудь может предложить помощь / примеры?

Ответы [ 4 ]

2 голосов
/ 18 мая 2009

Я только что добавил такую ​​задачу Nant на нашу машину CC.

См. http://nant.sourceforge.net/release/latest/help/tasks/zip.html

Обратите внимание, что при первоначальном просмотре архива zip может показаться, что все файлы находятся на одном уровне, т.е. нет папок, но на самом деле они сохранены.

Обратите внимание, как можно исключать типы файлов или папок.

Вы можете использовать только те типы файлов, которые вам нужны, и исключать остальные.

Сначала определите свойства, где исходные файлы - allcode.dir, а также имя и местоположение zip-файла sourcebackup.zip

Теперь вот задача nant

 <zip zipfile="${sourcebackup.zip}" includeemptydirs="true" verbose="true"> 
 <fileset basedir="${allcode.dir}"> 
      <include name="**/*" /> 
      <exclude name="**/_resharper*/**" /> 
      <exclude name="**/build/**" /> 
      <exclude name="**/obj/**" /> 
      <exclude name="**/bin/**" /> 
      <exclude name="**/*.dll" /> 
      <exclude name="**/*.scc" /> 
      <exclude name="**/*.log" /> 
      <exclude name="**/*.vssscc" /> 
      <exclude name="**/*.suo" /> 
      <exclude name="**/*.user" /> 
      <exclude name="**/*.pdb" /> 
      <exclude name="**/*.cache" /> 
      <exclude name="**/*.vspscc" /> 
      <exclude name="**/*.msi" /> 
      <exclude name="**/*.irs" /> 
      <exclude name="**/*.exe" /> 
 </fileset> 

<echo message="########## Zipped##########" />

Вызовите это из вашей сборки cc, как и любую другую задачу nant. Лучше всего, если каждый проект CC вызывает одну задачу, если это возможно, тогда вам нужно всего лишь изменить скрипт nant и запустить скрипт nant на локальном компьютере.

Например, в блоке проекта у нас есть единственная цель "build", которая в рамках своей работы называет ZipSource

<targetList>
          <target>Build</target>
        </targetList>

Мы используем вышеупомянутое для проекта BizTalk.

Наслаждайтесь.

1 голос
/ 06 ноября 2008

Если вы используете Nant, то вам не подходит Zip-задача ?

0 голосов
/ 06 ноября 2008

@ Дэвид: Задача NAnt Zip - это то, что мне нужно, да, но я спрашиваю, как интегрировать ее как часть автоматической сборки CruiseControl.NET. Если вы посмотрите на документацию NAnt для конфигурации круиз-контроля , она не даст понять, смогу ли я запустить задачу NAnt изнутри узла <tasks> XML в моей конфигурации CruiseControl - там только сказано что он может быть частью <schedule>.

Я нашел несколько примеров настройки конфигурации CruiseControl и несколько примеров задач NAnt, но ничего, что объединяет их: в частности, архивирование сборки CruiseControl.

Если у кого-нибудь есть образец XML их конфигурации CruiseControl, подключенный к задаче NAnt zip, опубликуйте примеры здесь.

Приветствие.

0 голосов
/ 06 ноября 2008

Мы архивируем исходники проекта CruiseControl.NET

но мы используем муравья

<target name="zipProject">
   <mkdir dir="output"/>
   <zip destfile="output\sources.zip" basedir="C:\project\src" />
</target>

я не знаю о nant, но я ожидаю, что он будет похож

...