Executando o comando várias vezes e acionando o relatório em caso de falha

0

Estou tentando executar o comando "make" no meu projeto 100 vezes. Mas, obviamente, eu não estaria monitorando os resultados, mas gostaria de saber quando a compilação falhar.

Como eu faria para ativar uma notificação, um e-mail ou um relatório quando a criação falhava?

Estou fazendo isso para executar "make" 100 vezes

    for run in {1..100}
    do
    make
    done
    
por Anirudh 10.11.2016 / 13:11

2 respostas

1

Se você quer que algo aconteça toda vez que make falhar, você pode ligar

make || mail ...

Ou, se estiver interessado apenas no número de falhas, registre o status de saída de make em uma matriz associativa:

#! /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
    
por 10.11.2016 / 13:18
1

O script a seguir pode notificar sobre sucesso ou falha. Você poderia implementar mail_notification ou outro facilmente?

Talvez você precise dar uma olhada no conceito de Integração contínua para obter uma solução mais robusta.

#!/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

Se você quiser ser notificado apenas sobre a primeira falha, você pode usar set -e no bash para sair com falha em um script de shell.

    
por 10.11.2016 / 15:23