При проверке jenkinsfile из репозитория Github, может ли jenkinsfile вызвать / запустить скрипт python из того же репо? - PullRequest
0 голосов
/ 18 июня 2019

Я запускаю сценарий конвейера Jenkins из SCM, и Jenkins может читать файл jenkins, но не может найти остальные файлы в этом репозитории. Нужно ли это делать по-другому или даже возможно?

Github репо:

-jenkinsfile
-python_scripts/generate_json.py
node ('windows7') {
    stage('Generate json file'){
        bat 'dir'
        bat 'dir ..'
        bat 'python ./python_scripts/generate_json.py'
    }
}

Невозможно найти скрипт Python:

J:\Jenkins_Slave\workspace\[redacted]\test_pipeline>python ./python_scripts/generate_json.py 
python: can't open file './python_scripts/generate_json.py': [Errno 2] No such file or directory

Я также отключил облегченный контроль, но это не имеет значения

Ответы [ 2 ]

1 голос
/ 18 июня 2019

В случае, если это весь ваш конвейер, вы фактически пропускаете шаг для проверки вашего исходного кода:

node ('windows7') {
    stage('Generate json file'){
        checkout scm
        bat 'dir'
        bat 'dir ..'
        bat 'python ./python_scripts/generate_json.py'
    }
}

На самом деле, я думаю, это то, что вызовы dir уже должны были показать вам,право

0 голосов
/ 18 июня 2019

Вам нужно добавить шаг, чтобы проверить ваши источники на узле, на котором вы работаете. Начальная проверка для чтения Jenkinsfile выполняется на главном сервере, если вы переключаетесь на другой узел, в этой рабочей области нет файлов. Добавьте это внутри вашего node -Block.

    stage('Checkout sources') {
        checkout scm // Checks out the repo where the Jenkinsfile is located
    }

Чтобы расширить его: когда конвейер jenkins читает файл Jenkinsfile, он сначала проверяет его на мастере jenkins, оценивает, что делать и где, то есть он читает node('Windows7') и пытается получить бесплатного исполнителя на узел с меткой Windows7. Затем он переключит выполнение на этот узел.

В вашем случае он проверяет ваше git-репо и переключается на узел windows с пустым рабочим пространством, поскольку первоначальная проверка была на главном. Это делается только для чтения файла Jenkinsfile, поэтому не забывайте проверять его легкость, он использует меньше ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...