2015-08-07 13 views
7

ho appena messa a punto Jenkins CI del server della costruzione, ma ho avuto un problema con la configurazione corretta FreeFileSync file batch e il comando che chiama il file batch utilizzato per la distribuzione l'applicazione dopo averla costruita.Configurazione Jenkins CI lavoro e FreeFileSync batch Utilizzo di Windows Comando batch

call Path\deploy.ffs_batch 

La build console visualizza successo se deploy.ffs_batch esecuzione ha avuto successo. Ma nel caso in cui le impostazioni deploy.ffs_batch non fossero corrette, ad esempio percorso errato come destinazione, la generazione non si interrompe mai e lo spinner del registro della console su Hudson continua a girare senza fermarsi e senza fornire alcuna informazione.

Quello che ho cercato è l'aggiunta di questo comando sotto quello sopra al comando batch di Windows:

if %errorlevel% neq 0 exit %errorlevel% 

Ma costruire ancora non felice (filatore continua a girare).

Tuttavia, quando posso controllare la cartella di registro per il file batch FreeFileSync, vedo questo:

[03:52:46 PM] Info: Starting comparison
[03:52:46 PM] Error: Cannot find the following folders: D:\Deploy\1\Dev You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.
[03:52:46 PM] Error: Synchronization stopped

capisco l'errore e posso risolvere il problema. Ma io davvero non voglio cercare sempre nella cartella di registro le risposte quando ciò si verifica. Quindi la mia domanda è come posso emettere l'errore FreeFileSync sul log della console di Hudson e anche interrompere la compilazione usando il comando batch di Windows?

risposta

2

Ho scoperto che mi mancava un passaggio fondamentale quando si è verificato un errore e questo interrompe la sincronizzazione quando si verifica un errore per impedire l'esecuzione infinita del lavoro di hudson.

FreeFileSync Batch Job

Dopo aver impostato questo per fermare, aggiorno il mio comando batch a:

cd "Path\FreeFileSync\" 
FreeFileSync.exe "Path\deploy.ffs_batch" 
echo. 
echo. 
echo =============================================================================== 
echo ##### Results : 
echo =============================================================================== 
echo. 
echo. 
@echo off 
for /f "delims=" %%x in ('dir "Path\logs\" /od /b') do set recent=%%x 
echo. 
echo =============================================================================== 
if %ERRORLEVEL% == 0 goto SYNCSUCCESS 
if %ERRORLEVEL% == 1 goto SYNCWARNINGS 
if %ERRORLEVEL% == 2 goto SYNCERRORS 
if %ERRORLEVEL% == 3 goto SYNCABORTED 
goto SYNCFAIL 
:SYNCFAIL 
echo ##### FreeFileSync failed. 
type "path\logs\%recent%" 
exit 2 
:SYNCSUCCESS 
echo ##### FreeFileSync completed successfully! 
exit 0 
:SYNCWARNINGS 
echo ##### FreeFileSync completed, but with warnings. 
type "path\logs\%recent%" 
exit 1 
:SYNCERRORS 
echo ##### FreeFileSync completed, but with warnings. 
type "path\logs\%recent%" 
exit 2 
:SYNCABORTED 
echo ##### FreeFileSync aborted. 
type "path\logs\%recent%" 
exit 3 

Si prega di notare: casella di controllo minimizzato Run deve essere controllato anche per evitare l'esecuzione del processo continuamente. Il lavoro viene eseguito e si interrompe quando si verifica un errore.