我想以编程方式确定特定的 Python 脚本是否在测试环境中运行,例如
等等。我意识到这需要一些启发,但这对我来说已经足够了。是否总是设置某些环境变量?用户名总是相同吗?等等
环境变量通常为每个 CI/CD 管道工具设置。
我所知道的:
os.getenv("GITHUB_ACTIONS")
os.getenv("TRAVIS")
os.getenv("CIRCLECI")
os.getenv("GITLAB_CI")
在各自的工具环境中执行时,将在Python脚本中返回
true
。
例如:
os.getenv("GITHUB_ACTIONS") == "true"
在 Github Action 工作流程中。os.getenv("CIRCLECI") == "true"
在 CircleCI 管道中。PS:如果我没记错的话,要识别python脚本是在
Jenkins
或Kubernetes Service host
中执行的,行为是不一样的。
我认为
CI
环境变量在大多数环境中都已定义
您的3个案例参考: