Скажем, у меня есть файл с именем job-dsl. groovy
И он имеет следующий состав:
// Unit Tests
job("unit") {
description("Run unit tests")
scm {
git {
branch "master"
remote {
url("github.com/some-user/some-repo")
credentials "credentials"
}
}
}
steps {
shell("unit.sh")
}
}
// Lint Tests
job("lint") {
description("Run lint tests")
scm {
git {
branch "master"
remote {
url("github.com/some-user/some-repo")
credentials "credentials"
}
}
}
steps {
shell("lint.sh")
}
}
И мы можем увидеть scm блок повторяется.
Цель состоит в том, чтобы сгенерировать это динамически - с помощью функции с именем generateScm () и иметь нечто похожее на следующее:
// Unit Tests
job("unit") {
description("Run unit tests")
generateScm()
steps {
shell("unit.sh")
}
}
// Lint Tests
job("lint") {
description("Run lint tests")
generateScm()
steps {
shell("lint.sh")
}
}
def generateScm() {
scm {
git {
branch "master"
remote {
url("github.com/some-user/some-repo")
credentials "credentials"
}
}
}
}