我有一个配置文件,该文件具有一些环境变量,其中包括一个名为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控制台中回显该值。
答案 0 :(得分:0)
在npm run test
之后添加此行(根据您的MongoDB配置进行适当的更改):
MONGO_UUID=`mongo db.collection.find("whatever you query is")`
,然后您可以将变量echo
移至Jenkins输出。
如果要更新文件,可以使用sed
,如下所示:
sed -i "s/MONGO_UUID=.*/MONGO_UUID=${MONGO_UUID}/" .env