Получить результат вывода для python сценария в конвейере Jenkinsfile groovy - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь присвоить переменной выходной файл сценария python.

вот мой setp

stage('Deployment on FTP') {
    steps {
        script {
            def warName = sh(script: 'python ../scripts/myPythonScriptHere.py', returnStdout: true)
        }
        ...
    }
}

Вот моя конфигурация (на linux сервере ):

ci/
    -- prod/
                -- Jenkinsfile.groovy
    -- scripts/
                -- myPythonScriptHere.py

Дженкинс говорит, что не может открыть файл "..." [Errno 2] Нет такого файла или каталога

Как я могу это сделать?

Спасибо

1 Ответ

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

Заявление, которое вы здесь сделали, само по себе неверно. Внутри sh (script: ....) функция ожидает сценарий оболочки. Здесь выполнение питонов не будет работать. Чтобы получить вывод python, вам нужно написать сценарий оболочки, который сделает эту работу за вас. Это означает, что вам нужно будет написать скрипт оболочки внутри sh (script: ...), который будет выполнять ваш скрипт python, захватывать его вывод внутри переменной и возвращать его. Например:

                  steps {
                    script {
                       def warName = sh(script: '#!bin/bash
                       var output = python ../scripts/myPythonScriptHere.py
                       return output', returnStdout: true)
        }
    }
}```
...