windows 版本Jenkins的Jenkinsfile中共享变量

ops/2024/9/23 21:06:53/

场景

jenkins部署在windows服务器上的,需要在Jenkinsfile中获取命令执行的结果存入一个变量,然后在后续的执行中使用此变量
一开始想的是定义一个环境变量,如下所示,

jenkinsfile">pipeline {agent anystages {stage('test') {steps {bat 'for /f %%i in (\'pipenv --version\') do ( set env=%%i)' //把pipenv --venv的执行结果给变量envbat 'echo %env%'}   }}
}

注意: windows上执行结果赋值给变量,如果在控制台是for /f %i in ('pipenv --venv') do ( set env=%i), 在批处理文件中是for /f %%i in ('pipenv --venv') do ( set env=%%i)
但是发现不存在变量env, 然后把命令中的set替换成setx,然后Jenkins服务器上查看变量env设置成功了,但是执行输出还是空, 重启一下服务器就能获取到此变量,这种不满足我的需求然后尝试后面的方法

方法一

通过script来设置变量

jenkinsfile">pipeline {agent anystages {stage('test') {steps {script{ result = bat(script:' where pipenv', returnStdout:true).trim()echo "${result}"}   }}
}

通过以上方式获得的result结果是C:\Users\Administrator\.jenkins\workspace\test>where pipenv D:\Python\Python312\Scripts\pipenv.exe, 结果中包含了执行命令,也不满足需求

方法二

执行结果存文件, 验证virtural_env的值即命令执行的输出,满足需求

jenkinsfile">pipeline {agent anystages {stage('run') {steps {bat ' pipenv --venv>virtural_path'  //执行结果存入virtural_pathscript {virtural_env = readFile('virtural_path').trim()    //执行结果赋值给 virtural_env}bat """${virtural_env}/Scripts/activate.bat """  //"""${virtural_env}"""引用变量}}
}

http://www.ppmy.cn/ops/93336.html

相关文章

堆的实现(偷懒版)

🌹个人主页🌹:喜欢草莓熊的bear 🌹专栏🌹:数据结构 目录 前言 一、堆的实现 1.1 堆的向下调整算法 思路: 1.2 堆的向上调整算法 1.3 堆的创建 1.4 堆的复杂度计算 向下调整建堆的复杂度…

AI换脸模型(384-448模型430万底丹)

模型训练素材19万张来自于 1、香港中文大学CelebA预训练集-WF512版-量大角度全-11万5千张 2、DST全角度训练图集V3.1 WF512【2.6W张 6GB 】 3、女性人脸数据,预训练炼丹专用 4、补全SRC极限角度 5、全角度512分辨率7万张素材 下载地址: 链接&#xf…

Tomcat 最大连接数实现原理

spring boot 内置tomcat设置连接数 max-connections: 5 server:port: 9898servlet:context-path: /testtomcat:connection-timeout: 5000max-connections: 5accept-count: 5 ##初始化连接数量connectionLimitLatch protected LimitLatch initializeConnectionLatch() {if (ma…

centos安装rclone挂载alist

一、安装alist 1.通过docker启动alist docker run -d --restartalways \-v /usr/local/docker/alist/data:/opt/alist/data \-p 5244:5244 \-e PUID$(id -u) \-e PGID$(id -g) \-e UMASK022 \--name alist \xhofe/alist:latest2.访问alist 使用docker logs alist在容器日志中…

docker部署rabbitMQ

docker部署rabbitMQ 如果用目录挂载会启动失败,要用数据卷挂载。 docker pull rabbitmq:3.8-management #挂载数据卷 -v mq-plugins:/plugins \ #设置主机名 --hostname mq \ docker run \-e RABBITMQ_DEFAULT_USERrabbitmq \-e RABBITMQ_DEFAULT_PASS1234 \-v mq…

Json-JacksonUtils工具类扩展(jackson转换Page)

如果你想使用 Jackson 来处理分页数据,通常会涉及到将分页结果转换成 JSON 或者从 JSON 反 序列化成分页结果。这里我们假设你正在使用一个类似于 Page 的分页模型,它可以包含分页数据 和一些元数据,如当前页数、总页数、总记录数等。 Page 类定义 首先定义一个 Page 类…

DuDuTalk:ASR与NLP技术,如何共同赋能AI智能工牌?

在人工智能瞬息万变的时代,AI智能工牌凭借其卓越的功能和广泛的应用场景正在逐步走入我们的日常生活。在这背后,自动语音识别(ASR)和自然语言处理(NLP)这两项关键技术,正是推动其快速发展的核心…

jenkins一键推送到远程服务器并用docker容器启动

1.安装jenkins 我后端使用的是宝塔面板来安装的容器化jenkins,要选中允许外部访问,安装完之后没有那个选项了,一开始安装的时候要选中不使用域名和后面的允许外部访问。Jenkins 版本为: 2.462.1 2.配置Jenkins 2.1 Git plugin 安装完毕之…