Можно ли загружать файлы в процессе сборки на DevOps Azure? - PullRequest
0 голосов
/ 17 июня 2019

Мы начинаем использовать Azure DevOps для создания и развертывания моего приложения.В настоящее время мы не загружаем изображения приложений в наш репозиторий.Я хотел бы знать, смогу ли я загрузить все изображения в артефакт, который будет сгенерирован во время сборки.

Мой конвейер yml: триггер: - разработать

пул: vmImage:'windows-latest'

переменные: решение: '** / *. sln' buildPlatform: 'Any CPU' buildConfiguration: 'Release'

шаги: - задача: NuGetToolInstaller @ 0

  • задача: NuGetCommand @ 2 входа: restoreSolution: '$ (решение)'

  • задача: Npm @ 1 входы: команда: 'установить' workingDir: 'applicationFolder / app'

  • задача: VSBuild @ 1 входные данные: решение: '$ (решение)' msbuildArgs: '/ p: DeployOnBuild = true / p: WebPublishMethod = Package / p: PackageAsSingleFile = true / p: SkipInvalidConfigurations = true /p:PackageLocation="$(build.artifactStagingDirectory) "'платформа:' $ (buildPlatform) 'конфигурация:' $ (buildConfiguration) '

  • задача: PublishBuildArtifacts @ 1 входные данные: PathtoPublish: '$ (Build.ArtifactStagingDirectory)' ArtifactName: 'drop' publishLocation: 'Контейнер'

1 Ответ

0 голосов
/ 18 июня 2019

Можно ли загружать файлы во время конвейера сборки в DevOps Azure?

Краткий ответ - да.

Нет готовой задачи для загрузкифайл с FTP-сервера.Только Задача загрузки по FTP для загрузки файла на FTP-сервер не загружается.

Таким образом, для разрешения проблемы мы могли бы использовать сценарии powershell для подключения к FTP-серверу и загрузки файлов:

Сценарии, такие как:

#FTP Server Information - SET VARIABLES
$ftp = "ftp://XXX.com/" 
$user = 'UserName' 
$pass = 'Password'
$folder = 'FTP_Folder'
$target = "C:\Folder\Folder1\"

#SET CREDENTIALS
$credentials = new-object System.Net.NetworkCredential($user, $pass)

function Get-FtpDir ($url,$credentials) {
    $request = [Net.WebRequest]::Create($url)
    $request.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
    if ($credentials) { $request.Credentials = $credentials }
    $response = $request.GetResponse()
    $reader = New-Object IO.StreamReader $response.GetResponseStream() 
    while(-not $reader.EndOfStream) {
        $reader.ReadLine()
    }
    #$reader.ReadToEnd()
    $reader.Close()
    $response.Close()
}

#SET FOLDER PATH
$folderPath= $ftp + "/" + $folder + "/"

$files = Get-FTPDir -url $folderPath -credentials $credentials

$files 

$webclient = New-Object System.Net.WebClient 
$webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass) 
$counter = 0
foreach ($file in ($files | where {$_ -like "*.txt"})){
    $source=$folderPath + $file  
    $destination = $target + $file 
    $webclient.DownloadFile($source, $target+$file)

    #PRINT FILE NAME AND COUNTER
    $counter++
    $counter
    $source
}

Сертификат поступает от: PowerShell Подключитесь к FTP-серверу и получите файлы .

Затем опубликуйте эти файлы загрузки в артефактах с помощью задачиPublishBuildArtifacts.

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

...