我想在 groovy 中为 jenkins 编写一个 DSL 作业构建脚本,它会自动为我们的项目进行部署作业。每个项目中都有一个用于 ansible 角色和主机参数的通用 yml 文件,我想阅读它并使用它的内容来配置作业。
问题是到目前为止我使用snakeyml 来读取yml 文件,但它返回一个我无法有效使用的arraylist(更像是一个地图)。
有人知道更好的解决方案吗?
我的 yml 示例文件:
---
- hosts: app.host
roles:
- role: app-db
db_name: myproje_db
db_port: "3306"
migrate_module: "my-proje-api"
- role: java-app
app_name: "myproje-api"
app_artifact_name: "my-proje-api"
app_links:
- myproje_db
我在我的主 groovy 脚本中从工作区读取文件:
InputStream configFile = streamFileFromWorkspace('data/config.yml')
并在另一个类的另一个函数中处理它:
public String configFileReader(def out, InputStream configFile){
def map
Yaml configFileYml = new Yaml()
map = configFileYml.load(configFile)
}
它以数组列表形式返回地图类类型。