【发布时间】:2021-02-13 23:23:50
【问题描述】:
从管道中,我很简单地尝试将我的模拟器进程 ID 设置为我在 shell 脚本中的变量 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
如何在此处正确地将 EMULATOR_PID 变量分配给我的模拟器进程 ID?
【问题讨论】:
标签: shell jenkins groovy jenkins-pipeline sh