Jenkins load
DSL 旨在加载作业工作区中可用的外部化 groovy 文件,如果您尝试加载 Jenkins 共享库中可用的 groovy 脚本,它将无法工作,因为共享库永远不会在作业工作区中签出。
如果您遵循如下标准共享库结构,则可以这样做:
shared-library
├── src
│ └── org
│ └── any
│ └── GetAccount.groovy
└── vars
└── aws.groovy
GetAccount.groovy
package org.any
class GetAccount {
def getAccount(accountName) {
def awsAccount = "abcd"
return awsAccount;
}
}
aws.groovy
import org.any;
def call() {
def x = new GetAccount()
// make use of val and proceed with your further logic
def val = x.getAccount('xyz')
}
在您的 Jenkinsfile(声明式或脚本式)中,您可以同时使用共享库 groovy 类,例如:
使用 aws.groovy
脚本化管道
node {
stage('deploy') {
aws()
}
}
声明性管道
pipeline {
agent any;
stages {
stage('deploy') {
steps {
aws()
}
}
}
}
利用 GetAccount.groovy
脚本管道
import org.any
node {
stage('deploy') {
def x = new GetAccount()
// make use of val and proceed with your further logic
def val = x.getAccount('xyz')
}
}
声明性管道
import org.any
pipeline {
agent any;
stages {
stage('deploy') {
steps {
script {
def x = new GetAccount()
// make use of val and proceed with your further logic
def val = x.getAccount('xyz')
}
}
}
}
}