2012-08-13 161 views
3

在我的哈德森日誌中,我看到錯誤或失敗,但哈德森說,建立是成功的。 是不是?哈德森/詹金斯不會失敗的錯誤

這是哈德森沒有(運行ant幾次)

call f:\runGenericAntBuild.bat %WORKSPACE% f:\general-build.properties %WORKSPACE%\build\buildProjects.xml deploy %BUILD_NUMBER% %SVN_REVISION% 

call f:\runGenericAntBuild.bat %WORKSPACE% f:\general-build.properties %WORKSPACE%\build\buildProjects.xml MyJavaProject %BUILD_NUMBER% %SVN_REVISION% 

call f:\runGenericAntBuild.bat %WORKSPACE% f:\general-build.properties %WORKSPACE%\build\buildProjects.xml buildGrails %BUILD_NUMBER% %SVN_REVISION% 

call f:\runGrailsClean.bat %WORKSPACE%\MyProject 

謝謝!

+0

編寫單元測試通常會在拋出異常時傳遞 - 這可能是您在日誌中看到的嗎? – chb 2012-08-13 09:18:50

+0

不,這不是'正常',但您應該提供更多信息(日誌內容,作業配置等),否則將很難提供幫助。 – Matteo 2012-08-13 09:19:00

回答

9

你有沒有一個批量生成的步驟,它包含所有四個call命令?如果是,那是你的問題。

批處理看起來像它沒有做,在任何一個步驟錯誤的東西,因此將該批次的狀態是最後一個命令的狀態(你的清潔步驟)

要麼將​​它分成四個獨立的構建步驟在Hudson/Jenkins中,或者處理批處理腳本中的錯誤。

例如

call f:\runGenericAntBuild.bat your params here || exit /b 1 
call f:\runGenericAntBuild.bat next params here || exit /b 2 
call f:\runGenericAntBuild.bat third param here || exit /b 3 
call f:\runGrailsClean.bat more param as needed || exit /b 4 

通過這種方式,批處理將以1-4的錯誤退出,具體取決於失敗的步驟。

+2

也有類似的情況,我有時候會用這個:'if%ERRORLEVEL%NEQ 0 exit/b%ERRORLEVEL%' – tomfanning 2012-08-13 11:09:56

+0

我有很多工作用 call command1 && call command2 – whitey04 2012-08-15 02:27:45

2

據我所知詹金斯/哈德森能夠成功完成工作,因爲它能夠完成分配給他的工作。您可能沒有在buildProjects.xml文件中設置任何屬性,說明構建必須在出錯時失敗。有一個屬性聲明構建失敗時失敗。