gpt4 book ai didi

github - 使用 Cloud Build Trigger 对 Github Pull Request 中提到的文件运行 Pytest

转载 作者:行者123 更新时间:2023-12-05 05:51:45 24 4
gpt4 key购买 nike

我有一个 Cloud Build 触发器,它仅在 Github 存储库的 master 分支上创建新的 Pull Request 时运行。

但是,现在,pytest 正在整个 repo 上运行,而我要求 pytest 仅在 Pull Request 中创建/编辑的文件上运行。

我的cloudbuild文件如下:

#Testing
steps:
- name: 'python:3.7'
id: Testing
entrypoint: 'bash'
args:
- '-c'
- |
pip install --upgrade pip \
&& pip install -r requirements.txt \
&& pytest **/test_*.py

知道如何实现吗?

最佳答案

我相信 Cloud Build 不会在拉取请求中公开已修改文件的列表,但作为解决方法,您可以使用 Github 的 webhooks。

  1. 根据 documentation 使用替换过程在云构建中获取“_PULL_REQUEST_ID”_PULL_REQUEST_ID $(pull_request.pull_request.id)

  2. 在 github rest api 中使用替换过程中收到的上述拉取请求 ID 并获取修改/创建文件的列表。

    a) 要了解此 api 的工作原理,请参阅 api link .

    b) 如何使用 rest api 引用 rest link .

    c) 引用 github 上的示例代码 github link .

    根据 doc 将 GITHUB_REPOSITORY 更新为 $REPO_NAME并将 github.event.pull_request.number 更新为步骤 1 中收到的数字

    URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/${{ github.event.pull_request.number }}/files"
    文件=$(curl -s -X GET -G $URL | jq -r '.[] | .filename')
    echo “$FILES” > modified.txt

  3. 按照上面的示例代码,文件列表将保存到 modified.txt。当您获得修改/创建文件的列表时,您可以通过使用 bash while 循环或 python 循环从 modified.txt 获取文件名来对这些文件执行测试。

关于github - 使用 Cloud Build Trigger 对 Github Pull Request 中提到的文件运行 Pytest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70330175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com