如何使用jenkinsfile中的参数调用resources文件夹中的脚本?

时间:2017-09-30 23:34:06

标签: jenkins jenkins-plugins jenkins-pipeline

我有一个脚本我想传递参数并将其称为My-Script.ps1 -arg1 blah -arg2 lkjh

我的脚本位于资源文件夹中,我可以像这样导入和调用它:

def myScript = libraryResource 'PSScripts/My-Script.ps1'
powershell myScript

这可以按预期工作,但我怎样才能传递参数?

1 个答案:

答案 0 :(得分:0)

这只是一种可以使用的方法。 我结束了在函数中包装我的powershell脚本,然后使用名为powershellLibraryScript的共享库和以下代码:

def call(args) {
    args = [
        resource: null,
        script: ""
    ] << args
    def script = libraryResource(args.resource)
    powershell """
$script
# ---------------------------------------------
$args.script
    """
}

然后我用

调用它
powershellLibraryScript resource: 'MyPowerShellResource.ps1', script: 'MyFunction -Arg1 Value1 -Arg2 Value2'

powershell脚本可以就像

function MyFunction() {  
    [CmdletBinding()]
    param (
        [Parameter(Position=0, Mandatory=$false)]
        [ValidateNotNullOrEmpty()]
        [string] $arg1 = "value1",

        [Parameter(Position=1, Mandatory=$false)]
        [ValidateNotNullOrEmpty()]
        [string] $arg2 = "value2"
    )

    # Code...
}