jenkins拉取git仓库代码,执行python脚本
背景:
pytho脚本自动化提交后,自动触发jenkins去构建
1.打开Jenkins新建一个自由风格的项目
源码管理:
- Repository URL 代码仓库地址
- Credentials git仓库登陆的账号和密码凭证
- 指定分支(为空时代表any)分支默认
*/master
构建job后输出内容
Requirement already satisfied: certifi>=2017.4.17 in /var/jenkins_home/python3/lib/python3.6/site-packages (from requests->-r requirements.txt (line 1)) (2019.11.28) You are using pip version 18.1, however version 20.0.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command. + pytest reTest.py /tmp/jenkins2700478557167732619.sh: 4: /tmp/jenkins2700478557167732619.sh: pytest: not found Build step 'Execute shell' marked build as failure Finished: FAILURE
解决办法:
不是看centos下的pip版本
进jenkins容器
docker ps -a
进docker容器, 加上-u root 以root用户权限进入容器
docker exec -it -u root 容器id /bin/bash
[root@xiaoxiao ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c20362a06289 jenkins/jenkins:lts "/sbin/tini -- /usr/…" 4 days ago Up 4 days 0.0.0.0:50000->50000/tcp, 0.0.0.0:9090->8080/tcp jenkins 294df3f8c912 rabbitmq:3.8.0-management "docker-entrypoint.s…" 3 weeks ago Exited (0) 5 days ago rabbitmq3.8 [root@xiaoxiao ~]# docker exec -it -u root c20362a06289 /bin/bash root@c20362a06289:/# cd /var/jenkins_home/python3/bin root@c20362a06289:/var/jenkins_home/python3/bin# ls 2to3 chardetect idle3 pip3 pydoc3 python3 python3.6 python3.6m pyvenv 2to3-3.6 easy_install-3.6 idle3.6 pip3.6 pydoc3.6 python3-config python3.6-config python3.6m-config pyvenv-3.6 root@c20362a06289:/var/jenkins_home/python3/bin# pip3 -V pip 18.1 from /var/jenkins_home/python3/lib/python3.6/site-packages/pip (python 3.6) root@c20362a06289:/var/jenkins_home/python3/bin# pip3 install --upgrade pip Collecting pip Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB) 100% |████████████████████████████████| 1.4MB 606kB/s Installing collected packages: pip Found existing installation: pip 18.1 Uninstalling pip-18.1: Successfully uninstalled pip-18.1 Successfully installed pip-20.0.2 root@c20362a06289:/var/jenkins_home/python3/bin#
2.给pytest加软链接
[root@xiaoxiao ~]# pytest -bash: pytest: command not found [root@xiaoxiao ~]#
3.在容器内部查找pytest,find / -name pytest,如果没有,再执行安装pip3 install -U pytest
root@c20362a06289:~# find / -name pytest root@c20362a06289:~#pip3 install -U pytest root@c20362a06289:~# find / -name pytest /var/jenkins_home/python3/bin/pytest /var/jenkins_home/python3/lib/python3.6/site-packages/pytest
4.查找pytest安装地址添加软链接,输入pytest --version查看环境
root@c20362a06289:~# ln -s /var/jenkins_home/python3/bin/pytest /usr/bin/pytest root@c20362a06289:~# pytest --version This is pytest version 5.4.1, imported from /var/jenkins_home/python3/lib/python3.6/site-packages/pytest/__init__.py root@c20362a06289:~#
构建job
1.上面需要的环境都安装完成后,执行shell的时候,直接输入pytest命令就可以执行自动化的脚本了
问题1:
操作步骤:我本地删了这个reTest.py文件,更新上传到github了,但是构建还是提示找不到这个reTest文件,我删了,但是新建了另外一个py文件,也更新到github了
原因:构建这里jenkins写死了
解决方案:将这里改成你新加的py名称
问题2:构建提示报错
解决办法:
1.先人工进入这个目录查看是否有这个文件,查看是有的
2.检查jenkins构建配置路径没有正确,应该改成cd case
再次构建,查看结果:
善于跌倒仍喜爱奔跑~