jenkins_jobs.errors.JenkinsJobsException: The topmost collection in file '/home/huangzhongming/jenkins-job-builder/tests/yamlparser/job_fixtures/Test_properties.yaml' must be a list, not a <class 'collections.OrderedDict'> 刚刚测试上面这段yaml,有报错。请解决
时间: 2023-12-26 17:04:45 浏览: 117
jenkins_plugins.tar.gz
这个错误通常是由于 YAML 文件的格式问题引起的。根据报错信息,您的 YAML 文件中的顶级集合应该是一个列表,而不是一个有序字典(`OrderedDict`)。
要解决这个问题,您可以按照以下步骤检查和调整您的 YAML 文件:
1. 确保您的 YAML 文件以一个列表开头,并且每个属性定义都位于该列表中。例如,您可以在文件开头添加一个减号(`-`)来表示一个新的列表项。
2. 确保每个属性定义都正确缩进,并且位于正确的层级。在 YAML 中,缩进用空格表示,通常是2个或4个空格。确保属性定义在正确的父级下,并且缩进正确。
3. 检查文件中是否有其他语法错误,例如括号不匹配、缺少冒号等。这些错误也可能导致 YAML 解析错误。
以下是一个示例的 YAML 文件结构,用于定义多个 Jenkins 任务属性:
```yaml
- properties:
- authorization:
matrix:
inheritanceStrategy: org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy
permission: USER:hudson.model.Item.Read:anonymous
- build-discarder:
logrotator:
daysToKeep: 90
numToKeep: -1
artifactDaysToKeep: 30
artifactNumToKeep: -1
- gitlab-connection:
plugin: gitlab-plugin@1.7.7
gitLabConnection: src.ift.run
jobCredentialId: ""
useAlternativeCredential: false
- rebuild-settings:
plugin: rebuild@1.34
autoRebuild: false
rebuildDisabled: false
- throttle-job:
plugin: throttle-concurrents@2.11
maxConcurrentPerNode: 3
maxConcurrentTotal: 0
throttleEnabled: true
throttleOption: project
limitOneJobWithMatchingParams: false
paramsToUseForLimit: ""
configVersion: 1
- rate-limit-branch:
plugin: branch-api@2.1071.v1a_188a_562481
durationName: hour
count: 40
userBoost: true
```
请确保您的 YAML 文件与上述示例结构相似,并尝试重新运行 JJB 命令。如果问题仍然存在,请提供您的 YAML 文件内容以供进一步排查。
阅读全文