2015-08-07 23 views
7

Tôi vừa thiết lập Jenkins CI như xây dựng máy chủ của tôi nhưng tôi có một vấn đề với cấu hình một cách chính xác FreeFileSync tập tin thực thi và lệnh mà các cuộc gọi tập tin thực thi được sử dụng để triển khai ứng dụng sau khi xây dựng nó.Cấu hình Jenkins CI Job và FreeFileSync hàng loạt Sử dụng Windows Batch Command

call Path\deploy.ffs_batch 

Bảng điều khiển xây dựng hiển thị thành công nếu thực hiện deploy.ffs_batch thành công. Nhưng trong trường hợp các cài đặt deploy.ffs_batch sai ví dụ đường dẫn sai là đích, bản dựng không bao giờ dừng và bảng điều khiển nhật ký trên Hudson tiếp tục quay mà không dừng và không đưa ra bất kỳ thông tin nào.

Những gì tôi đã cố gắng là thêm lệnh này dưới một ở trên để lệnh batch Windows:

if %errorlevel% neq 0 exit %errorlevel% 

Nhưng xây dựng vẫn không hạnh phúc (spinner giữ spinning).

Tuy nhiên, khi tôi kiểm tra thư mục log cho tập tin batch FreeFileSync, tôi thấy điều này:

[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

Tôi làm hiểu sai và tôi có thể sửa chữa nó. Nhưng tôi thực sự không muốn luôn luôn tìm trong thư mục log để có câu trả lời khi điều này xảy ra. Vì vậy, câu hỏi của tôi là làm thế nào tôi có thể xuất các lỗi FreeFileSync trên bảng điều khiển Hudson đăng nhập và cũng hủy bỏ việc xây dựng bằng cách sử dụng lệnh Windows loạt?

Trả lời

2

Tôi phát hiện ra rằng tôi đã bỏ lỡ một bước quan trọng khi xảy ra lỗi và dừng đồng bộ hóa khi xảy ra lỗi để ngăn chặn công việc xây dựng hudson chạy không ngừng.

FreeFileSync Batch Job

Sau khi thiết lập này để dừng lại, tôi cập nhật lệnh lô của tôi để:

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 

Xin lưu ý: Run hộp giảm thiểu cần được kiểm tra cũng để tránh việc chạy liên tục. Công việc sẽ chạy và dừng khi có lỗi.

Các vấn đề liên quan