【发布时间】:2019-02-26 10:26:51
【问题描述】:
是否可以将环境变量设置为构建步骤的一部分,然后由后续构建步骤使用?
我想要完成的事情:
一个构建步骤会登录到机密服务器并获取其被要求构建的特定构建目标的登录凭据。
稍后的构建步骤使用这些凭据部署到特定的目标环境。
有没有办法从步骤 1 导出环境变量,然后在步骤 2 中可用?
【问题讨论】:
标签: makefile
是否可以将环境变量设置为构建步骤的一部分,然后由后续构建步骤使用?
我想要完成的事情:
一个构建步骤会登录到机密服务器并获取其被要求构建的特定构建目标的登录凭据。
稍后的构建步骤使用这些凭据部署到特定的目标环境。
有没有办法从步骤 1 导出环境变量,然后在步骤 2 中可用?
【问题讨论】:
标签: makefile
不,这是不可能的。这是所有 POSIX 系统中进程的一个基本方面,即一个进程无法修改其父(或兄弟)的环境。因此,当一个进程(无论它是如何被调用的)获得这些值时,它不能将它们“提升”到其父级的环境中。
进程可以将它们写入一个文件,以便以后的进程可以读取。
或者,进程可以将它们打印出来,父进程可以捕获输出并记住它,并将其解析到自己的环境中。在 GNU make 中可能是这样的:
creds := $(shell get-my-credentials)
如果没有要求和限制的更多细节,很难准确。
【讨论】: