0

Jenkins で簡単なビルド プロセスをテストしています。ビルド セクションには、Windows バッチ コマンドの実行があります。

echo %ERRORLEVEL%
cscript C:\Users\user\Documents\test.vbs
echo %ERRORLEVEL%

私の test.vbs は、ERRORLEVEL環境変数を設定する以外には何もしません。wscript.quitまた、それが影響するかどうかを確認するために使用してみましたERRORLEVEL

dim wShell
dim wSysEnv

set wShell = Wscript.CreateObject("WScript.Shell")
set wSysEnv = wShell.Environment("SYSTEM")

WScript.Echo "ERRORLEVEL=" & wSysEnv( "ERRORLEVEL" )
wSysEnv( "ERRORLEVEL" ) = 0
WScript.Echo "ERRORLEVEL=" & wSysEnv( "ERRORLEVEL" )
wSysEnv( "ERRORLEVEL" ) = 2
WScript.Echo "ERRORLEVEL=" & wSysEnv( "ERRORLEVEL" )
WScript.Quit 3

ビルド後のアクションはありません。コンソール出力は次のとおりです。

Started by user anonymous
Building in workspace C:\Program Files (x86)\Jenkins\jobs\TADS Host-Agent client\workspace
[workspace] $ cmd /c call C:\Users\user\AppData\Local\Temp\hudson4571524647235360597.bat

C:\Program Files (x86)\Jenkins\jobs\TADS Host-Agent client\workspace>echo 1 
1

C:\Program Files (x86)\Jenkins\jobs\TADS Host-Agent client\workspace>cscript C:\Users\user\Documents\test.vbs 
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

ERRORLEVEL=0
ERRORLEVEL=0
ERRORLEVEL=2

C:\Program Files (x86)\Jenkins\jobs\TADS Host-Agent client\workspace>echo 1 
1

C:\Program Files (x86)\Jenkins\jobs\TADS Host-Agent client\workspace>exit 1 
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE

上記の出力に示すように、ERRORLEVELスクリプトを開始する前は 1 です。スクリプトは正常ERRORLEVELに 2 に設定され、コード 3 で終了します。しかしERRORLEVEL、スクリプトの最後で を確認すると、開始時に 1 に戻ります。 .

環境変数は現在のプロセスと子プロセスに対してのみ設定されていると述べたページをいくつか見つけました。つまり、セッション環境変数です。

ERRORLEVELJenkinsがテストを成功または失敗として報告するように設定するにはどうすればよいですか? スクリプトの実行開始時にのみ、実行時に変数をチェックするようには見えません。スクリプトが変数の値を変更する可能性があるため、これは役に立ちません。

4

1 に答える 1