Вопрос по jenkins – Как вы можете использовать несколько репозиториев TFS в одной работе Jenkins?

6

У меня есть репо с 2 подпапками $ / Repo / project и $ / Repo / thirdparty. Мне нужно вытащить их обоих в Дженкинс за одну сборку. Естественно, я попытался просто потянуть $ / Repo, но это дает мне кучу других проектов наряду с ложными опросами (он будет собираться каждый раз, когда НИЧЕГО проверяется в $ / Repo). Я попытался использовать плагин multi-scm, который работает, но не сохраняет конфигурацию (раздражает, но не непригоден). Я попытался использовать обычный плагин TFS и вручную помещать вызовы для другого репо в команду Windows (это не работало, даже если я связал их с различными папками).

Каков наилучший способ приблизиться к этому? Какая-то подмена, которая тянет третье лицо? Исправить плагин для нескольких scm? Есть ли какая-то команда или триггер tfs, чтобы вытащить другой репо, когда вы тянете проект?

Как вы думаете, увольнение с работы, чтобы вытащить что-то третье стороны (например, отдельную зависимую работу) или что-то получится? Tyler Smith
Да, они все являются частью одного репо. Tyler Smith
Тогда ты ... ну ... облажался. Есть два пути - либо реализовать функцию множественного репо в плагине TFS (как у SVN и git уже есть), либо с помощью multi-scm-plugin - но она была разработана с другой целью. Во всяком случае, пока нет вариантов. Łukasz Rżanek
Есть идеи, почему плагин + ручные вызовы не работают? Dave Patterson
Используете ли вы один и тот же тип хранилища для всех проектов? Все из TFS? Łukasz Rżanek

Ваш Ответ

6   ответов
0

омощью как TF, так и PowerShip Snapin Microsoft.TeamFoundation.PowerShell.

В основном рабочий процесс выглядит следующим образом:

Get-TFsWorkspace (Powershell: для проверки рабочего пространства)

TF Workspace / new (Создать рабочее пространство)

TF Workfold / unm, ap (используйте это, чтобы удалить $ / mapping по умолчанию, который создается при создании рабочей области)

TF Workfold / map (для отображения определенных мест, например, $ / Repo / project)

TF Scorch (чтобы удалить любые артефакты, если они есть)

TF Get (Получить код)

Люди могут использовать и другие методы, но это позволит вам также использовать функциональность Workfold / Cloak.

Ура,

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

5

но это работает.

Программа, которую я пытаюсь создать, использует$/Department/Framework/Main (какworkspace\Framework), а также$/Department/Products/TheProgram/Main (какworkspace\TheProgram).

Я создал три рабочих места в Дженкинсе, каждое из которых было «вниз по течению» другого:

Framework-Get: normal source code triggering on TFS' Project Path of $/Department/Framework/Main. No build step. TheProgram-Get: normal source code triggering on TFS' Product Path of $/Department/Products/TheProgram. No build step. TheProgram-Build: No source code control. But the build steps xcopy's the source from the above two steps. Then, you can run a normal build step.

Первый этап сборки Program-Build представляет собой пакетную команду Windows:

REM ====================================
REM First Get the Framework folder:
rmdir /s/q Framework
mkdir Framework
xcopy /y /q /e ..\..\Framework-Get\Workspace\Framework Framework

REM ====================================
REM Then Get the TheProgram Folder:
rmdir /s/q TheProgram 
mkdir TheProgram 
xcopy /y /q /e ..\..\TheProgram-Get\Workspace\TheProgram TheProgram

Вторым этапом сборки был простой вызов муравья. Но вы можете использовать msbuild или что-нибудь еще здесь.

Error: User Rate Limit Exceeded
2

извлечение источников из разных мест. Несколько-scm-плагин может быть ответом, но, как вы указали в вопросе, на данном этапе это действительно не вариант. Насколько я понимаю, на самом деле есть только возможные решения для вас:

Create a workspace within TFS that will include all the neccesary imports. I use this functionality in my every-day encounters with TFS, although I have never a chance to use that with Jenkins plugin. It might work, it might not. You can use, and please - this is a quite serious option, at least for me - git. There is a git-tfs and import all of the required projects into git repository. And having them in git will open a bunch of possibilities for you, including using separate repos for every folder, using git modules, git externals... and so on. So, at least for me, it is a valid option, although it seems like an ugly workaround at the first look...
Error: User Rate Limit Exceeded Tyler Smith
Error: User Rate Limit ExceededYouError: User Rate Limit ExceededJenkinsError: User Rate Limit Exceeded
0

чтобы создать два задания, одно из которых просто загружает вашу зависимость, а другое - для сборки.

В моем случае я управлял сборкой со свойствами Maven, например:

pom.xml
<properties>
  <my.dir>../MyDir</wsdl.dir>
</properties>
Jenkins Build
Goals clean package -U -Dmy.dir=${WORKSPACE}/../../another-build/workspace/MyDir
1

$\Repo что вас не интересует. При проверке скрытых папок сборка не запускается. К сожалению, это может быть много папок, и вас интересуют только две - вам нужно будет поддерживать список скрытых папок по мере добавления новых.

Мы избегаем плагин TFS и вместо этого создаем сценарии настройки наших рабочих пространств TFS через шаг powershell с использованием командной строки tfs. В каждой сборке указываются нужные ей папки, а скрипт заботится о том, чтобы скрыть / раскрыть оставшуюся часть.

0

что Multiple SCM 0.5 работает с плагином Team Foundation Server 4.0

Однако опрос, похоже, нарушается.

Похожие вопросы