多次运行命令并触发失败报告

多次运行命令并触发失败报告

我试图在我的项目上运行“make”命令 100 次。但是,显然我不会监视结果,但我想知道构建何时失败。

当构建失败时,我该如何让它触发通知、邮件或报告?

我这样做是为了运行“make”100 次

    for run in {1..100}
    do
    make
    done

答案1

如果你希望每次失败时都发生一些事情make,你可以打电话

make || mail ...

或者,如果您只对失败次数感兴趣,请将退出状态记录make在关联数组中:

#! /bin/bash
declare -A exits

for run in {1..100} ; do
    make
    (( exits[$?]++ ))
done

echo Code Number
for code in "${!exits[@]}" ; do
    echo $code ${exits[$code]}
done

答案2

以下脚本可以通知成功或失败。您可以轻松实现 mail_notification 或其他吗?

也许,你必须看看这个概念持续集成以获得更强大的解决方案。

#!/usr/bin/env bash

echo_notification() {
  echo "$(date +%Y%m%d:%H:%m:%S) : compilation failed"
}

no_notification() {
  true
}

for run in {1..100} ; do
  make && no_notification || echo_notification 
done

如果您只想在第一次失败时收到通知,则可以set -e在 bash 中使用 shell 脚本中的失败退出。

相关内容