Как «уменьшить» путь вывода Jenkins Pipeline - PullRequest
0 голосов
/ 13 июня 2018

До недавнего времени мы создавали наше решение без какого-либо "конвейера" в Jenkins, поэтому в настоящее время я нахожусь в процессе перевода нашей сборки на многоотраслевые конвейеры.

Проблема, с которой я сталкиваюсь, заключается в том, чтоУ нас много структуры и нашего решения (много подпапок, а иногда и несколько громких имен).

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

D:\ws\ght-build_feature_pipelines-TMQ33LB5OQIQ5VXVMFKFDG2HWCD4MUOGEGUWJUOMZ5D2GI42BIQA

Это очень долго, и теперь мы достигаем ограничения в 260 символов MSBuild:

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets (2991,5): ошибка MSB3553: файл ресурсов "obj \ Release \ xx.aaaaaaaaaa.yyy.bbbbbb.dddddddddddd.yyyyyyy.ddres."имеет неверное имя.Метаданные элемента "% (FullPath)" нельзя применить к пути "obj \ Release \ xx.aaaaaaaaaa.yyy.bbbbbb.dddddddddddddd.yyyyyyy.vvv.dddddddddd.Resources.resources".Указанный путь, имя файла или оба являются слишком длинными.Полное имя файла должно быть не более 260 символов, а имя каталога должно быть не более 248 символов.[D: \ WS \ GHT-build_feature_pipelines-TMQ33LB5OQIQ5VXVMFKFDG2HWCD4MUOGEGUWJUOMZ5D2GI42BIQA \ Src \ BBBBBB \ DDDDDD \ DDDDDDDDDDDDDD \ YYYYYYY \ xx.aaaaaaaaaa.yyy.bbbbbb.dddddddddddddd.yyyyyyy.vvv \ xx.aaaaaaaaaa.yyy.bbbbbb.dddddddddddddd.yyyyyyy.vvv.csproj]

У нас так много случаев, когда длина велика, что это действительно большая работа по рефакторингу всего, поэтому я смотрю, как указать jenkins меньший путь?

Ответы [ 2 ]

0 голосов
/ 19 июня 2018

Что я наконец-то сделал:

pipeline {
    agent {
        node{
            label 'windows-node'
            customWorkspace "D:\\ws\\${env.BRANCH_NAME}"            
        }
    }
    options{
        skipDefaultCheckout()
    }
...
}

И у меня есть шаг, который делает заказ.Мне было проще вести себя как на рабочем месте, не затрагивая глобальные настройки jenkins.

0 голосов
/ 14 июня 2018

На самом деле есть свойство java, которое вы можете задать, чтобы указать длину имени каталога, например:

-Djenkins.branch.WorkspaceLocatorImpl.PATH_MAX=20

Чтобы сделать его постоянным, вы должны указать это свойство в файле конфигурации запуска jenkins java.

Вы также можете прочитать и написать это свойство, используя консоль сценария jenkins для временных изменений или просто попробовать, как только оно вступит в силу, например,

println jenkins.branch.WorkspaceLocatorImpl.PATH_MAX
jenkins.branch.WorkspaceLocatorImpl.PATH_MAX = 20
println jenkins.branch.WorkspaceLocatorImpl.PATH_MAX

Установка этого значения в 0 измененийповедение генерации пути.

Для получения подробной информации, пожалуйста, проверьте:https://issues.jenkins -ci.org / просмотр / JENKINS-34564 https://issues.jenkins -ci.org / просмотр / JENKINS-38706

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...