如何解决云构建无法打开Requirements.txt
我想设置一个云构建触发器,以便每次我修改(提交和推送)main.py
时,它都使用test_mainpytest.py
执行pytest
我有一个看起来像这样的项目:
My_Project\function_one\
main.py
deploy.yaml
requirements.txt
dir_pytest\
test_mainpytest.py
我的deploy.yaml
包含以下步骤:
steps:
- name: 'python'
args: ['pip3','install','-r','My_Project/function_one/requirements.txt','--user']
- name: 'python'
args: ['python3','pytest','My_Project/function_one/dir_pytest/']
此刻,我只想尝试使用触发器执行pytest
。当我执行云构建触发器时,出现此错误:
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'My_Project/function_one/requirements.txt'
我的项目也保存在Google云存储库中。
编辑:
我尝试在步骤中添加dir
,所以目前看起来像这样:
steps:
- name: 'python'
dir: 'MyProject/function_one/'
args: ['pip3','--user']
- name: 'python'
dir: 'MyProject/function_one/'
args: ['python3','My_Project/function_one/dir_pytest/']
但是我仍然收到错误消息,(我还尝试将dir
放在args
之后,但是并没有太大改变
我也注意到了;在Cloud Build中执行触发器时; 2行:
Initialized empty Git repository in /workspace/.git/
From https://source.developers.google.com/p/my_id_1234/r/My_Project
我应该使用https://source.developers.google.com/p/my_id_1234/r/My_Project
并将路径添加到我的requirement.txt
和我的py_test
目录吗?
解决方法
您能显示整个cloudbuild.yaml吗?如果使用构建触发器,则将存储库直接导入/ workspace中。如果您正在执行git clone,则您的存储库位于带有存储库名称的目录中。区别是:
/workspace/my-repository/My_Project/function_one/requirements.txt
与
/workspace/My_Project/function_one/requirements.txt
如果没有其他效果,则可以执行ls -R
向您显示构建中的目录结构。将其添加为第一个构建步骤:
- name: 'list recursively'
args: ['ls','-R']
,
请注意,Cloud Build使用名为/workspace
的目录作为工作目录来保留内容。您可以在cloudbuild.yaml文件中添加dir
field,以便Cloud Build找到requirements.txt
文件,然后运行测试。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。