jenkins一、jenkins 参数化构建二、jenkins 用 python 脚本实现时,如何接收构建军参数三、如何远程触发参数化构建添加文件名,作为参数四、jenkins 设置每2小时构建一次五、linux启动jenkins六、 jenkins 依赖于 jdk1.8七、CentOS升级最新的 GCC确编译器1、 获取安装包并解压2、 下载供编译需求的依赖项3、 建立一个目录供编译出的文件存放4、 生成Makefile文件5、 编译6、安装7、重启,然后查看 gcc 版本号8、 写个C++11 特性的程序段 测试9、升级gcc,生成的动态库没有替换老版本gcc的动态库
1、选择参数化构建,然后选择字符串参数,分别填上变量名和默认值2、变量名/默认值分别为 name :tag1 = sss name :tag2 = bbb3、在构建脚本中填写如下内容,即可打印出 tag1 / tag2 的默认值command: echo $tag1 echo $tag2
xxxxxxxxxx#!/usr/bin/pythonimport os,systag1 = os.getenv("tag1")tag2 = os.getenv("tag2")print "tag1=%s tag2=%s"%(tag1, tag2)
远程参数化命令,老是收到出错提示:
xxxxxxxxxxNo Valid crumb was included in the request解决办法:
到 jenkins 系统管理中,取消
启用安全,取消跨站点请求伪造命令的正确写法:
xxxxxxxxxxcurl -X GET "http://192.168.1.122:8080/job/TestPara/buildWithParameters?token=mail_token&prj_name=aa_prj&result=succ" -uroot:root此命令中,token=mail_token 一项,token是在触发器里面配置的,token 和 -u 选项可以省略
xxxxxxxxxxcurl -X GET "http://192.168.1.122:8080/job/TestPara/buildWithParameters?token=mail_token&prj_name=aa_prj&result=succ" -F "input=@tag.txt" -uroot:root实际上,jenkins 接收到的 input ,也只是一个字符串,值为
tag.txt,并没有里面的内容,而 input 需要在参数里面添加,在字符串参数后面添加一个文件参数即可
xxxxxxxxxx0 1 * * * #1点0 3 * * * #3点0 5 * * * #5点jenkinsxxxxxxxxxx一、首先要有 jenkins.war 包# java -jar ./jenkins.war --controlPort=8001 --httpPort=8080 --logfile=/var/log/jenkins.logjdk1.8下载路径: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlwget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.bz2tar -jxvf gcc-6.1.0.tar.bz2当然,http://ftp.gnu.org/gnu/gcc 里面有所有的gcc版本供下载,最新版本已经有6.1.0啦.建议下载.bz2的压缩包,文件更小,下载时间更少.参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。cd gcc-6.1.0./contrib/download_prerequisitesxxxxxxxxxxmkdir gcc-build-6.1.0cd gcc-build-6.1.0
Makefile文件xxxxxxxxxx../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make -j4-j4选项是make对多核处理器的优化,如果不成功请使用 make,相关优化选项可以移步至参考文献[2]make install(安装需要root权限!)查看安装ls /usr/local/bin | grep gccxxxxxxxxxxgcc -v
源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。strings /usr/lib64/libstdc++.so.6 | grep GLIBC从输出可以看出,gcc的动态库还是旧版本的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。find / -name "libstdc++.so*"将上面的最新动态库libstdc++.so.6.0.22复制到/usr/lib64目录下cd /usr/lib64cp /root/Downloads/gcc-6.1.0/gcc-build-6.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 ./xxxxxxxxxxrm -rf libstdc++.so.6
xxxxxxxxxxln -s libstdc++.so.6.0.22 libstdc++.so.6
strings /usr/lib64/libstdc++.so.6 | grep GLIBC可以看到 输出有"GLIBCXX_3.4.21" 了