Как лучше всего скачать исходные файлы из VSTS?
Мне нужно регулярно загружать полный набор последнего кода для конкретного проекта из учетной записи VSTS (рабочая область сервера) в папку на файловом сервере для архивирования только для чтения.
В настоящее время я захожу на веб-портал и нажимаю " Скачать как ZIP" для выбранного проекта и сохраняю его на файловом сервере.
Но я бы хотел более автоматизированный способ, желательно тот, который я могу запланировать для запуска с самого файлового сервера, на котором не будет установлена Visual Studio или кэшированные учетные данные для сетевой учетной записи.
Подойдет любое из следующих решений:
- Постоянный URL для загрузки последнего кода в виде zip-файла
- REST URL для получения всех последних файлов
- Инструмент командной строки для подключения к учетной записи VSTS и загрузки всех последних файлов для определенного проекта в указанную локальную папку, а не в локальную папку по умолчанию
Хорошо бы иметь:
- Возможность загрузки в виде ZIP или рекурсивной папки файлов
- Установить дату изменения файлов в качестве времени регистрации
- Удалите информацию о привязке исходного кода из загруженных файлов
- Предоставьте учетные данные пользователя как часть командной строки, не предполагая использование кэшированных учетных данных по умолчанию на компьютере
2 ответа
Вы можете использовать наши инструменты в Visual Studio, Eclipse или из командной строки, чтобы сохранить локальную копию вашего исходного кода на вашем компьютере.
Более подробную информацию вы можете найти в официальном руководстве: Скачать (получить) файлы с Сервера.
Кроме того, если вы хотите скачать свой код в виде почтового индекса:
Вы можете нажать на любой многоточие, чтобы найти меню, которое содержит Download as Zip
вариант.
Если вы хотите автоматизированный способ, предложите использовать конвейер сборки. Вы можете отключить шаги получения исходного кода по умолчанию в определении сборки. И используйте свой собственный скрипт powershell, чтобы получить файлы source/ pull в рабочую область. Как, пожалуйста, следовать: Может ли он игнорировать / отключать первый шаг Получить исходный код в vNext Build?
Это загрузит файлы в ваш агент сборки, если это не машина, на которой вы работаете. Вы можете объединить задачу " Архивировать файлы и Windows Machine File Copy" и выбрать " Запланированный триггер" в своем определении сборки.
Powershell
$tfsurl = "https://tfs.alogent.com/tfs"
$collection ="/defaultcollection"
$project = "/MyProject"
$api = "/_api/_versioncontrol/itemContentZipped?repositoryId=&path="
$path = "$/MyProject/Source/Datafolder"
Invoke-WebRequest -UseDefaultCredentials -Uri "$tfsurl$collection$project$api$path" -OutFile ".\DataFolder.zip"
Expand-Archive .\Datafolder.zip
Вы можете рассмотреть возможность использования определения агента + сборки для загрузки исходного кода (это может происходить по расписанию или срабатывать после каждой регистрации). Это может легко включать сжатие в ZIP-файл и некоторые команды копирования.
Дополнительным преимуществом было бы то, что определение сборки не должно повторно загружать весь репозиторий исходного кода при каждом запуске - вместо этого его можно настроить так, чтобы он просто загружал, чтобы получить произошедшие изменения.