当前位置: 首页 > news >正文

windows 版本Jenkins的Jenkinsfile中共享变量

场景

jenkins部署在windows服务器上的,需要在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来设置变量

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的值即命令执行的输出,满足需求

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.lryc.cn/news/423063.html

相关文章:

  • Android-->产物收集(含apk文件重命名, aab文件重命名)
  • matlab实现迷宫最佳路径规划
  • 【自用】Python爬虫学习(二):网页解析的三种方式(re、bs4、xpath)
  • 从零到一:家政保洁小程序搭建全攻略与功能作用深度解析
  • 单元测试:为工程质量保驾护航
  • 江协科技STM32学习笔记
  • RabbitMQ再回首--往事如梦
  • 头狼择校小程序
  • 【Electron】npm安装Electron项目失败报错问题和解决办法
  • 人工智能提示(prompt)工程入门
  • 【机器学习的基本思想】模型优化与评估
  • 公司电脑监控软件推荐(一口气了解8款!)一起领略电脑监控界的刀光剑影!
  • 设备图纸资料管理系统:数字化转型下的高效协同与安全管理新篇章
  • ArcGIS基础:标注转注记及简单处理
  • jQuery实现图片轮播效果
  • 关于天地图新手使用
  • STM32与Arduino和ESP32对比分析
  • 125. 验证回文串【 力扣(LeetCode) 】
  • 3年经验,面试测试岗20k都拿不到了吗?
  • 【ML】强化学习(Reinforcement Learning)及其拆解
  • 在宝塔面板下安装WordPress
  • 纷享销客CRM AI产品架构概览、产品特色
  • 【文件IO】文件系统操作
  • Spring Cloud Alibaba 集成分布式定时任务调度功能
  • 中职云计算实训室
  • 【python制作一个小程序作为七夕礼物】
  • 一篇文章教会你如何使用Haproxy,内含大量实战案例
  • PythonStudio 控件使用常用方式(二十二)TFlowPanel
  • 培训第二十七天(lvs_nat模式与lvs_dr模式配置)
  • JAVA中DateFormat详解