gpt4 book ai didi

python - 当工作流测试失败时,如何避免在 Github 中推送?

转载 作者:行者123 更新时间:2023-12-04 17:28:57 25 4
gpt4 key购买 nike

我创建了在提交之前测试我的 Python 应用程序的工作流。问题在于,如果测试失败,则无论如何都会推送提交。如果测试不成功,我如何添加条件以避免推送?

下面的工作流文件 .yml 的结构。

`名称:Python 应用程序
在:
推:
分支:[主]
拉请求:
分支:[主]

工作:
build :

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v1
with:
python-version: 3.8
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Lint with flake8
run: |
pip install flake8
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
pip install pytest
pytest`

Test fail screenshot

最佳答案

由于几个原因,您实际上无法阻止 CI 系统的推送。

首先,您的 CI 系统需要有权访问要推送的数据,这意味着它必须位于某个存储库中,以便可以获取它。其次,CI 系统可能需要很长时间才能运行,并且没有人愿意在 CI 系统运行时闲逛并等待他们的推送成功或失败。如果你在工作日结束前插入会怎么样?

您通常执行此操作的方式是推送到一个分支,让 CI 系统运行,然后合并它。如果您与多人合作,那么使用拉取请求并将您的 CI 设置为在打开或更新时运行是正确的举措。否则,您可以将工作流设置为对所有分支进行操作(像这样),然后在通过时合并分支:

on: push

关于python - 当工作流测试失败时,如何避免在 Github 中推送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61464151/

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