python - 如何在jenkins中执行python脚本
问题描述
我正在尝试构建基本的 hello world 应用程序:
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
python E:/airflowtmp/hello.py
}
}
}
}
当我执行它时,它会给出以下错误:
Running in Durability level: MAX_SURVIVABILITY
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 8: Expected a step @ line 8, column 13.
python E:/airflowtmp/hello.py
^
1 error
at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:142)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:127)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:561)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:522)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:337)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:428)
Finished: FAILURE
如何使用 Jenkins 运行基本的 Python 应用程序?我通过仪表板创建了一个管道并将 python .py 粘贴到模板中。它成功打印了 hello world 但是当我添加 python 语句时它会生成错误。
解决方案
您应该将 python 执行包装在sh
指令中以使其正常工作。
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo "Hello World"
sh "python E:/airflowtmp/hello.py"
}
}
}
}
推荐阅读
- jquery - 如何在 3 秒的超时功能上刷新我的表
- php - 无法在php中格式化json数据
- angular - Route 正在加载两个组件我看不到错误
- c# - 没有使用 Sqlite-net ExecuteQuery 方法在 C# 中为此对象定义无参数构造函数
- swift - Swift - 将特定的 tabcontroller 大小传递给另一个视图控制器?
- git - 快速导出 git lfs 存储库
- swift - 返回符合通用约束的对象
- apache-kafka-streams - 将 kafka 流状态存储移动到新目录 - 预期的行为是什么?
- angular - 如何对需要身份验证的 PWA 进行灯塔审计
- regex - 如何根据 / 将 URL 拆分为两部分