本地编译通过的脚本在jenkins调用后报错source环境变量不生效

一、‌问题场景

1.‌本地构建与Jenkins构建的差异

  • 在本地执行脚本时一切正常,‌但在Jenkinsfile中调用该脚本时会导致构建失败。‌

2.‌脚本中source的环境变量在Jenkins构建时报错

  • 日志中无法直接看出是因为source命令没有生效,‌因为source命令本身并没有返回值,‌但会导致依赖这些环境变量的后续执行结果报错。‌

3.‌尝试的解决方式及其局限性

  • 尝试将"source build/encsetup.sh"修改为". build/encsetup.sh" 或 "./build/encsetup.sh",‌但这只能在局部脚本中生效,‌不能解决Jenkins构建失败的问题。‌               

二、‌解决方案

1.‌确认sh脚本的头行

  • 确认脚本文件的首行是否为#!/bin/bash。‌由于服务器本身是shell环境,‌即使脚本没有头行的bash也能正常构建,‌但在Jenkinsfile中调用时,‌如果没有#!/bin/bash,‌Jenkins可能无法识别source命令导致构建失败。

三、‌衍生问题的处理思路

-‌Jenkinsfile中使用source命令

  • 如果在Jenkinsfile中需要使用source命令来执行环境变量设置,‌也需要在对应的stage中添加#!/bin/bash命令,‌以确保source命令能够正确生效。‌否则,‌即使脚本中包含source命令,‌也可能因为环境解释器的差异而导致命令不生效。‌
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值