Den*_*aev 5 python environment-variables gitlab gitlab-ci
VERSION如何从 python 脚本中获取 gitlab-ci 环境变量值 -get_version.py对于可在 Windows 和 Linux 操作系统上运行的 gitlab-runners?我需要一些通用的解决方案,以便它可以在两种操作系统上运行。
这是我的.gitlab-ci.yml:
stages:
- versioning
variables:
VERSION: ""
versioning:
stage: versioning
script:
- echo "[versioning] ..."
- python ./ci-cd_scripts/get_version.py
- echo $VERSION
Run Code Online (Sandbox Code Playgroud)
这是我的./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)
Run Code Online (Sandbox Code Playgroud)
小智 5
我发现有效的方法是将其保存到临时文件中。
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}"')
Run Code Online (Sandbox Code Playgroud)
然后在管道中您只需使用 .env 文件导出变量
script:
- ./ci-cd_scripts/get_version.py
- source .env
- echo $VERSION
Run Code Online (Sandbox Code Playgroud)
通常是不可能的
您可以使用os.environ内部 Python 脚本设置和修改环境变量,但当脚本完成时,一切都会恢复到之前的值。
阅读 StackOverflow 上的这些帖子会很有帮助:
为什么python中设置的环境变量不能持久化?
如何使环境变量更改保留在 Python 中?
Linux 上 Python 的环境变量
| 归档时间: |
|
| 查看次数: |
20585 次 |
| 最近记录: |