zoukankan      html  css  js  c++  java
  • Jenkins 六: 构建中执行shell或者 windows的批处理程序

    Shell/ bat

    Jenkins 可以在构建中执行shell命令或者windows的batch 命令。

    1. 选择一个项目,点击“配置”。

    2. 找到“构建” –> “增加构建步骤”。选择 “Execute shell” 或者 “Execute Windows batch command”。

    具体选择哪一个取决于你的执行环境,如果是linux环境,选择 “Execute shell”。如果是windows环境,选择 “Execute Windows batch command”。我这边选择的是“Execute Windows batch command”。

    3. 在 “命令”栏中输入你要执行的命令。

    echo "Hello World"
    echo %BUILD_TAG%
    python hello_python.py

    备注:

    在命令栏下方,可以看到“参阅可用环境变量列表”。点击之后,可以看到所有可以用的变量名列表及其解释。

    比如上面我们使用的 BUILD_TAG。

    BUILD_NUMBER
    The current build number, such as "153"
    BUILD_ID
    The current build ID, identical to BUILD_NUMBER for builds created in 1.597+, but a YYYY-MM-DD_hh-mm-ss timestamp for older builds
    BUILD_DISPLAY_NAME
    The display name of the current build, which is something like "#153" by default.
    JOB_NAME
    Name of the project of this build, such as "foo" or "foo/bar". (To strip off folder paths from a Bourne shell script, try: ${JOB_NAME##*/})
    BUILD_TAG
    String of "jenkins-${JOB_NAME}-${BUILD_NUMBER}". Convenient to put into a resource file, a jar file, etc for easier identification.
    EXECUTOR_NUMBER
    The unique number that identifies the current executor (among executors of the same machine) that’s carrying out this build. This is the number you see in the "build executor status", except that the number starts from 0, not 1.
    NODE_NAME
    Name of the slave if the build is on a slave, or "master" if run on master
    NODE_LABELS
    Whitespace-separated list of labels that the node is assigned.
    WORKSPACE
    The absolute path of the directory assigned to the build as a workspace.
    JENKINS_HOME
    The absolute path of the directory assigned on the master node for Jenkins to store data.
    JENKINS_URL
    Full URL of Jenkins, like http://server:port/jenkins/ (note: only available if Jenkins URL set in system configuration)
    BUILD_URL
    Full URL of this build, like http://server:port/jenkins/job/foo/15/ (Jenkins URL must be set)
    JOB_URL
    Full URL of this job, like http://server:port/jenkins/job/foo/ (Jenkins URL must be set)
    SVN_REVISION
    Subversion revision number that's currently checked out to the workspace, such as "12345"
    SVN_URL
    Subversion URL that's currently checked out to the workspace.

    4. 在Jenkins的 workspace中的该项目下,我的路径是“D:JekinsworkspaceAnt_project”,放置 hello_python.py。内容如下:

    print("8"*30)
    print("this is easy")

    备注:

    因为我的python是python3.0,所以print语句是这个样子。

    因为命令的默认执行路径是在 Jenkins的workspace下面,所以脚本需要放置在该路径。当然也可以放置到其他路径,执行脚本时前面加上路径即可。

    5. 点击“立即构建”。

    查看“Console output”:

    BUILD SUCCESSFUL
    Total time: 1 second
    [Ant_project] $ cmd /c call C:UsersxxxAppDataLocalTemphudson6570782408589408145.bat
     
    D:JekinsworkspaceAnt_project>echo "Hello World" 
    "Hello World"
    
    D:JekinsworkspaceAnt_project>echo jenkins-Ant_project-8 
    jenkins-Ant_project-8
    
    D:JekinsworkspaceAnt_project>python hello_python.py 
    888888888888888888888888888888
    this is easy
    
    D:JekinsworkspaceAnt_project>exit 0 
    Finished: SUCCESS

    从“cmd /c call C:UsersxxxAppDataLocalTemphudson6570782408589408145.bat ”可以看出,Jenkins自动生成了一个 hudson6570782408589408145.bat 脚本,保存要被执行的命令,该脚本保存在临时路径下。

    后边具体执行了bat命令。

    这里给出了Jenkins执行bat的实例,同时在bat中调用了 python脚本,扩展开来,当然也可以调用其他语言,比如ruby ,perl。 

    python

    除了上面执行python命令的方式,Jenkins还给出了另外一种使用python命令的方式,那就是使用插件。

    1. 安装 Python Plugin插件。

    进入“系统管理” –> “管理插件”-> “可选插件”,在“过滤”中输入“Python Plugin”,可以看到页面显示出该插件,选中并点击“直接安装”即可。

    Adds the ability to execute python scripts as build steps.

    2. 任选一个项目,点击“配置”。

    3. 找到“构建” –> “增加构建步骤”。选择 “Execute Python script”。

    4. 在 “Script”栏中输入你要执行的命令。

    比如:

    print('hello'*8)
    print('3+2')

    5. 点击“立即构建”。

    查看“Console output”:

    [Ant_project] $ python C:UsersxxxAppDataLocalTemphudson7702020379517348753.py
    hellohellohellohellohellohellohellohello
    3+2
    Finished: SUCCESS
  • 相关阅读:
    C# 利用Log4Net进行日志记录
    驰骋工作流引擎JFlow与activiti的对比之2种结构化模式
    驰骋工作流引擎JFlow与activiti的对比之4种高级分支同步模式
    工作流引擎JFlow与activiti 对比分析(一)5种基本控制流模式的对比
    "整数"组件:<int> —— 快应用组件库H-UI
    "短整数"组件:<short> —— 快应用组件库H-UI
    "字节型整数"组件:<byte> —— 快应用组件库H-UI
    "图片验证码"组件:<vcode> —— 快应用组件库H-UI
    "手机验证码"组件:<smscode> —— 快应用组件库H-UI
    "邮政编码"组件:<postcode> —— 快应用组件库H-UI
  • 原文地址:https://www.cnblogs.com/miniren/p/5227994.html
Copyright © 2011-2022 走看看