2017-01-30 4 views
5

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

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

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

Вот выход консоли я получил после отказоустойчивой сборки:

Started by user Yiming Chen 
[EnvInject] - Loading node environment variables. 
Building in workspace D:\Application\Jenkins\workspace\downloader 
[downloader] $ sh -xe C:\windows\TEMP\hudson3430410121213277597.sh 
The system cannot find the file specified 
FATAL: command execution failed 
java.io.IOException: Cannot run program "sh" (in directory  "D:\Application\Jenkins\workspace\downloader"): 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$1.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 

ответ

4

Создание задания Jenkins и запустить скрипты скрипт из Дженкинс работы. Как это

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

Thx человек, но я попробовал. вот что я сделал: я выбрал Execute Shell в BUILD и получил это в команде: python D: /xxx/xxx/xxxx/script.py, но все еще не удалось, когда я нажимаю build –

+0

Можете ли вы поделиться журналом ошибок сборки. – Avi

+1

Да, но это слишком долго. Я добавлю его в вопрос. –

3

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

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

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

parameter1 = os.environ['parameter1'] 

 Смежные вопросы

  • Нет связанных вопросов^_^