Jenkins 配置任务中的坑s

Jenkins

坑1:sh: adb: command not found

背景:在任务中使用了adb命令

adb 使用时要在服务器上配Android-home的环境变量的

配置完成之后发现在服务器上 adb OK,但是在jenkins 执行job时不OK

参考一下两篇文档

https://stackoverflow.com/questions/29216244/jenkins-build-failed-due-to-missing-android-sdk

http://www.linuxdiyf.com/linux/28771.html

1.在jenkins 设置里配置Android-home,然而并没有用

2.在Execute shell 里将#!/bin/bash 改成 #!/bin/bash -ilex

实测是有用的~

3.实际挨个试了下#!/bin/bash -ilex中的各个参数 发现有用的是-l

‘‘‘

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo }
span.s1 { }

-l        Make bash act as if it had been invoked as a login shell (see

INVOCATION below).

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo }
span.s1 { }
span.s2 { text-decoration: underline }

When  bash is invoked as an interactive login shell, or as a non-inter-

active shell with the --login option, it first reads and executes  com-

mands  from  the file /etc/profile, if that file exists.  After reading

that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile,

in  that order, and reads and executes commands from the first one that

exists and is readable.  The --noprofile option may be  used  when  the

shell is started to inhibit this behavior.

‘‘‘

综上,就是加载了/etc/profile或者其他几个配置环境变量的文件

所以直接改成在 shell 脚本里增加source /etc/profile就好啦~

坑2 Jenkins + python 的任务,console output 没有及时输出日志

期初是以为是 #!/bin/bash -ilex 中四个参数导致console output 没有输出,后来突然意识到是python的print应该有buffer的问题

https://stackoverflow.com/questions/22826006/how-to-get-python-print-result-in-jenkins-console-output

https://stackoverflow.com/questions/11631951/jenkins-console-output-not-in-realtime

有两种解释

1.jenkins 要输入换行符才能展示数据

Any output to stdout from a process spawned by Jenkins should be captured by Console Output. One caveat is that it won‘t be displayed until a newline character is printed, so make sure your lines are terminated.

2.print有buffer

  • ruby or python or any sensible scripting language will buffer the output; this is in order to minimize the IO; writing to disk is slow, writing to a console is slow...
  • usually the data gets flush()‘ed automatically after you have enough data in the buffer with special handling for newlines. e.g. writing a string without newline then sleep() would not write anything until after the sleep() is complete (I‘m only using sleep as an example, feel free to substitute with any other expensive system call).

解决方法看到两个

1.print 信息后加sys.stdout.flush()

2.

  • for python, you can use python -u or the environment variable PYTHONUNBUFFERED to make stdin/stdout/stout not buffered, but there are other solutions that do not change stdin or stderr

    export PYTHONUNBUFFERED=1
时间: 2024-10-14 10:29:05

Jenkins 配置任务中的坑s的相关文章

菜鸟帮你跳过openstack配置过程中的坑

一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间一定比老鸟们久.所以现在总结一下openstack在配置过程中的几大坑点,让各位在配置过程中不再问天问大地,灵魂一片片凋落. 1. 如果是新手一定要学会用快照,一定要多用快照,从镜像安装完成开始,最好每一个章节模块配置完成后都用上一个快照,人生苦短,快照帮你性感. 2.一定要仔细看配种配置以及环境要

关于在eclipse中配置tomcat的各种坑

先说在windows下的,java环境什么的就不再记录了,记住装java ee之前,先要装好java se这样java ee才能顺利安装. 主要是安装好tomcat之后,在eclipse中进行配置的时候,在servers窗口最下面双击”创建服务器 ”的英文标记后,根据自己的tomcat版本,一步一步next进行创建,注意中间过程中jre的版本要调整跟自己的环境变量使用的一致的那个jre.还有一点注意的,配置好之后,还要注意一下,要是还运行不了的话,双击配置好的tomcatX,在弹出的配置页面中,

jenkins配置.net mvc网站

jenkins配置.net mvc网站 上一篇使用jenkins配置.net mvc网站进行持续集成一只是简单介绍了jenkins构建站点到本地服务器,这一篇,就来讲解如何部署站点到指定的服务器上面. 1.IIS远程发布配置 1.在服务器管理器中安装“管理服务”(若已存在则无须再安装) 1.1 服务器管理----->角色----->web 服务器IIS 1.2 点击右下角 “添加角色服务”,弹出选择“选择角色服务”对话框. 1.3 选中“管理服务” 点击“下一步”----->点击“安装”

使用Jenkins配置Git+Maven的自动化构建

背景 最近安装Jenkins,参照网上的各种资料进行尝试,折腾了好久,但是查找了这么多资料,相似度在90%以上!!!,相同的安装过程,测试了几台机器,未曾成功,不得不感慨自己能力有限,最终慢慢摸索,形成思路,现分享给大家,希望大家在安装的时候少走弯路. PS:本人很痛恨这种粘贴复制,毫无思考的博主,不但浪费了大家的时间,还浪费了大家的感情. 知识背景 首先需要理解的是,Jenkins是帮我们将代码进行统一的编译打包.还可以放到tomcat容器中进行发布. 意思是我们通过配置,将以前:编译.打包.

Selenium Webdriver 学习总结-Jenkins配置(八)

这周单位要做一个人脸美化的项目,查资料遇到这位大牛的博客,地址如下:点击打开链接 我的代码也是在他的基础上进行修改的,但是他对图像的RGB三个通道平等调节,为了适应我的需求,我改成了针对三个通道分别调节.废话不多说,开始上源码 void ImageAdjust(Mat& src, Mat& dst, vector<double> low_in, vector<double> high_in, vector<double> low_out, vector&

修改npm安装的全局路径和配置环境变量的坑

修改npm安装的全局路径和配置环境变量的坑 转自:http://www.qdfuns.com/notes/30749/0f66fcf5e62eed010f744d0d4adaa870.html 我之前安装npm时全是默认安装,模块全部安装在C盘了,今天心血来潮,把路径改到了D盘,结果改完后模块都不能识别了,都提示XX模块不是内部命令,这其实是环境变量配置的问题,我都是按照网上的教程改的环境变量,但是照着改也有错,反复改了好几次都不行,最后终于改好了.步骤如下: 1.要在你需要存放模块的文件夹里建

Jenkins配置ssh时总是提示Can&#39;t connect to server

Jenkins配置ssh时总是提示Can't connect to server 我在本地windows系统中启动了一个Jenkins服务,进行配置ssh,链接到同一网段的服务器上Linux上. 总是连不上,Windows的防火墙和杀毒软件都关闭了. Jenkins配置ssh时总是提示Can't connect to server

Jenkins配置分布式部署

即Jenkins安装后的配置总结.仅供参考 登录Jenkins,http://localhost:8080 Jenkins新建完成后需要配置Jenkins的登录权限和节点: 一.增加登录权限: 修改Jenkins为输入用户名和密码登录: 点击左侧的系统管理--用户管理--新建用户,建立用户后重新打开Jenkins网址,点击右上角登录按钮进行登录,非登录模式,只能查看Jenkins配置,不能做任何修改. 二.增加节点 点击左侧的系统管理--管理节点--新增节点,输入节点名称,建议使用sever n

使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置

安装Eclipse插件——Buildship 什么是Buildship? Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务. Eclipse上安装Buildship 建议直接去Eclipse market处下载,简单方便,如下图: Buildship的更多信息 请参考以下链接,有教程,比较简单, 主要内容: 如何导入Gradle工程, 如何创建Gradle工程, 如何执行Gradle任务, 等... http://projects.e