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调用。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐