【发布时间】:2018-02-06 11:07:21
【问题描述】:
我可以通过将以下代码放入我的存储库(称为 repo1)中的“Jenkinsfile”中并通过 Jenkins GUI 创建一个新项目来轮询存储库来创建管道。
pipeline {
agent {
docker {
image 'maven:3-alpine'
args '-v /root/.m2:/root/.m2'
}
}
stages {
stage('Build') {
steps {
sh 'mvn -B -DskipTests clean package'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
post {
always {
junit 'target/surefire-reports/*.xml'
archiveArtifacts artifacts: 'target/*.jar', fingerprint: true
}
}
}
stage('Deploy') {
steps {
sh 'echo \'uploading artifacts to some repositories\''
}
}
}
}
但我有一个案例,不允许我通过 Jenkins GUI 创建新项目,但有一个预定义的作业,它读取我提供的存储库中的 JobDSL 文件。所以,我需要通过 JobDSL 创建相同的管道,但是我找不到所有东西的相应语法,例如,我找不到 'agent' DSL 命令。
这是我试图更改的作业 DSL 代码。
pipelineJob('the-same-pipeline') {
definition {
cps {
sandbox()
script("""
node {
stage('prepare') {
steps {
sh '''echo 'hello''''
}
}
}
""".stripIndent())
}
}
}
例如,我找不到“代理”命令。使用job DSL真的可以得到准确的流水线吗?
【问题讨论】:
标签: jenkins continuous-integration continuous-deployment