jenkins上需要兼容py2和py3版本來運行腳本的時候,Pyenv Pipeline或許可以幫到你
前期準備:必須在你的機器上已安裝好python(不管哪個版本)
1. Jenkins上安裝Pyenv Pipeline插件
(這個插件,可能會由于網(wǎng)絡原因下載失敗请祖,可以手動下載后上傳)
這個插件主要是為你的python腳本指定一個virtualenv環(huán)境運行(而不是創(chuàng)建virtualenv構(gòu)建器)
2. 安裝ShiningPanda插件
這個插件是可選的哗戈,主要提供virtualenv環(huán)境的創(chuàng)建,建議安裝,后續(xù)還可聲明python版本的安裝路徑
3. 配置python路徑
Manage Jenkins > Global Tool Configuration
填寫python2或者python3在jenkins機器上的路徑涉波,一般都為:/usr/bin/python3.6客扎,也可以使用which python來找祟峦; 名稱隨便寫即可,后續(xù)會用到
4. 新建pipline job
新建一個流水線job徙鱼,腳本如下:
node{
stage("test"){
withPythonEnv('System-CPython-3.6'){ // 填寫剛剛在設置python路徑時的名稱
sh "python3 ./{file}.py"
}
}
}
運行過之后宅楞,會在job對應的workspace下新建一個.pyenv-System-CPython-3.6的文件夾,這個就是Pyenv創(chuàng)建的Virtualenv環(huán)境袱吆,其實相當于幫用戶手動的創(chuàng)建了一個python運行環(huán)境在workspace下
5. 激活Virtualenv環(huán)境
在jenkins上運行python腳本厌衙,引用的模塊需要用戶自行下載,可以用source進入該環(huán)境
source ${workspace path}/.pyenv-System-CPython-3.6/bin/activate
此時環(huán)境被激活绞绒,我們可以觀察到命題行提示變了婶希,有個(.pyenv-System-CPython-3.6)前綴,表示當前環(huán)境是一個名為.pyenv-System-CPython-3.6 的Python環(huán)境蓬衡,這樣我們可以下載任意需要安裝的模塊啦~
退出環(huán)境喻杈,使用deactivate命令
deactivate
6. jenkins運行python腳本時的坑
-
提示用戶編碼錯誤:
這個是因為沒有加上jenkins的全局編碼方式,只需要在Manage Jenkins > configuration 下Global properties
找不到python的自定義模塊
- 首先看是否加了init文件
- 使用 from package.file import * 的方式引入模塊