詹金斯·皮皮林(Jenkins Pipiline):获得awk命令以发挥出色

时间:2019-03-31 14:14:29

标签: bash jenkins awk jenkins-pipeline pypi

我有一个用例,可以通过url请求(而不是pip下载)下载最新pip包的tar文件。因此,我尝试通过查看原始html来获取最新版本的grep。因此,对于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}"
                }
            }

        }

如果有人可以帮助我找出如何在Jenkins sh命令中正确逃避awk的方法,或者有更好/更轻松的方法来执行我想要的操作(即获取最新版本的a),我将不胜感激。 PyPi包。据我所知,没有URL,即使我仍然想知道在詹金斯中使用awk的细微差别。

0 个答案:

没有答案