【问题标题】:is it possible to import functions to jenkinsfile outside pipeline是否可以将函数导入管道外的 jenkinsfile
【发布时间】:2021-06-10 03:12:19
【问题描述】:

我有一个简单的管道。 我能够在管道块之外获取属性并成功运行它。 当我尝试将属性块移动到外部 groovy 并使用“加载”导入它甚至使用共享库时,管道失败了。 有没有办法在管道块之外共享一段代码?

这是我对失败的共享库的尝试。

@Library("shared-library") _

properties()

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building..'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing..'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}

这是我对失败的导入 groovy 的尝试。

def shared_funcs = load "${env.WORKSPACE}/shared/@script/shared_funcs.groovy"
shared_funcs.properties()

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building..'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing..'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}

这将输出“缺少必需的上下文类 hudson.FilePath 可能你忘记在代码中加上提供此功能的步骤,例如:node"

shared_funcs.groovy

def call() {
properties([ parameters([
  string( name: 'AWS_ACCESS_KEY_ID', defaultValue: ''),
  string( name: 'AWS_SECRET_ACCESS_KEY', defaultValue: '')
]), pipelineTriggers([]) ])
}

【问题讨论】:

  • 请出示shared_funcs.groovy的内容
  • 我将它添加到问题中:-)

标签: jenkins jenkins-pipeline jenkins-groovy


【解决方案1】:

确保您的全球管道库具有正确的结构。 https://www.jenkins.io/doc/book/pipeline/shared-libraries/#directory-structure

确保您在该库的 vars/ 目录中有一个文件。出于您的目的,它应该被命名为 shared_funcs.groovy 并被构造为一个函数。

def call(){
  properties([ parameters([
    string( name: 'AWS_ACCESS_KEY_ID', defaultValue: ''),
    string( name: 'AWS_SECRET_ACCESS_KEY', defaultValue: '')
    ]), pipelineTriggers([]) ])
}

您需要使用call() 来构建它才能工作。

【讨论】:

  • 我做到了。由于某种原因,我面临上述错误
猜你喜欢
  • 2020-03-28
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 2022-11-11
相关资源
最近更新 更多