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

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

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

1 声望
2 粉丝
0 条评论
推荐阅读
python日志logging配置
python日志logging配置为了方便ELK收集日志,将日志打印成json格式开发过程中,使用json格式不方便排查问题本文章使用python的logging模块,一步步增加配置,来说明每个组件作用原始日志python可以使用两种方式打...

言午日尧耳总阅读 755

Ubuntu20.04 从源代码编译安装 python3.10
Ubuntu 22.04 Release DateUbuntu 22.04 Jammy Jellyfish is scheduled for release on April 21, 2022If you’re ready to use Ubuntu 22.04 Jammy Jellyfish, you can either upgrade your current Ubuntu syste...

ponponon1阅读 4k评论 1

微服务架构下使用Jenkins自动化部署
在微服务架构中,随着服务越来越多,服务的打包部署就会成为一个相当麻烦的事情。比如说我的ccos项目目前就有10个服务需要部署,有没有什么办法让我们部署一次之后,只要点击执行就可以自动部署呢?当然有!下面...

startshineye1阅读 3.9k

日常Python 代码片段整理
1、简单的 HTTP Web 服务器 {代码...} 2、单行循环List {代码...} 3、更新字典 {代码...} 4、拆分多行字符串 {代码...} 5、跟踪列表中元素的频率 {代码...} 6、不使用 Pandas 读取 CSV 文件 {代码...} 7、将列表...

墨城2阅读 316

Unicode 正则表达式(qbit)
前言本文根据《精通正则表达式》和 Unicode Regular Expressions 整理。本文的示例默认以 Python3 为实现语言,用到 Python3 的 re 模块或 regex 库。基本的 Unicode 属性分类 {代码...} 基本的 Unicode 子属性Le...

qbit阅读 4.4k

使用Jenkins优雅部署Java项目【超级详细的实战教程】
环境准备centos 7Java 1.8Maven 3.6.3Docker 20.10.17Gitlab gitlab-ce:14.0.5-ce.0Jenkins相关依赖环境安装Java环境安装虽然我们是采用docker的方式安装Jenkins,所有的依赖镜像都已经打包好了。但是我们在后续...

李博帅1阅读 1.2k评论 1

封面图
Python + Sqlalchemy 对数据库的批量插入或更新(Upsert)
由于不同数据库对这种 upsert 的实现机制不同,Sqlalchemy 也就不再试图做一致性的封装了,而是提供了各自的方言 API,具体到 Mysql,就是给 insert statement ,增加了 on_duplicate_key_update 方法。

songofhawk1阅读 2k评论 4

封面图

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

1 声望
2 粉丝
宣传栏