У меня есть сценарий для загрузки tar-файла последней версии pip-пакета с помощью URL-запроса (не pip-загрузки). Как таковой, я попытался grep для последней версии, глядя на сырой HTML. Так что для необработанного кода https://pypi.org/project/astroid/#files
Я делаю
awk '/release--current">/,/<div class="release"/' html | awk '/"release__version">/{flag=1;next}/<\/p>/{flag=0}flag'|awk '{ gsub(/^[ \t]+|[ \t]+$/, ""); print }',
Это просто перехватывать текст между разными тэгами, пока я наконец не получу то, что хочу. Это прекрасно работает на оболочке, но когда я помещаю команду в конвейер jenkins, она ничего не возвращает. Я предполагаю, что это из-за побега:
steps {
cleanWs()
script {
if ( params.PKG_VRS ) {
httpRequest outputFile: 'myfile', responseHandle: 'NONE', url: 'https://pypi.io/packages/source/{ first letter }/{ package name }/{ package name }-{ version }.tar.gz'
} else {
httpRequest outputFile: 'HTMLFILE', responseHandle: 'NONE', url: 'https://pypi.org/project/astroid/#files'
LATEST_VRS = sh (
script: """awk '/release--current">/,/<div class="release"/' html | awk '/"release__version">/{flag=1;next}/<\/p>/{flag=0}flag'|awk '{ gsub(/^[ \t]+|[ \t]+$/, ""); print }'""",
returnStdout: true
).trim()
echo "${LATEST_VRS}"
}
}
}
Буду признателен, если кто-нибудь поможет мне разобраться, как правильно выйти из awk в команде Jenkins sh, или если есть лучший / более простой способ сделать то, что я хочу, то есть взять последнюю версию релиза Пакет PyPi. Из того, что я могу сказать, нет ссылки на него, и даже если бы это было так, мне все равно хотелось бы узнать нюансы использования awk в Jenkins.