Есть два способа сделать шаг загрузки артефактов более эффективным.
Вариант 1: использовать задачу PowerShell для загрузки обновленных файлов в последнем коммите
Сначала удалите артефакты докера в конвейере выпуска. Затем добавьте задачу PowerShell вместо (первая задача) в начале каждой среды выпуска.
И PowerShell для загрузки только для измененных файлов, как показано ниже:
mkdir partrepo
cd partrepo
git init
git remote add up -f https://Personal%20Access%20Token:{PAT}@{account}.visualstudio.com/{project}/_git/{repo}
#Or you can use the new Azure devops url instead
$files=$(git diff up/master up/master~ --name-only)
echo "changed files: $files"
$t=$files -is [array]
if ($files -is [array])
{
echo "multiple files updated"
for ($i=0;$i -lt $files.Length; $i++)
{
$tfile=$files[$i]
git checkout up/master -- $tfile
}
}
else
{
git checkout up/master -- $files
}
Примечание: вы можете использовать версию задачи PowerShell 2.*
, так как опция Fail on Standard Error по умолчанию отключена.
Вариант 2: загрузить только последний коммит из git repo
Вы также можете указать малая глубина извлечения как 1, тогда шаг артефакта вниз загрузит только последний коммит. И это резко уменьшит размер артефакта.