Как настроить TeamCity с приватными файлами?

Я настраиваю TeamCity для непрерывной интеграции и (надеюсь) непрерывного развертывания. Некоторые из этапов сборки будут включать частные файлы, например.

  • .snk файлы для сильных имен .NET сборки
  • файлы паролей/токенов для публикации артефактов (например, для NuGet или CodePlex)

Поскольку эти файлы содержат личные данные, я не хочу помещать их в (общедоступную) систему управления версиями.

Я настраиваю http://teamcity.codebetter.com для AutoFixture, поэтому у меня нет физического доступа к серверу. Я надеялся на функцию, которая позволила бы мне загружать такие файлы, но не могу найти ничего подобного.

Каким будет наиболее подходящее решение?

Ответ 1

TeamCity поддерживает несколько корней VCS, поэтому вы можете просто добавить дополнительный корень VCS с этими приватными файлами.

Очевидно, это потребует, чтобы второй репозиторий был приватным, но это то, что вы хотите любым способом. Наличие этих файлов в контроле источника - это отличная вещь.

Ответ 2

Я бы поставил файлы, которые мне нужны в исходном элементе управления, но сначала их зашифровал. Затем я установил параметр в сборке, который был ключевой фразой или ключом, необходимым для дешифрования файлов. Сборка будет расшифровывать файлы, независимо от того, были ли они подписаны или опубликованы, а затем удалить их (стереть их, если система разрешает такие). Этого должно быть достаточно, чтобы держать вещи в безопасности, если город команды не скомпрометирован, и если это вы, в любом случае, потоплены.

В зависимости от используемых средств управления источниками возможно, что файлы могут быть видны только определенным пользователям, прошедшим проверку подлинности. У Perforce есть такая возможность, но я никогда не видел ничего для более популярных систем DVCS.