我想使用 google Cloud Build 创建一个 CI/CD 管道,以将 python 网络应用程序部署到 App Engine。
我有一个 tests.py
文件,它使用一些第三方库来运行一些测试。
我希望 Cloud Build 在 App Engine 上部署应用程序之前运行测试。为了实现这一点,我创建了这个 cloudbuild.yaml
文件,它在/workspace 工作目录的 lib
文件夹中安装了一些带有 pip 的包,运行测试,并将应用程序部署到应用引擎:
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 环境变量中。我没有找到从这个配置文件访问 cloud builder 上下文的 PATH 环境变量的方法,所以我现在正在做的是将/workspace/lib 添加到我的 python 文件开头的路径中。路径说明。
import sys
sys.path.append("/workspace/lib")
是否有更好的方法在 Cloud Build 中运行需要使用 pip 安装包的测试步骤?
最佳答案
我找到了一种更好的方法来使用 PYTHONPATH 环境变量,该变量可以设置为 /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"]
关于python - 在 Cloud Build 管道中运行 python 测试的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56945228/