Jenkins多节点python环境隔离(Windows)
- 使用Jenkins构建过程中,需要使用多个Jenkins节点并发构建
- 由于条件限制,只有一台Windows宿主机,所以在这台宿主机上部署多个Jenkins节点
- shell命令中使用pip安装依赖,当多个构建并发时,有可能导致依赖被更改的情况
- 所以需要有环境隔离
- 这里仅针对特殊场景,构建的是GUI程序,必须使用Windows环境,如果其他情况,使用docker构建更佳,这里不做讨论
参考文档:
使用python的venv虚拟环境
pipeline {
agent {
label "Windows"
}
stages {
stage('Build') {
steps {
//在当前目录下创建venv目录,用来放置虚拟环境)
sh 'python -m venv ./venv'
//python的应用需要使用虚拟环境执行,即加上"./venv/Scripts/"
//Linux中是"./venv/bin"
sh './venv/Scripts/pip install pytest'
}
}
stage('Test') {
steps {
sh './venv/Scripts/pytest'
}
}
}
}
- 当python已经设置环境变量时,可以直接使用
- "python -m venv ./venv"创建
- 当存在不同版本python时,使用对应版本的绝对路径
- "C:\Users\Administrator\AppData\Local\Programs\Python\Python39\python -m venv ./venv"创建
- 执行命令会覆盖旧环境(pip安装的依赖没有删除,需要自行测试是否有影响)