pipeline { agent any options { timeout(time: 2, unit: 'DAYS') } stages { stage('git pull') { steps { echo 'git pull' dir('/var/lib/jenkins/workspace/CI_Code_Pull') { git credentialsId: 'pw_lh', url: 'http://172.16.2.83/testtools/PaxTestByPytest.git', branch: 'auto_ci' } } } stage('Build') { steps { timeout(time: 48, unit: 'HOURS') { build job: 'CI_Version_Test_Child', parameters: [ string(name: 'serialNo', value: '172.16.120.187:6714'), string(name: 'product_name', value: 'A80'), string(name: 'os_path', value: 'ftp://172.16.2.161/pub/os/A80S/PayDroid_10.0_Cedar_V17.2.12T0_20230713_Release.paydroid'), string(name: 'runtime', value: '430'), string(name: 'app_runtime', value: '360'), string(name: 'monkeyapp_runtime', value: '180'), string(name: 'packageList', value: 'com.android.camera2,com.android.documentsui') ], wait: false build job: 'CI_Version_Test_Child', parameters: [ string(name: 'serialNo', value: '172.16.120.187:6713'), string(name: 'product_name', value: 'A80'), string(name: 'os_path', value: ''), string(name: 'runtime', value: '430'), string(name: 'app_runtime', value: '360'), string(name: 'monkeyapp_runtime', value: '180'), string(name: 'packageList', value: 'com.android.camera2,com.android.documentsui') ], wait: false } } } } } 两个CI_Version_Test_Child是串行还是并行构造
时间: 2024-02-14 16:30:45 浏览: 130
根据你提供的Jenkins Pipeline代码,使用了两个`build`步骤分别调用了`CI_Version_Test_Child`作业,并且设置了`wait: false`参数。这表示两个`build`步骤会并行执行,而不是串行执行。
设置`wait: false`参数可以使得每个`build`步骤在启动作业后立即继续执行下一个步骤,而不需要等待作业完成。这样可以提高流水线的执行效率,但也可能导致并行执行的作业之间存在依赖关系时出现问题。
如果你希望两个`CI_Version_Test_Child`作业串行执行,可以将其中一个`build`步骤的`wait`参数设置为`true`,这样第一个作业完成后才会继续执行下一个步骤。例如:
```
build job: 'CI_Version_Test_Child', parameters: [...], wait: true
build job: 'CI_Version_Test_Child', parameters: [...], wait: false
```
这样第一个作业完成后,才会继续执行第二个作业。
相关问题
pipeline { agent any options { timeout(time: 2, unit: 'DAYS') } stages { stage('git pull') { steps { echo 'git pull' git credentialsId: 'pw_lh', url: 'http://172.16.2.83/testtools/PaxTestByPytest.git', branch: 'dev' } } stage('Build') { steps { timeout(time: 48, unit: 'HOURS') { build job: 'CI_Version_Test_Demo', parameters: [ string(name: 'serialNo', value: '172.16.120.187:6714'), string(name: 'fastbootSerialNo', value: '1240249707'), string(name: 'product_name', value: 'A80'), string(name: 'isVersionTest', value: 'true'), string(name: 'runtime', value: '430'), string(name: 'app_runtime', value: '360'), string(name: 'monkeyapp_runtime', value: '180'), string(name: 'packageList', value: 'com.android.camera2,com.android.documentsui') ], wait: false // build job: 'CI_Version_Test_Child', parameters: [ // string(name: 'serialNo', value: '1240249703'), // string(name: 'fastbootSerialNo', value: '1240249703'), // string(name: 'product_name', value: 'A80S'), // string(name: 'isVersionTest', value: 'true'), // string(name: 'runtime', value: '4320'), // string(name: 'app_runtime', value: '360'), // string(name: 'monkeyapp_runtime', value: '1080'), // string(name: 'packageList', value: 'com.android.camera2,com.android.documentsui') // ], wait: false } } } } } 以上脚本添加git下载到指定文件夹:/var/lib/jenkins/workspace/CI_Code_Pull下,怎么写
要将Git代码下载到指定文件夹 `/var/lib/jenkins/workspace/CI_Code_Pull`,你可以使用Pipeline的`dir`指令来指定目标文件夹。修改你的Pipeline脚本如下:
```groovy
pipeline {
agent any
options {
timeout(time: 2, unit: 'DAYS')
}
stages {
stage('git pull') {
steps {
echo 'git pull'
dir('/var/lib/jenkins/workspace/CI_Code_Pull') {
git credentialsId: 'pw_lh', url: 'http://172.16.2.83/testtools/PaxTestByPytest.git', branch: 'dev'
}
}
}
stage('Build') {
steps {
timeout(time: 48, unit: 'HOURS') {
build job: 'CI_Version_Test_Demo', parameters: [
string(name: 'serialNo', value: '172.16.120.187:6714'),
string(name: 'fastbootSerialNo', value: '1240249707'),
string(name: 'product_name', value: 'A80'),
string(name: 'isVersionTest', value: 'true'),
string(name: 'runtime', value: '430'),
string(name: 'app_runtime', value: '360'),
string(name: 'monkeyapp_runtime', value: '180'),
string(name: 'packageList', value: 'com.android.camera2,com.android.documentsui')
], wait: false
}
}
}
}
}
```
在脚本中,我在 `git pull` 阶段的步骤中添加了 `dir('/var/lib/jenkins/workspace/CI_Code_Pull')` 来指定下载代码的目标文件夹。然后,使用 `git` 命令在该目录下克隆指定的Git仓库。
注意确保目标文件夹 `/var/lib/jenkins/workspace/CI_Code_Pull` 存在,并且具有适当的权限,以便Jenkins能够在该目录下进行操作。
jenkins pipeline timeout stages级别使用
Jenkins Pipeline中,可以在stage级别设置超时时间。可以使用`timeout`指令来设置stage的超时时间,如下所示:
```
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'make'
}
timeout(time: 1, unit: 'HOURS') // 设置Build stage的超时时间为1小时
}
stage('Test') {
steps {
sh 'make test'
}
timeout(time: 30, unit: 'MINUTES') // 设置Test stage的超时时间为30分钟
}
}
}
```
`timeout`指令中,`time`参数指定超时时间,`unit`参数指定时间单位。除了stage级别的超时时间外,还可以在整个Pipeline中设置超时时间,如下所示:
```
pipeline {
agent any
options {
timeout(time: 1, unit: 'HOURS') // 设置整个Pipeline的超时时间为1小时
}
stages {
stage('Build') {
steps {
sh 'make'
}
}
stage('Test') {
steps {
sh 'make test'
}
}
}
}
```
在这个例子中,整个Pipeline都会在1小时后超时。如果某个stage的超时时间比整个Pipeline的超时时间要短,那么stage的超时时间会覆盖整个Pipeline的超时时间。
阅读全文