Dynami c scm, генерирующий для Job DSL - PullRequest
0 голосов
/ 23 апреля 2020

Скажем, у меня есть файл с именем 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"
            }
        }
    }
}
...