パイプラインから、次のように、エミュレーターのプロセスIDをシェルスクリプト内の変数EMULATOR_PIDに設定しようとしています。
def EMULATOR_HOME = 'C:/Users/USER/AppData/Local/Android/Sdk/emulator'
def EMULATOR_PID
pipeline {
agent any
stages {
stage('Start emulator') {
steps {
sh "$EMULATOR_HOME/emulator -avd Pixel_2_API_29 -port 5554 -wipe-data & $EMULATOR_PID=\$!"
}
}
次の段階では、次のようにそのプロセスを強制終了しようとしています。
stage('Kill process') {
steps {
sh "kill $EMULATOR_PID"
}
ビルドを開始すると、次のエラー出力が表示されます。
+ null=5749 <------ EMULATOR_PID
+ C:/Users/USER/AppData/Local/Android/Sdk/emulator/emulator -avd Pixel_2_API_29 -port 5554 -wipe-
data
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Kill processes)
[Pipeline] sh
+ kill null <------- "null" IS MY EMULATOR_PID
C:/Users/USER/AppData/Local/Jenkins/.jenkins/workspace/Android Test Pipeline@tmp/durable-
d7aac378/script.sh: line 1: kill: null: arguments must be process or job IDs
ここでエミュレータプロセスIDにEMULATOR_PID変数を正しく割り当てるにはどうすればよいですか?
次のオプションを使用できます。
sPID= sh (
script: "$EMULATOR_HOME/emulator -avd Pixel_2_API_29 -port 5554 -wipe-data & echo \$!;",
returnStdout: true
).trim()
クリーンな数を取得するには、変数sPIDに少し取り組む必要があるかもしれません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加