首页 > 解决方案 > jenkins 是否以某种方式使用 -noprofile 参数运行 powershell 步骤?

问题描述

我想自定义 jenkins 运行的 PS 会话的配置文件

我将我的个人资料复制到几乎所有可能的位置,并在管道中运行它以确认它在那里并且其内容是正确的:

powershell 'cat $PsHome\\Profile.ps1'

在配置文件中,我设置了一些别名和环境变量

在 powershell 步骤中,如果我检查别名列表和环境变量,我看不到我的配置文件包含的更改:

powershell 'ls alias:'
powershell 'ls env:'

它看起来不像詹金斯正在运行带有-noprofile的powershell:https ://github.com/jenkinsci/powershell-plugin/blob/d3e8aec4074bdfa5f5032c71a3e6ba4a3c6c8340/src/main/java/hudson/plugins/powershell/PowerShell.java

为什么我的个人资料没有被执行?

标签: powershelljenkinsjenkins-pipelinejenkins-plugins

解决方案


正如您的帖子所假设的那样,管道作业中的powershell命令并非来自 PowerShell 插件。

PowerShell 插件仅用于在 Freestyle 作业上添加执行 PowerShell 步骤,不支持管道。

这个插件支持管道吗?不,但是 Pipeline: Nodes and Processes 插件提供了一个 powershell 步骤

他们遇到了相反的情况,配置文件总是被加载,问题是如何在需要时避免它们。最近合并了一个新的 PR 以集成一个开关来选择是否应加载配置文件

管道作业的 powershell 实现来自管道:节点和流程插件(又名工作流-持久任务-步骤-插件),目前,它不包含启用禁用加载配置文件的参数。

相关文件在此处此处,以防您了解它们并使用附加参数创建新 PR。

GitLab 中的项目似乎禁用了问题,因此无法报告/请求。


推荐阅读