Как добавить условно, если в файле Jenkins для вывода много строк - PullRequest
0 голосов
/ 08 апреля 2020

Как добавить условие при условии, что если я получу заданный c вывод, сделайте это еще, сделайте это, зная, что я получаю вывод, подобный этому

[Appium] Welcome to Appium v1.17.0
[Appium] Non-default server args:
[Appium]   logFile: /var/log/appium.log
[Appium]   allowInsecure: {
[Appium]     0: chromedriver_autodownload
[Appium]   }
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

Я использовал это, но ничего не достигнул

script{
            def appiumLog =   sh label: 'Appium log', returnStdout: true, script: "docker logs ${containerName}"
            if( appiumLog.substring(appiumLog.lastIndexOf("\n")) == '[Appium] Appium REST http interface listener started on 0.0.0.0:4723') {
                     sh label: 'APK Loading', script: "docker cp src/main/resources/test.apk ${containerName}:/opt"
                     echo "APK file has copied to: ${containerName}"
            }  else {
                     echo "This is the output: ${appiumLog}"
                }
         }

также использовал это, но бесполезно

            if( appiumLog.indexOf('[Appium] Appium REST http interface listener started on 0.0.0.0:4723') >= 0) {

1 Ответ

0 голосов
/ 08 апреля 2020

Во-первых, если вы используете returnStdout: true, убедитесь, что всегда trim() возвращаемая строка. Скорее всего, есть трейлинг \n, который портит ваш поиск.

def appiumLog = sh( label: 'Appium log', returnStdout: true, script: "docker logs ${containerName}").trim()

Ваш первый substring() фактически возвращает \n в качестве первого символа! Таким образом, вы должны добавить +1 к индексу, чтобы пропустить \n:

if( appiumLog.substring(appiumLog.lastIndexOf("\n") + 1) ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...