gpt4 book ai didi

pipeline - 如何防止 Bitbucket Pipelines 中的步骤失败?

转载 作者:行者123 更新时间:2023-12-03 21:11:56 34 4
gpt4 key购买 nike

我正在运行我所有的测试用例,其中一些用例有时会失败,管道检测到它并使步骤和构建失败。这会阻止要执行的下一步(压缩报告文件夹)。我想将该 zip 文件作为电子邮件附件发送。
这是我的 bitbucket-pipelines.yml 文件

custom: # Pipelines that can only be triggered manually
QA2: # The name that is displayed in the list in the Bitbucket Cloud GUI
- step:
image: openjdk:8
caches:
- gradle
size: 2x # double resources available for this step to 8G
script:
- apt-get update
- apt-get install zip
- cd config/geb
- ./gradlew -DBASE_URL=qa2 clean BSchrome_win **# This step fails**
- cd build/reports
- zip -r testresult.zip BSchrome_winTest

after-script: # On test execution completion or build failure, send test report to e-mail lists
- pipe: atlassian/email-notify:0.3.11
variables:
<<: *email-notify-config
TO: 'email@email.com'
SUBJECT: "Test result for QA2 environment"
BODY_PLAIN: |
Please find the attached test result report to the email.
ATTACHMENTS: config/geb/build/reports/testresult.zip
Screenshot of build failure
步骤:
- cd build/reports 
and
- zip -r testresult.zip BSchrome_winTest
不要被执行,因为 - ./gradlew -DBASE_URL=qa2 clean BSchrome_win失败的
我不希望 bitbucket 使该步骤失败并停止执行 Queue 的步骤。

最佳答案

bitbucket-pipelines.yml文件只是在 Unix 上运行 bash/shell 命令。脚本运行器查找每个命令的返回状态码,看是否成功(status = 0)或失败 (status = non-zero) .因此,您可以使用各种技术来控制此状态代码:
添加 " || true"到你的命令结束

./gradlew -DBASE_URL=qa2 clean BSchrome_win || true
当您添加 "|| true"在 shell 命令的末尾,它的意思是“忽略任何错误,并始终返回成功代码 0”。更多信息:
  • Bash ignoring error for a particular command
  • https://www.cyberciti.biz/faq/bash-get-exit-code-of-command/

  • 使用“gradlew --continue”标志
    ./gradlew -DBASE_URL=qa2 clean BSchrome_win --continue
    "--continue"标志可用于防止单个测试失败停止整个任务。因此,如果一个测试或子步骤失败,gradle 将尝试继续运行其他测试,直到所有测试都运行完毕。但是,如果重要步骤失败,它仍可能返回错误。更多信息: Ignore Gradle Build Failure and continue build script?
    将 2 个步骤移至 after-script部分
    after-script:
    - cd config/geb # You may need this, if the current working directory is reset. Check with 'pwd'
    - cd build/reports
    - zip -r testresult.zip BSchrome_winTest
    如果您将创建 zip 的 2 个步骤移至 after-script部分,那么它们将始终运行,无论上一步的成功/失败状态如何。

    关于pipeline - 如何防止 Bitbucket Pipelines 中的步骤失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63204212/

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