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:\Jekins\workspace\Ant_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:\Users\xxx\AppData\Local\Temp\hudson6570782408589408145.bat
D:\Jekins\workspace\Ant_project>echo "Hello World" "Hello World" D:\Jekins\workspace\Ant_project>echo jenkins-Ant_project-8 jenkins-Ant_project-8 D:\Jekins\workspace\Ant_project>python hello_python.py 888888888888888888888888888888 this is easy D:\Jekins\workspace\Ant_project>exit 0 Finished: SUCCESS
从“cmd /c call C:\Users\xxx\AppData\Local\Temp\hudson6570782408589408145.bat ”可以看出,Jenkins自动生成了一个 hudson6570782408589408145.bat 脚本,保存要被执行的命令,该脚本保存在临时路径下。
后边具体执行了bat命令。
这里给出了Jenkins执行bat的实例,同时在bat中调用了 python脚本,扩展开来,当然也可以调用其他语言,比如ruby ,perl。
python
除了上面执行python命令的方式,Jenkins还给出了另外一种使用python命令的方式,那就是使用插件。
1. 安装 Python Plugin插件。
进入“系统管理” –> “管理插件”-> “可选插件”,在“过滤”中输入“Python Plugin”,可以看到页面显示出该插件,选中并点击“直接安装”即可。
2. 任选一个项目,点击“配置”。
3. 找到“构建” –> “增加构建步骤”。选择 “Execute Python script”。
4. 在 “Script”栏中输入你要执行的命令。
比如:
print('hello'*8) print('3+2')
5. 点击“立即构建”。
查看“Console output”:
[Ant_project] $ python C:\Users\xxx\AppData\Local\Temp\hudson7702020379517348753.py hellohellohellohellohellohellohellohello 3+2 Finished: SUCCESS