如何从python脚本中获取gitlab-ci环境变量VERSION
的值-get_version.py
,以使gitlab-runners可以在OS Windows和Linux上运行?
我需要一些通用的解决方案,以便它在两个OS上都能正常工作。
这是我的.gitlab-ci.yml
:
stages:
- versioning
variables:
VERSION: ""
versioning:
stage: versioning
script:
- echo "[versioning] ..."
- python ./ci-cd_scripts/get_version.py
- echo $VERSION
这是我的./ci-cd_scripts/get_version.py
:
import os
refName = os.environ.get("CI_COMMIT_REF_NAME")
piplineID = os.environ.get("CI_PIPELINE_ID")
relVersion = refName + ".0." + piplineID
version = relVersion.replace("rel.", "")
print("current version is", version)
答案 0 :(得分:1)
我发现可以将其保存到临时文件中。
import os
refName = os.environ.get("CI_COMMIT_REF_NAME")
piplineID = os.environ.get("CI_PIPELINE_ID")
relVersion = refName + ".0." + piplineID
version = relVersion.replace("rel.", "")
print("current version is", version)
with open('.env', 'w') as writer:
writer.write(f'export VERSION="{version}"')
然后在管道中您只需使用 .env 文件导出变量
script:
- ./ci-cd_scripts/get_version.py
- source .env
- echo $VERSION
答案 1 :(得分:0)
通常是不可能的
您可以在Python脚本中使用os.environ
来设置和修改环境变量,但是在脚本完成后,一切都将恢复为先前的值。
在StackOverflow上阅读以下文章会很有帮助:
Why can't environmental variables set in python persist?
How do I make environment variable changes stick in Python?
Environment Variables in Python on Linux
答案 2 :(得分:0)
将您的On-hold
python脚本修改为:
Partial-paid
,然后在您的管道中:
wp_wc_product_meta_lookup