在 Cloud Build 管道中进行 运行 python 测试的最佳做法是什么?
What is a good practice to run python tests in the Cloud Build pipeline?
我想使用 google Cloud Build 创建一个 CI/CD 管道,以将 python 网络应用程序部署到 App Engine。
我有一个 tests.py
文件,它使用一些第三方库来 运行 一些测试。
在 App Engine 上部署应用程序之前,我希望 Cloud Build 运行 进行测试。为了实现这一点,我创建了这个 cloudbuild.yaml
文件,它在 /workspace 工作目录的 lib
文件夹中安装了一些带有 pip 的包,运行 测试,并在 App Engine 上部署应用程序:
steps:
- name: "docker.io/library/python:3.7"
args: ['pip', 'install', '-t', '/workspace/lib', '-r', 'requirements.txt']
- name: 'docker.io/library/python:3.7'
args: ["python", "tests.py"]
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app', 'deploy']
然而,我很难从 tests
模块的导入语句中访问 /workspace/lib 中 pip 安装的包,因为 /workspace/lib 不在 $PATH 环境变量中。我没有找到从这个配置文件访问云构建器上下文的 PATH 环境变量的方法,所以我现在正在做的是将 /workspace/lib 添加到 python 开头的路径中使用 sys.path 指令文件。
import sys
sys.path.append("/workspace/lib")
有没有更好的方法来 运行 Cloud Build 中需要使用 pip 安装包的测试步骤?
我找到了一种更好的方法,使用 PYTHONPATH 环境变量可以将 /workspace/lib
设置为 /workspace/lib
用于 运行 测试步骤。
steps:
- name: "docker.io/library/python:3.7"
args: ['pip', 'install', '-t', '/workspace/lib', '-r', 'requirements.txt']
- name: 'docker.io/library/python:3.7'
args: ["python", "tests.py"]
env: ["PYTHONPATH=/workspace/lib"]
我想使用 google Cloud Build 创建一个 CI/CD 管道,以将 python 网络应用程序部署到 App Engine。
我有一个 tests.py
文件,它使用一些第三方库来 运行 一些测试。
在 App Engine 上部署应用程序之前,我希望 Cloud Build 运行 进行测试。为了实现这一点,我创建了这个 cloudbuild.yaml
文件,它在 /workspace 工作目录的 lib
文件夹中安装了一些带有 pip 的包,运行 测试,并在 App Engine 上部署应用程序:
steps:
- name: "docker.io/library/python:3.7"
args: ['pip', 'install', '-t', '/workspace/lib', '-r', 'requirements.txt']
- name: 'docker.io/library/python:3.7'
args: ["python", "tests.py"]
- name: 'gcr.io/cloud-builders/gcloud'
args: ['app', 'deploy']
然而,我很难从 tests
模块的导入语句中访问 /workspace/lib 中 pip 安装的包,因为 /workspace/lib 不在 $PATH 环境变量中。我没有找到从这个配置文件访问云构建器上下文的 PATH 环境变量的方法,所以我现在正在做的是将 /workspace/lib 添加到 python 开头的路径中使用 sys.path 指令文件。
import sys
sys.path.append("/workspace/lib")
有没有更好的方法来 运行 Cloud Build 中需要使用 pip 安装包的测试步骤?
我找到了一种更好的方法,使用 PYTHONPATH 环境变量可以将 /workspace/lib
设置为 /workspace/lib
用于 运行 测试步骤。
steps:
- name: "docker.io/library/python:3.7"
args: ['pip', 'install', '-t', '/workspace/lib', '-r', 'requirements.txt']
- name: 'docker.io/library/python:3.7'
args: ["python", "tests.py"]
env: ["PYTHONPATH=/workspace/lib"]