我有一个Powershell脚本从bitbucket存储库克隆到我的工作区中。如果我登录到jenkins服务器cli,则可以通过运行
cd /var/lib/jenkins/workspace/powershell
pwsh
./psscript.ps1
这可以按预期运行,但是当我尝试通过jenkins运行它时出现错误
/tmp/jenkins2117772455970634975.sh: line 3: ./psscript.ps1: Permission denied
我的詹金斯用户是
user.name netuser
当我同时在pwsh cli控制台和linux cli上执行whoami时,都会得到相同的结果
PS /var/lib/jenkins/workspace/powershell> whoami
netuser
[netuser@server1]$ whoami
netuser
显示詹金斯用户
[netuser@server1]$ ps axufwwww | grep 'jenkins\|java' -
netuser 31903 0.0 0.0 112660 980 pts/1 S+ 22:15 0:00 \_ grep --color=auto jenkins\|java -
答案 0 :(得分:1)
尝试
pwsh -command "&.\psscript.ps1"
如果需要-
sudo pwsh -command "&.\psscript.ps1"
答案 1 :(得分:0)
在执行以下操作之前,我无法通过jenkins运行我的第一个PS脚本。我必须将带有文件名的整个路径保存到变量中,然后调用powershell来执行。不知道这是否会帮助您。
$File_Path_Name = $ENV:WORKSPACE + "\file.ps1"
Powershell -File $File_Path_Name
答案 2 :(得分:0)
这里很好地介绍了如何在管道中使用它。
https://www.jenkins.io/blog/2017/07/26/powershell-pipeline/
他们增加了对Powershell核心的支持。看到这里
https://github.com/jenkinsci/workflow-durable-task-step-plugin/blob/master/CHANGELOG.md
这是在管道中使用它的方式。
pipeline {
agent any
stages {
stage ("PowershellDemo") {
steps {
pwsh ( returnStatus: true, script: "&.\psscript.ps1")
}
}
}
}