我在dev和prod中使用一个config.yml
文件来存储env
值。当我签入python代码时,GITHub Actions会构建映像并运行pytest。
现在-我不提交github代码目录中的config.yml
文件,因为环境变量(例如,像其他API端点服务:https://service_1.mydomain.com)对于每个环境都是不同的,因此我不希望它覆盖现有的config.yml
文件。
但是,对于GITHub Actions,如果它构建映像并运行pytests,并且没有config.yml
文件,您建议它做什么?是否存在";如果它不存在,则复制dockerfile的命令?
(假设我不想将config.yml
模拟为给定的dict(
有一个简单的方法:
- 将config.yml的副本添加到测试文件所在的
tests
文件夹中 - 读取config.yml,并将其返回到从原始路径读取config.yml文件的位置
完成。
path = Path(__file__).parent.parent.absolute().joinpath("tests/config.yml")
with open(path, 'r') as stream:
try:
cfg_dict=yaml.safe_load(stream)
print(pfm_dict)
except yaml.YAMLError as exc:
print(exc)
mocker.patch("utils.get_config_file", return_value=cfg_dict)