【问题标题】:What is a good practice to run python tests in the Cloud Build pipeline?在 Cloud Build 管道中运行 python 测试的最佳做法是什么?
【发布时间】:2019-07-09 04:09:58
【问题描述】:

我想使用 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 模块的导入语句中访问 pip 在 /workspace/lib 中安装的包,因为 /workspace/lib 不在 $PATH 环境变量中。我没有找到从这个配置文件访问云构建器上下文的 PATH 环境变量的方法,所以我现在正在做的是将 /workspace/lib 添加到我的 python 文件开头的路径中。路径说明。

import sys
sys.path.append("/workspace/lib")

有没有更好的方法在 Cloud Build 中运行需要使用 pip 安装包的测试步骤?

【问题讨论】:

    标签: python continuous-integration google-cloud-build


    【解决方案1】:

    我找到了一种更好的方法,使用 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"]
    

    【讨论】:

      猜你喜欢
      • 2019-07-16
      • 2019-07-28
      • 2023-03-17
      • 1970-01-01
      • 2017-11-16
      • 2021-04-23
      • 2020-05-27
      • 2019-04-26
      • 1970-01-01
      相关资源
      最近更新 更多