Дженкинс использует команду git bash find в «Выполнить пакетный файл Windows» после обновления клиента git - PullRequest
0 голосов
/ 17 января 2019

«внезапно» после обновления с git v1.19 до v2.16.2 на наших работающих сборочных узлах начался сбой шага сборки «Execute Windows batch» по команде FIND.

where find внутри вакансии возвращается

C:\devtools\Git\usr\bin\find.exe
C:\Windows\System32\find.exe
C:\Windows\SysWOW64\find.exe

where find внутри простого cmd отсутствует первый ряд:

C:\Windows\System32\find.exe
C:\Windows\SysWOW64\find.exe

При вызове напрямую из cmd без Jenkins скрипт сборки работает отлично. set PATH Там возвращается:

C: \ devtools \ modelsim \ win32pe; C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin; C: \ Program Files (x86) \ Наборы ресурсов Windows \ Инструменты \; C: \ ProgramData \ Oracle \ Java \ javapath; C: \ Windows \ system32; C: \ Windows, C: \ Windows \ System32 \ Wbem; C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \; C: \ DevTools \ CMake \ Bin; C: \ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn \; C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript \ 1.0 \; C: \ Windows \ SysWOW64 \; C: \ devtools \ Anaconda3; C: \ devtools \ Anaconda3 \ Scripts; C: \ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn \; C: \ Program Files (x86) \ Windows Kits \ 10 \ Windows Performance Toolkit \; C: \ devtools \ Git \ cmd ; C: \ DevTools \ Git \ ЦМД, C: \ DevTools \ Git \ Bin; C: \ DevTools \ апач-муравей-1.9.4 \ Bin; C: \ DevTools \ Anaconda3; C: \ Qt \ Tools \ QtCreator \ бен; C: \ DevTools \ CMake \ Bin

При просмотре в Jenkins (через узел => системная информация) это выглядит так:

C: \ devtools \ Git \ mingw64 \ bin; C: \ devtools \ Git \ usr \ bin; C: \ Users \ ci-slave \ bin; C: \ devtools \ modelsim \ win32pe; C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin; C: \ Program Files (x86) \ Комплекты ресурсов Windows \ Инструменты; C: \ ProgramData \ Oracle \ Java \ javapath; C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Windows \ System32 \ WindowsPowerShell \ v1.0; C: \ devtools \ CMake \ bin; C: \ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn; C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript \ 1.0; C: \ Windows \ SysWOW64; C: \ devtools \ Anaconda3; C: \ devtools \ Anaconda3 \ Scripts; C: \ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn; C: \ Program Files (x86) \ Windows Kits \ 10 \ Windows Performance Toolkit; C: \ devtools \ Git \ cmd; C: \ devtools \ Git \ usr \ bin; C: \ devtools \ apache-ant-1.9.4 \ Bin; C: \ Qt \ Tools \ QtCreator \ Bin

Первые три записи отличаются, но почему? Похоже, виновником является C: \ devtools \ msysgit \ git-cmd.bat:

@rem Get the absolute path to the current directory, which is assumed to be the
@rem Git installation root.
@for /F "delims=" %%I in ("%~dp0") do @set git_install_root=%%~fI
@set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%git_install_root%\cmd;%PATH%

Я немного неохотно изменяю этот скрипт, чтобы присоединить его к правой стороне PATH, потому что я не могу оценить последствия для заданий по сборке других отделов, которые выполняют большое количество мамбо на этапах сборки сценария оболочки.

Интересно, действительно ли это серьезное изменение в поведении было вызвано обновлением git или в нем была какая-то ошибка? Эта строка, кажется, находится в их коде уже более девяти лет .

Также мне любопытно, есть ли решения, чтобы исправить это без необходимости проверять / изменять каждый скрипт сборки (например, добавляя% windir% \ system32 перед каждой командой FIND)?

Большое спасибо, Flo

...