云构建无法打开 requirements.txt
Cloud build can't open 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', 'install', '-r', 'My_Project/function_one/requirements.txt', '--user']
- name: 'python'
dir: 'MyProject/function_one/'
args: ['python3', 'pytest', 'My_Project/function_one/dir_pytest/']
但我仍然得到错误,(我也尝试在 args
之后放置 dir
但它并没有太大变化
我也注意到了;在 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 克隆,那么您的存储库位于具有存储库名称的目录中。区别是:
/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
文件,然后 运行 测试。
我想设置一个云构建触发器,这样每次我修改(提交和推送)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', 'install', '-r', 'My_Project/function_one/requirements.txt', '--user']
- name: 'python'
dir: 'MyProject/function_one/'
args: ['python3', 'pytest', 'My_Project/function_one/dir_pytest/']
但我仍然得到错误,(我也尝试在 args
之后放置 dir
但它并没有太大变化
我也注意到了;在 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 克隆,那么您的存储库位于具有存储库名称的目录中。区别是:
/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
文件,然后 运行 测试。