Jenkins多节点python环境隔离(Windows)

  1. 使用Jenkins构建过程中,需要使用多个Jenkins节点并发构建
  2. 由于条件限制,只有一台Windows宿主机,所以在这台宿主机上部署多个Jenkins节点
  3. shell命令中使用pip安装依赖,当多个构建并发时,有可能导致依赖被更改的情况
  4. 所以需要有环境隔离
  5. 这里仅针对特殊场景,构建的是GUI程序,必须使用Windows环境,如果其他情况,使用docker构建更佳,这里不做讨论

参考文档:

https://docs.python.org/zh-cn...

使用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安装的依赖没有删除,需要自行测试是否有影响)

言午日尧耳总
1 声望6 粉丝

不秃顶、不猝死,顺顺利利活到100可以吗?