我下面有一个JenkinsFile声明性管道是结构-
pipeline{
agent{}
stages{
stage(dev_one){
steps{
}
}
stage(dev_two){
steps{
}
}
stage(test_one){
steps{
}
}
stage(test_two){
steps{
}
}
}
}
我看到JPL脚本中存在冗余,因为您看到stage(dev_one)和stage(test_one)将具有相同的步骤。 如何重用stage(dev_one),以便一个阶段可用于不同的环境。
答案 0 :(得分:0)
您可以将重复代码包装到一个函数中,然后在具有不同参数的多个阶段中调用该函数。
pipeline{
agent{}
stages{
stage(dev_one){
steps{
workOnEnv(this, 'dev_one', <next param>)
}
}
stage(dev_two){
steps{
workOnEnv(this, 'dev_two', <next param>)
}
}
stage(test_one){
steps{
}
}
stage(test_two){
steps{
}
}
}
}
void workOnEnv(Script script, String env, String param2, ...) {
script.echo "work on env: $env"
script.sh ""
script.step()
}
答案 1 :(得分:0)
void ENV_DEV_Deploy_and_Test(){
sshagent(credentials: ['iamcredentials']) {
sh '''
my script
'''
}
}
pipeline{
agent{}
stages{
stage('ENV-DEV Deploy and Test') {
steps {
ENV_DEV_Deploy_and_Test()
}
}
stage(dev_two){
steps{
}
}
stage(test_one){
steps{
}
}
stage(test_two){
steps{
}
}
}
}