Как выполнять локальные скрипты Python в UI Дженкинс

Я новичок в Jenkins, недавно хочу запланировать задание для выполнения локального скрипта python. У меня еще нет элемента управления версиями, поэтому я выбрал "нет" в управлении исходным кодом при создании задания в пользовательском интерфейсе Jenkins.

Я сделал некоторые исследования о том, как выполнять скрипты python в Jenkins UI, и я попытался использовать плагин Python для выполнения скриптов python в качестве шагов сборки. Но ничего не вышло. (Но на самом деле я не хочу использовать этот плагин, так как мой скрипт принимает аргументов, поэтому я думаю, что я нужно выбрать что-то вроде "execute shell" в поле сборки-я пытался, но также не смог) Может ли кто-нибудь помочь мне узнать, как правильно запустить/вызвать локальный скрипт python?

PS: Я также не понимаю о рабочей области Дженкинса и как она работает? Будет уместно, если кто-то может прояснить это для меня.

вот вывод консоли, который я получил после сборки fail:

Started by user Yiming Chen
[EnvInject] - Loading node environment variables.
Building in workspace D:ApplicationJenkinsworkspacedownloader
[downloader] $ sh -xe C:windowsTEMPhudson3430410121213277597.sh
The system cannot find the file specified
FATAL: command execution failed
java.io.IOException: Cannot run program "sh" (in directory     "D:ApplicationJenkinsworkspacedownloader"): CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at hudson.Proc$LocalProc.<init>(Proc.java:245)
at hudson.Proc$LocalProc.<init>(Proc.java:214)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:846)
at hudson.Launcher$ProcStarter.start(Launcher.java:384)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:108)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:65)
at hudson.tasks.BuildStepMonitor.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
at hudson.model.Build$BuildExecution.build(Build.java:205)
at hudson.model.Build$BuildExecution.doRun(Build.java:162)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
at hudson.model.Run.execute(Run.java:1728)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:404)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 16 more
Build step 'Execute shell' marked build as failure
Finished: FAILURE

3 ответов


создайте задание Дженкинса и запустите сценарии как сценарий оболочки из задания Дженкинса. Такой

#!/bin/sh
python <absolute_path_of_python_script>.py

вместо обработки локального файла скрипта на каждом сервере вы можете фактически скопировать весь скрипт python в" выполнить оболочку " в разделе сборки. он должен начинаться с соответствующего python shebang. Например:

#!/usr/bin/env python
your script...

вы также можете добавить параметры в задание и использовать переменные среды в скрипте python. например

parameter1 = os.environ['parameter1']

другой способ создания pipeline и выполнить