Статьи

Автоматизация сборки с использованием Jenkins и TFS Version Control

Я использовал несколько систем контроля версий для моего исходного кода и исследовательских проектов. Недавно я объединил их в TFS и Git. Я начал использовать Visual Studio Online для своей исследовательской работы, CodePlex для моих фреймворков и инструментов с открытым исходным кодом и GitHub для кода блога. Многие из этих решений основаны на целевой аудитории и характере моей работы (код). TFS, являясь отличным инструментом ALM, предлагает больше, чем просто систему контроля версий, которая может быть особенно полезна, когда вам приходится работать с большими командами или у вас есть проект с открытым исходным кодом, сборку которого вы хотели бы автоматизировать. Для моих исследований (это происходит дома) я увлекался автоматизацией сборки для проекта CInject .

Visual Studio Online предлагает полный пакет непрерывной интеграции и доставки в службы Azure, но такой функции нет для репозиториев TFS CodePlex. Для этого случая я начал оценивать другие платформы CI, такие как CruiseControl.NET, TeamCity и Jenkins. Я остановил свой выбор на Jenkins за его простоту использования, чрезвычайно легкое развертывание, мое знакомство с ним и затраты на настройку без нуля.

В этом примере мы использовали бы репозиторий CodePlex, но метод можно использовать с любым локальным репозиторием TFS или даже с Visual Studio Online.

Скачивание последней версии

Прямая ссылка на версию Jenkins для Windows доступна здесь . Установка этого требует административных прав, если вы делаете это на Windows 7+ или Windows Server 2008+

После завершения установки у вас будет запущена служба в диспетчере служб

образ

Если эта служба запущена, вы можете получить доступ к консоли Jenkins по адресу:  http: // localhost: 8080 /

Скачать плагин TFS

Посетите страницу управления плагинами [Управление Jenkins> Управление плагинами> Доступно] ( ярлык ) и найдите плагин Team Foundation Server . Нажмите на флажок и нажмите кнопку «Установить без перезагрузки»

образ

Если ваша сборочная машина / сервер имеет ограниченный доступ к Интернету, вы получите ошибку при загрузке файла.

java.io.IOException: Failed to download from http://updates.jenkins-ci.org/download/plugins/tfs/3.1.1/tfs.hpi
    at hudson.model.UpdateCenter$UpdateCenterConfiguration.download(UpdateCenter.java:781)
    at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:1125)
    at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:1285)
    at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1103)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:104)
    at java.lang.Thread.run(Unknown Source)

В таких случаях вам необходимо вручную загрузить последнюю версию плагина и скопировать ее в

<<JenkinsInstallDirectory>>\plugins

образ

Вам нужно будет перезапустить сервис Jenkins, если вам пришлось установить его вручную.

Загрузка Team Explorer везде

Если вы запускаете этот процесс на настольном компьютере и являетесь разработчиком .NET, скорее всего, у вас установлена ​​Visual Studio 2012+. В таких случаях у вас будут исполняемые файлы Team Foundation, а также путь к исполняемым файлам TF будет также указан в системной переменной PATH.

Если путь к исполняемому файлу TF не является частью системной переменной PATH, вам придется настроить Jenkins для просмотра нужного каталога ( ярлык ). На моем домашнем ноутбуке я настроил его как

образ

Если вы используете это на своем Windows Server, на котором установлена ​​только платформа .NET, вам придется установить TEE. Если вы используете это на сервере Unix / Linux, вам все равно понадобится TEE. Это бесплатный исполняемый файл от Microsoft и очень тонкий клиент. Вы можете скачать и установить его отсюда и настроить конфигурацию как

    X:\Jenkins\TEE-CLC-12.0.1\TEE-CLC-12.0.1\tf.cmd

Вам нужно будет запустить tf eula в командной строке, чтобы принять соглашение об использовании и условия и нажать «y» при появлении соответствующего запроса . Аналогичная конфигурация должна быть сделана для Unix / Linux. Один и тот же файл CMD будет работать для платформ Unix и Linux.

Настройка TFS-репозитория в Jenkins

Нажмите на ссылку New Job в левом меню, чтобы создать новый профиль сборки ( ярлык )

образ

На следующем экране вы можете настроить конфигурацию, чтобы включить одновременную сборку, количество повторов и т. Д. Но в этой статье основное внимание будет уделено настройке рабочей области TFS. Поэтому, чтобы получить конфигурацию TFS, посетите страницу инфраструктуры CodePlex и получите URL-адрес TFS. Если вы настраиваете для репозитория, отличного от CodePlex, вы можете проверить URL с вашим администратором

образ

Скопируйте ссылку на Jenkins, как показано ниже, и нажмите «Применить».

образ

Теперь вы можете запустить Build for environment, и он должен успешно завершиться. 

Вы можете использовать этот метод с любым репозиторием TFS — как локальным, так и Visual Studio Online. Здесь следует отметить одну вещь — каждый репозиторий TFS (здесь https://tfs.codeplex.com:443/tfs ) имеет несколько коллекций (TFS01…. TFSxx), и у каждой коллекции есть проекты. URL-адрес сервера должен включать имя коллекции, тогда как путь к проекту должен быть относительным путем ($ /…) к реальному проекту. 

Использование CodePlex SVN Path с Jenkins

Вы также можете использовать ссылку SVN для доступа к хранилищу Codeplex. Обратите внимание: если вы используете репозиторий не из Codeplex, у вас может не быть SVN-URL.

образ

Таким образом, вы можете выбрать любой метод, если вы используете Jenkins для CodePlex, а также можете настроить автоматизацию сборки и непрерывную интеграцию.

Надеюсь это поможет.