詹金斯版本:2.176.1
我们的 Jenkinsfile 参数随着时间的推移而发生了变化,我注意到 GUI 中仍然提供旧参数,而新参数则不提供。多次运行后仍然如此。我们使用多分支管道。新的功能分支具有当前参数,但像 master 这样的旧分支则没有。
我们的 Jenkinsfile 管道是声明性的,具有管道外部的功能。我在日志中没有看到任何错误,并且看到主分支的一条日志消息,显示“ Obtained Jenkinsfile from c0c0a09ae128f788139f13b9b7fc37d473dd35bf”,这是正确的修订版。任何帮助,将不胜感激。
def checkoutCode() {
if (params.GIT_REVISION=='HEAD') {
checkout scm
} else {
checkout([$class: 'GitSCM',
branches: [[name: "${params.GIT_REVISION}"]],
doGenerateSubmoduleConfigurations: false,
extensions: [],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: 'sdfdjlkfdslfdjsdsfljds', url: 'git@github.com:company/repo.git']]
])
}
}
...
pipeline {
options {
skipDefaultCheckout()
}
agent {
label 'platform-services || platform-worker'
}
parameters {
choice(name: 'DEPLOY_ENV', choices: "staging\nproduction\n", description: '')
choice(name: 'LABEL', choices: "a\nb\nc\nd\n", description: '')
string(name: 'GIT_REVISION', defaultValue: 'HEAD', description: 'Git …Run Code Online (Sandbox Code Playgroud) 我不确定我缺少什么,但我无法按名称过滤(使用正则表达式)或按名称过滤(使用通配符)来匹配任何分支。即使使用默认的.* Discover 分支也能正常工作。我错过了一些明显的东西吗?
我认为答案是否定的,但是声明式 Jenkins 管道是否可以基于 git 分支设置代理。您似乎无法使用when块。
尝试使用 Invoke-RestMethod 更新现有 VSTS 工作项时,我不断收到
您必须在请求正文中传递有效的补丁文档。
这是我要经过的
$Body = '[{ "op": "test", "path": "/rev", "value": 1},{ "op": "add", "path": "/fields/System.IterationPath", "value":"' + $caseIterationPath + '"},{ "op": "add", "path": "/fields/System.AreaPath", "value":"' + $caseAreaPath + '"}]'
Invoke-RestMethod -Uri "$rootUri/_apis/wit/workitems/$($case.id)?$apiVersion" -Method PATCH -ContentType application/json-patch+json -Headers @{Authorization= $authorization} -Body $Body
Run Code Online (Sandbox Code Playgroud)
身体扩展到
"[{ "op": "test", "path": "/rev", "value": 1},{ "op": "add", "path": "/fields/System.IterationPath", "value":"Foo\Bar 2016.4\2016.4.02"},{ "op": "add", "path": "/fields/System.AreaPath", "value":"Foo\Apps\Bar Stool\Eating"}]"
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!