我怎样才能让jenkins执行一个脚本,它从Git拉?

我正在使用Jenkins触发并pipe理一系列的导入作业。 我想把我的导入脚本放到Github中,当Jenkins创build这个工作时,它应该(a)从Github中取出这个受版本控制的脚本,并且(b)运行脚本。

我遇到的问题是我不知道如何引用脚本的名字在作业中运行。 我假设源代码被拉入工作区目录。 这个假设是否正确? (如果只有文件!)

以下是我迄今为止所做的:

  1. 安装jenkins(显然)在我的Windows服务器(不,我没有select)
  2. 在我的github帐户上创build一个仓库,并把我的代码放在里面
    • 它在https://github.com/mcholl/SARS-Import/处公开
    • 你会看到我有两个脚本,roottest.py和omniture-video \ test.py。 那里的代码是由苹果专利,我确定:)
    • 这个想法是,我想运行roottest.py
  3. 安装了Github插件
  4. 创build一个工作如下:
    • Project Name =“testingGithub集成”
    • GitHub项目: https : //github.com/mcholl/SARS-Import.git/
    • 添加一个Windows批处理命令:python roottest.py
  5. 手动执行作业

但是,我得到的是文件无法find的错误信息。 这很奇怪,因为我认为工作stream将“将源的本地副本拖到…(Job)/ workspace /目录,然后在工作空间目录的上下文中运行批处理命令。

以下是完整的控制台输出:

由用户匿名开始在工作区中build立C:\ Program Files文件(x86)\ Jenkins \作业\testingGithub Integration \ workspace [workspace] $ cmd / c调用C:\ Windows \ TEMP \ hudson1966342425043540895.bat

C:\ Program Files(x86)\ Jenkins \ jobs \ Testing Github Integration \ workspace> python roottest.py python:无法打开文件'roottest.py':[Errno 2]没有这样的文件或目录

C:\ Program Files文件(x86)\ Jenkins \作业\testingGithub集成\工作区>退出2构build步骤'执行Windows批处理命令'标记构build失败完成:FAILURE

很显然,我期待在控制台中看到我的打印语句的结果。

我搞砸了什么? 为什么不是我的脚本已经在那里?

    对于我的构build(在Linux主机上),我做了这样的事情(作为Jenkins中的构build步骤),从刚刚签出的工作空间中执行构build脚本:

    执行shell命令:

    sh -x $WORKSPACE/build/myproject.build 

    我认为它会在Windows上类似的工作,除非你使用\而不是/而你使用python而不是sh执行你的脚本。

    你可以在你的版本中写两行:

     chmod 777 ./my_script.sh ./my_script.sh 

    你可以在Git中存储一些脚本,例如test.sh:

     #!/bin/bash _test_func(){ echo 'test' } 

    然后在“Execute shell”input中,input该脚本并调用“_test_func”:

     source test.sh _test_func 

    结果:

      + source test.sh + _test_func test