根据 cron 语法使用两个不同的参数安排 Azure DevpOs 管道
Schedule Azure DevpOs pipeline with two different parameters according to the cron syntax
我正在使用 Azure DevOps Pipeline 根据 cron 语法在不同的日期安排一个具有两个不同参数的管道。
查看触发器、条件,计划触发器和管道触发器似乎都不允许传递参数值。下面是我的参数。通常用户会用他选择的环境触发管道;没有任何问题。
parameters:
- name: environment
displayName: Select the Suite to execute
default: Test
values:
- Test
- Dev
- QA
如何按带参数的计划向管道添加参数?
schedules:
- cron: "0 1 10-15 * sat"
displayName: 7PM CST - SAT
branches:
include:
- feature
- cron: "0 3 25-31 * sat"
displayName: 9PM CST - SAT
branches:
include:
- feature
还检查了不满足我需要的策略选项,我无法找到新工作来安排具有如下参数的计划 运行,因为用户需要触发此管道根据环境选择,如果我指定这些条件 jobs/tasks 将不会触发。
pool:
vmImage: '**'
strategy:
matrix:
Run1:
myvar: 12
Run2:
myvar: 14
Run3:
myvar: 16
我们似乎没有方法在管道期间自动动态更改参数值 运行。
作为解决方法,您可以尝试设置以前的作业并在此作业中添加以下步骤:
执行API“Builds - Get”,如果构建运行是由预定触发器触发的,来自API的响应调用,可以得到预定触发器的名称(triggerInfo.scheduleName
)。在您的情况下,名称是“7PM CST - SAT”或“9PM CST - SAT”。
根据API调用返回的'scheduleName
',可以使用Logging命令“SetVariable" 来设置一个输出变量,其值为您要将其设置为环境的值。
那么在后续的依赖于上一个作业的作业中,就可以使用输出变量了。更多详情,您可以查看“Set a multi-job output variable”.
我能够从 API 调用中触发管道传递参数(浏览器、环境),如下所示
curl -L -X POST 'https://dev.azure.com/Org/project/_apis/build/builds?definitionId-**&api-version=6.1-preview.6' -H 'Authorization: $(ADO__AUTH)' -H 'Content-Type: application/json' --data
'{“定义”:{
"编号": 825
},
“资源”:{
"repositories": {
"self": {
"refName": "refs/heads/develop"
}
}
},
"templateParameters": {
"browser":"chrome",
"environment": "Test"
}
}'
我正在使用 Azure DevOps Pipeline 根据 cron 语法在不同的日期安排一个具有两个不同参数的管道。
查看触发器、条件,计划触发器和管道触发器似乎都不允许传递参数值。下面是我的参数。通常用户会用他选择的环境触发管道;没有任何问题。
parameters:
- name: environment
displayName: Select the Suite to execute
default: Test
values:
- Test
- Dev
- QA
如何按带参数的计划向管道添加参数?
schedules:
- cron: "0 1 10-15 * sat"
displayName: 7PM CST - SAT
branches:
include:
- feature
- cron: "0 3 25-31 * sat"
displayName: 9PM CST - SAT
branches:
include:
- feature
还检查了不满足我需要的策略选项,我无法找到新工作来安排具有如下参数的计划 运行,因为用户需要触发此管道根据环境选择,如果我指定这些条件 jobs/tasks 将不会触发。
pool:
vmImage: '**'
strategy:
matrix:
Run1:
myvar: 12
Run2:
myvar: 14
Run3:
myvar: 16
我们似乎没有方法在管道期间自动动态更改参数值 运行。
作为解决方法,您可以尝试设置以前的作业并在此作业中添加以下步骤:
执行API“Builds - Get”,如果构建运行是由预定触发器触发的,来自API的响应调用,可以得到预定触发器的名称(
triggerInfo.scheduleName
)。在您的情况下,名称是“7PM CST - SAT”或“9PM CST - SAT”。根据API调用返回的'
scheduleName
',可以使用Logging命令“SetVariable" 来设置一个输出变量,其值为您要将其设置为环境的值。那么在后续的依赖于上一个作业的作业中,就可以使用输出变量了。更多详情,您可以查看“Set a multi-job output variable”.
我能够从 API 调用中触发管道传递参数(浏览器、环境),如下所示
curl -L -X POST 'https://dev.azure.com/Org/project/_apis/build/builds?definitionId-**&api-version=6.1-preview.6' -H 'Authorization: $(ADO__AUTH)' -H 'Content-Type: application/json' --data
'{“定义”:{
"编号": 825
}, “资源”:{
"repositories": {
"self": {
"refName": "refs/heads/develop"
}
}
},
"templateParameters": {
"browser":"chrome",
"environment": "Test"
} }'