如何选择 Jenkins 应使用的 Powershell 版本?
How to choose which Powershell version Jenkins should use?
我正在为我的 Jenkins 构建服务器使用 this Powershell 插件。如您所见,最近的更新之一允许选择 Powershell 版本:
我服务器上 运行ning 的版本是 1.7。当我尝试实际更改 Powershell 的版本时出现问题,因为给出的示例使用脚本管道,而我的项目使用声明管道,因此缺少用于版本选择的内置选项。如何强制 Jenkins 使用 Powershell 7.2 而不是默认的 5.*?
我能想到的唯一解决方案是使用 Powershell 5 启动 Powershell 7,然后 运行 我的 .ps1 脚本那样,但这似乎 愚蠢 .
你可以让它成为有条件的。仅当版本大于 5.0 时,此脚本才会使用版本 7.2 重新启动。
if ($PSVersionTable.PSVersion -gt [版本]"5.0") {
powershell -版本 7.2 -文件 $MyInvocation.MyCommand.Definition
退出
}
'run some code'
读取主机提示“脚本已完成:按任意键退出”
在声明式和脚本式管道中,您可以使用 pwsh
步骤 运行 PS 7.x.
中的脚本
声明式:
pipeline {
agent any
stages {
stage('Test') {
steps {
pwsh '''
Write-Host "foo"
'''
}
}
}
}
脚本化:
node {
pwsh '''
Write-Host "foo"
'''
}
我正在为我的 Jenkins 构建服务器使用 this Powershell 插件。如您所见,最近的更新之一允许选择 Powershell 版本:
我服务器上 运行ning 的版本是 1.7。当我尝试实际更改 Powershell 的版本时出现问题,因为给出的示例使用脚本管道,而我的项目使用声明管道,因此缺少用于版本选择的内置选项。如何强制 Jenkins 使用 Powershell 7.2 而不是默认的 5.*?
我能想到的唯一解决方案是使用 Powershell 5 启动 Powershell 7,然后 运行 我的 .ps1 脚本那样,但这似乎 愚蠢 .
你可以让它成为有条件的。仅当版本大于 5.0 时,此脚本才会使用版本 7.2 重新启动。
if ($PSVersionTable.PSVersion -gt [版本]"5.0") {
powershell -版本 7.2 -文件 $MyInvocation.MyCommand.Definition
退出
}
'run some code'
读取主机提示“脚本已完成:按任意键退出”
在声明式和脚本式管道中,您可以使用 pwsh
步骤 运行 PS 7.x.
声明式:
pipeline {
agent any
stages {
stage('Test') {
steps {
pwsh '''
Write-Host "foo"
'''
}
}
}
}
脚本化:
node {
pwsh '''
Write-Host "foo"
'''
}