代码之家  ›  专栏  ›  技术社区  ›  user856232

詹金斯参数释放与分期

  •  0
  • user856232  · 技术社区  · 7 年前

    我在詹金斯创造了一个自由式工作,我刚刚建立(最新版本)。

    我给它添加了参数。其中之一是releaseType的选项选择,其中包含staging和release选项。

    其中一个构建步骤是在将站点上载到时在服务器上执行远程命令。它使用执行Windows批处理命令生成步骤。

    以下是命令行(具有通用的内容):

    sexec myuser@mysite.com -pw=mypassword -cmd="PowerShell -Command ""C:\batch\bvCopyFast.ps1 C:\inetpub\mysite${ReleaseType}\siteLoad C:\inetpub\mysite${ReleaseType}\site""
    

    基本上,我正在执行一个PowerShell命令,该命令使用Robocopy将文件从上载文件夹复制到站点的实际发布文件夹。

    如您所见,我需要将$releaseType替换为实际值。问题是,当执行此操作时,它不执行替换。我只是在命令中使用了这个文字值,但这不起作用。

    1 回复  |  直到 7 年前
        1
  •  0
  •   supermerio    7 年前

    如果使用-command参数,则意味着您将在后面的引号之间编写原始PowerShell代码(允许您像调用脚本一样调用脚本)。

    PowerShell -Command "Get-Date; pause;"
    

    要调用PowerShell脚本文件,应使用:

    PowerShell -File "Your-Script.ps1 -Parameter1 Argument1 -Parameter2 Argument2"
    

    https://docs.microsoft.com/en-us/powershell/scripting/components/console/powershell.exe-command-line-help?view=powershell-6

    我将编写一个PowerShell脚本,它接受您的根路径和releaseType作为参数,并执行该脚本。

    Param($rootPath,$releaseType)
    {
       robocopy "$($rootPath)\$($releaseType)\siteLoad" "$($rootPath)\$($releaseType)\site"  
    }
    

    我从来没有用过詹金斯,所以我希望它能像我期望的那样工作!

    sexec myuser@mysite.com -pw=mypassword -cmd=""PowerShell -File 'C:\batch\newScript.ps1' -RootPath 'c:\inetpub\mysite' -ReleaseType {ReleaseType}""
    
    推荐文章