复制 yml 文件 IFF 它在 GITHub 操作中 - CI/CD



我在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(

有一个简单的方法:

  1. 将config.yml的副本添加到测试文件所在的tests文件夹中
  2. 读取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)

最新更新