jenkins - 如何在詹金斯控制台的一个步骤中输出动态更新的变量。我为工作传递的配置文件(环境文件)
问题描述
我有一个配置文件,其中包含一些环境变量,包括一个名为 MONGO_UUID 的变量,我通过 configFileProvider 插件将此变量传递给测试步骤,并将其保存到 .env 文件中,如下所示:
stage('Build ') {
steps {
configFileProvider([configFile(fileId: 'jenkins_config_filename', variable: "CONFIG_FILE")]) {
sh '''
cp -f $CONFIG_FILE ./.env
npm run test // this step dynamically updates MONGO_UUID
echo "$MONGO_UUID" // trying to output newly updated value here
'''
jenkins_config_filename has following format:
MONGO_HOST=123.123.123.1
MONGO_DB=dbname
MONGO_US=user
MONGO_UUID=null
我要做的是输出通过配置文件传递给测试步骤的变量 MONGO_UUID,并且 MONGO_UUID 的值在此过程中得到更新。我可以看到 MONGO_UUID 已更新,因为我可以在 mongodb 中看到新记录,但我想知道如何在 jenkins 控制台中回显该值。
解决方案
在以下内容之后添加这一行(根据您的 MongoDB 配置进行适当的更改)npm run test
:
MONGO_UUID=`mongo db.collection.find("whatever you query is")`
然后您可以echo
将变量输出到 Jenkins 输出。如果要更新文件,可以使用sed
如下:
sed -i "s/MONGO_UUID=.*/MONGO_UUID=${MONGO_UUID}/" .env
推荐阅读
- singlestore - MEMSql join with uniouned 返回 1899 错误的分布式连接计划
- java - Java 13 SE 规范不需要缓存盒装字节对象吗?
- r - 将 R Shiny 应用程序连接到 Dropbox 不起作用
- javascript - 关键帧动画不会离开
- node.js - 当活动套接字只有一个时,NodeJs 无法监听 socket.io 私有通道
- javascript - 打字稿不理解字符串数组中的第一项是字符串
- python - 为什么列表索引超出范围?
- android - 短暂显示图像 - Android
- c++ - MPSC 队列设计问题(线程无法加入)
- reactjs - Nextjs 公用文件夹,下一个路由不起作用