Git gancho pós-recebimento pendurado

1

Eu tenho um hook git post-receive que cria um programa Go e o executa. O problema é que estou obtendo toda a saída do programa Go e o git push "nunca termina" a execução, ficando preso lá.

Estou procurando uma maneira de executar o programa Go sem desligar o comando push.

Meu arquivo de pós-recebimento:

#!/bin/bash

while read oldrev newrev ref
do
    branch='echo $ref | cut -d/ -f3'
    if [ "production" == "$branch" -o "master" == "$branch" ]; then
    ...

        go build

        exec ./webservice

        echo 'Pushed!'
    fi
done
    
por fonini 02.02.2016 / 20:08

2 respostas

2

Posso sugerir que você coloque o papel (e o exec?) no backgroung com (go build ; exec ./webservice )&

Você não será informado se houver um problema no seu programa go pelo git, então você precisará de um log

Talvez uma solução melhor seja matar automaticamente o programa go se ele for muito longo com timeout .

    
por 02.02.2016 / 20:25
0

Resolvido com:

nohup ./webservice > output.txt 2>&1 &

Dessa forma, eu posso registrar o stdout e o stderr em um arquivo e evitar pendurar o git post-receive hook.

    
por 02.02.2016 / 22:21

Tags