jenkins链接git,运行python脚本,发送html报告
jenkins接入项目:一、创建工程首页》新建任务》输入工程名称,选择“构建一个。。。”》点击 确定。二、拉git代码,ssh链接gitlab,jenkins服务器生成一个sshkey,全局密钥给gitlab,私钥给jenkins配置全局凭据。然后 jenkins选择gitlab地址,选择jenkis刚配置的用户凭证即可。详情如下:设置源码管理在源码管理下,选择GitRepository URL指
jenkins接入项目:
一、创建工程
首页》新建任务》输入工程名称,选择“构建一个。。。”》点击 确定。
二、拉git代码,ssh链接gitlab,jenkins服务器生成一个sshkey,全局密钥给gitlab,私钥给jenkins配置全局凭据。然后 jenkins选择gitlab地址,选择jenkis刚配置的用户凭证即可。
详情如下:
- 设置源码管理
在源码管理下,选择Git
Repository URL
指代码仓库地址,复制Github仓库的地址填入即可。
SSH方式链接的,使用SSH方式的话需要设置SSH Key。
jenkins需要先创建添加Git账户,创建ssh key:在jenkins服务器下执行:ssh-keygen -o
生成ssh key,默认会生成在用户目录下 .ssh 中
id_rsa是私钥,id_rsa.pub是公钥,known_hosts是访问过的服务器公钥。
GitLab设置访问SSH key:
gitlab》用户设置》ssh密钥,创建sshkeys
Jenkins设置凭据
jenkins 的 credentials 是为了与第三方应用进行交互控制而设置的,如果需要 commit 后进行源码的自动化拉取,编译,运行,就需要对第三方应用拥有足够的控制权限。
配置 jenkins 的 credentials types:首页》系统管理》manage credentials》全局凭据(下方)》添加凭据(左侧)
添加全局私钥:crm-ssh-key
Kind选 SSH Username with private key
ID 为后续在流水线脚本中引用的值,可不动。
Private Key点击Enter directly-> Add,在出现的输入框中粘贴你的私钥 id_rsa 中的值
最后点 OK,添加密钥 。
然后去jenkins工程里面配置拉git代码,认证刚创建的用户就可以了。
三、jenkins服务安装jdk,安装python,安装pipenv、xunit
1)安装python3.9:
1、查看Linux是否已安装python:ll /usr/bin/pyth*
2、查看当前使用python版本:python --version(Linux一般默认安装python2.7)
3、新建安装目录:mkdir /usr/local/python39(也可以不创建此文件夹,会自动创建一个版本文件夹)
4、下载python安装包:wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
5、解压缩 & 进入目录:
tar -zvxf Python-3.9.2
cd Python-3.9.2
6、准备编译环境:
yum install gcc
7、安装make 命令,后续编译要用
./configure --prefix=/usr/local/python39
8、编译且安装
make && make install
9、查看编译器:
/usr/local/python39/bin/python3
/usr/local/python37/bin/python3
/usr/local/python37/bin/python3
10.建立Python3和pip3的软链:
sudo ln -s /usr/local/python39/bin/python3 /usr/bin/python3
sudo ln -s /usr/local/python39/bin/pip3 /usr/bin/pip3
sudo ln -s /usr/local/python39/bin/pipenv /usr/bin/pipenv
11、将/usr/local/python3/bin加入PATH
(1)vim /etc/profile
(2)按“I”,然后贴上下面内容:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/python39/bin
export PATH
按ESC,输入:wq回车退出。
备注:没权限就用sudo
修改完记得执行行下面的命令,让上一步的修改生效:
source ~/.bash_profile
12、检查Python3及pip3是否正常可用:
python3 -V
pip3 -V
13、问题:pip3未识别出来
$ wget https://bootstrap.pypa.io/get-pip.py
$ python3 get-pip.py
$ make && make install
报错:zipimport.ZipImportError: can't decompress data; zlib not available
解决:yum -y install zlib*
vim /usr/local/python39/Python-3.9.2/Modules/Setup
去掉注释:#zlib zlibmodule.c
cd /usr/local/python3/Python-3.9.2 重新编译
参考:https://blog.csdn.net/weixin_39707693/article/details/109857512
https://www.cnblogs.com/wq-zhou/p/13063932.html
https://blog.csdn.net/YMY_mine/article/details/103801458
2)安装依赖包:
pip3 install requests
报错:
Can't connect to HTTPS URL because the SSL module is not available.
解决方法:
1.编译安装OpenSSL 1.0.2j版本并重新配置环境变量
下载OpenSSL源码包:
wget http://www.openssl.org/source/openssl-1.1.1l.tar.gz
2.解压缩,编译安装:
tar -zxvf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l
./config --prefix=/usr/local/lab/openssl-1.1.1l
安装目录:
/usr/local/python39/Python-3.9.2/openssl-1.1.1l
3.修改源码目录 Python-3.7.3/Modules/Setup 文件:
# Socket module helper for socket(2)
#_socket socketmodule.c
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/lab/openssl-1.1.1l/ #取消这一行的注释,并将原来的/usr/local/ssl改为我们新安装的openssl目录:/usr/local/lab/openssl-1.0.2j/
_ssl _ssl.c \ #取消这一行的注释
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ #取消这一行的注释
-L$(SSL)/lib -lssl -lcrypto #取消这一行的注释
# The crypt module is now disabled by default because it breaks builds
# on many systems (where -lcrypt is needed), e.g. Linux (I believe).
#_crypt _cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems
4.修改完成以后,还需要创建两个指向动态链接库的软链接文件:
ln -s /usr/local/lab/openssl-1.1.1l/lib/libssl.so.1.0.0 /usr/lib64/libssl.so.1.0.0
ln -s /usr/local/lab/openssl-1.1.1l/lib/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.1.0.0
5.make && make install
6、已安装python后,切换到python目录,重新make && make install
报错:
/Modules/_ssl.c:55:10: fatal error: openssl/rsa.h: No such file or directory
#include "openssl/rsa.h"
^~~~~~~~~~~~~~~
compilation terminated.
解决:
sudo yum install openssl-devel
重新执行 make && make install,成功。
7、执行pip3 install requests,成功。
3)安装java
4)安装pipenv
pipenv升级
5)安装xuint,生成html报告
四、构建:
echo $PATH
pwd
env
cat Pipfile
pipenv install
echo `which xunit-viewer`
(export PYTHONPATH=`pwd` && pipenv run python 项目地址/suite/daily_check.py)
path,是执行shell脚本时默认去查的地址。
path设置,shell运行时,会调用的sys.path,是jenkins的全局变量,配置:首页》系统管理》环境变量〉path
path:/usr/bin:/usr/local/python39/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/shopee/usr/java/jdk1.8.0_301/bin
pythonpath 是python运行时,import module的路径。(没有的话可能会找不到引用的module,或者找不到命令,命令找不到的,可以创建软链接到此目录)
五、构建后操作,生成html报告。
选择插件:Publish HTML reports
配置如下:官方解释文档:HTML Publisher | Jenkins plugin
如过遇到报告路径不存在的问题,可能是pythonpath问题,如上构建脚本,全局配置中没有pythonpath变量会解决此问题。
六、发送邮件
先配置全局变量。
选择构建后操作,配置 如图,环境不稳定时发送邮件:
选择构建后操作,配置 如图,构建情况发送邮件:
添加邮件收件人。也可以重新定义邮件的名字和内容。邮件的默认值在jenkins的系统配置里面。
具体路径:首页》系统管理》系统配置》Extended E-mail Notification
注意:配置前需先配置全局变量:
Extended E-mail Notification,需添加smtp邮件的认证。
Default Subject:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
Default Content:
$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
Check console output at $BUILD_URL to view the results.
SMTP服务器:smtp.gmail.com
7、构建项目,检查邮件的收件。
其他:
pipenv 均在jenkins的worspace下面的工程下进行 虚拟环境创建的,即pipenv install,创建虚拟环境。pipenv的路径在 python库的bin下,即which pipenv,usr/local/.../3.9/bin/pipenv,/usr/local/python39/bin/pipenv
pipenv封装后,可以找到封装下面的依赖关系。python运行.py脚本,自动调用shell脚本里面的pythonpath。
pipenv 和xunit报告都是jenkins服务的全局安装。自动通过path,即sys.path调用。
更多推荐
所有评论(0)