我正在尝试通过CI / CD自动构建,测试和部署。我有一个python脚本,用于查询我的git远程存储库,以语义版本控制格式(x.x.x)选择最新的标记,并根据更改的类型递增它。
我想设置我的环境变量(GIT_NEW_VERSION),以便可以在我的Makefile中使用它,并且生成的二进制文件将具有可用的版本。这样做的问题是python脚本在一个子进程中运行,该子进程无法访问父进程变量。所以我只能为当前进程和之后创建的任何进程修改变量,而不是调用python脚本的进程。
我可以从python脚本中调用make
,但这不适合使用我的CI工具进行错误管理和日志记录。
答案 0 :(得分:0)
击:
LD_LIBRARY_PATH=my_path
sqsub -np $1 /path/to/executable
类似,在Python中:
import os
import subprocess
import sys
os.environ['LD_LIBRARY_PATH'] = "my_path" # visible in this process + all children
subprocess.check_call(['sqsub', '-np', sys.argv[1], '/path/to/executable'],
env=dict(os.environ, SQSUB_VAR="visible in this subprocess"))