В идеале я хотел бы иметь возможность запускать сценарий с каким-то модульным тестом, прежде чем я его выполню на Jenkins.Может быть проверен сценарий DSL
Есть ли способ проверить сценарий работы DSL, отличный от того, чтобы запустить jenkins?
В идеале я хотел бы иметь возможность запускать сценарий с каким-то модульным тестом, прежде чем я его выполню на Jenkins.Может быть проверен сценарий DSL
Есть ли способ проверить сценарий работы DSL, отличный от того, чтобы запустить jenkins?
Помимо примеров в job-dsl-gradle-example, вы также можете сделать еще один шаг и написать тесты для отдельных файлов или заданий. Например, давайте предположим, у вас есть файл конфигурации задания, расположенной на рабочих местах/deployJob.groovy
import javaposse.jobdsl.dsl.DslScriptLoader
import javaposse.jobdsl.dsl.MemoryJobManagement
import javaposse.jobdsl.dsl.ScriptRequest
import spock.lang.Specification
class TestDeployJobs extends Specification {
def 'test basic job configuration'() {
given:
URL scriptURL = new File('jobs').toURI().toURL()
ScriptRequest scriptRequest = new ScriptRequest('deployJob.groovy', null, scriptURL)
MemoryJobManagement jobManagement = new MemoryJobManagement()
when:
DslScriptLoader.runDslEngine(scriptRequest, jobManagement)
then:
jobManagement.savedConfigs.each { String name, String xml ->
with(new XmlParser().parse(new StringReader(xml))) {
// Make sure jobs only run manually
triggers.'hudson.triggers.TimerTrigger'.spec.text().isEmpty()
// only deploy every environment once at a time
concurrentBuild.text().equals('false')
// do a workspace cleanup
buildWrappers.'hudson.plugins.ws__cleanup.PreBuildCleanup'
// make sure masked passwords are active
!buildWrappers.'com.michelin.cio.hudson.plugins.maskpasswords.MaskPasswordsBuildWrapper'.isEmpty()
}
}
}
}
Таким образом, вы можете пройти через каждый узел XML вы хотите, чтобы убедиться, чтобы все нужные значения, установленные.
Посмотрите на job-dsl-gradle-example. Репо содержит test для DSL-скриптов.
Awesome, thanks – harmingcola