当前位置: 首页 > 知识库问答 >
问题:

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

墨承泽
2023-03-14

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

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

`名称:Python应用程序on:push:branchs:[master]pull\u请求:branchs:[master]

工作:建造:

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`

测试失败截图

共有1个答案

沈骞仕
2023-03-14

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

首先,您的CI系统需要具有对要推送的数据的访问权限,这意味着它必须位于某个存储库中,以便可以获取。第二,CI系统可能需要很长时间才能运行,在CI系统运行时,没有人愿意等待成功或失败。如果你在一天工作结束前就推了怎么办?

通常执行此操作的方法是推送到分支,让CI系统运行,然后将其合并。如果您与多个人一起工作,那么使用拉取请求并将CI设置为在打开或更新CI时运行是正确的做法。否则,您只需将工作流设置为在所有分支上操作(类似于此),然后在分支通过时合并分支:

on: push
 类似资料:
  • 我正在尝试更新pom中的版本。在我的maven项目中,使用GitHub(release)操作,使用UI/Create-release标记中提供的值。 然而,我得到了一个错误: 我真的不明白为什么会这样。我认为git签出会给我一个带有默认(

  • 我刚刚开始为一个项目设置一个Github操作工作流。我试图在一个容器内运行工作流步骤,并使用以下工作流定义: 但工作流无法声明容器立即停止到期。 我尝试了很多图片,包括官方文档中描述的“alpine:3.8”图片,但容器停止了。 根据GitHub操作的工作流语法,在容器部分中:“一个容器,用于运行作业中尚未指定容器的任何步骤。”我的假设是容器将被启动,步骤将在Docker容器内运行。

  • 问题内容: 我有一个Jenkins作业,它通过Nightwatch.js框架在Browserstack上运行Selenium测试。我们有一套完整的测试程序,可以让守夜人在不同的进程中运行,并且我们需要一种在所有测试运行后将通过/失败值返回给Jenkins的方法。 我一直在尝试使用Nightwatch挂钩在每个模块的末尾运行一段代码,但是我无法弄清楚需要采取什么措施才能使Jenkins作业可以访问该

  • 频繁启动<code>Eclipse Juno<code>时,我发现<code>服务器无法启动</code>我删除了<code>。快照和临时文件夹,但我经常遇到同样的问题。 如果我更改工作空间,有时它会运行,有时它不会启动。为什么会这样?如何避免? 请清除我的问题,我经常得到它。

  • 问题内容: 我正在使用Jenkins,Maven 3.1和Java 1.6。我在詹金斯(Jenkins)建立了以下Maven职位,并具有以下目标和选择… 下面是我的pom.xml surefire配置… 但是,当我的单元测试失败时,Jenkins控制台输出仍然显示“ BUILD SUCCESS”,并且该构建被标记为“不稳定”,而不是完全失败。我如何在Jenkins(如果事实如此,则为Maven)中

  • 我使用的是Jenkins、Maven3.1和Java1.6。我有以下的Maven工作设置在詹金斯与以下目标和选择...