Hello,
This is a bit of newbie question so I apologize in advance.
- I have 2 nodes currently set up; a MASTER and a WORKER node.
- One of the steps in my declarative pipeline points to deploy-script.sh. The contents of deploy-script.sh:
While ssh'ed into WORKER node, from the workspace directory, I am able to run
and get the username of the current user (meaning no permission denied errors). Yet when this same command runs (in the content of steps defined in a JenkinsFile) I get a
Permission Denied error
Two things I noticed while trying to work through this issue
1). When I call sh and pass it a command directly, for example:
stage("Trial){
steps{
sh "whoami"
sh "pwd"
}
}
I get:
[feature-jenkinsfile] Running shell script
+ whoami
worker-agent
[Pipeline] sh
[feature-jenkinsfile] Running shell script
+ pwd
/home/worker-agent/jenkins/workspace/feature-jenkinsfile
2). Yet when I call 'sh' and pass it a path to a file to run, as I do here:
stage('Trial2'){
steps{
sh "pwd"
sh "./deploy-script.sh"
}
}
It appears that Jenkins creates a new temporary folder from within which it runs the script as can be seen by here:
[Pipeline] sh
[feature-jenkinsfile] Running shell script
+ pwd
/home/worker-agent/jenkins/workspace/feature-jenkinsfile
[Pipeline] sh
[feature-jenkinsfile] Running shell script
+ ./deploy-staging.sh
/home/worker-agent/jenkins/workspace/feature-jenkinsfile@tmp/durable-7e1f206b/script.sh: 2: /home/worker-agent/jenkins/workspace/feature-jenkinsfile@tmp/durable-7e1f206b/script.sh: ./deploy-staging.sh: Permission denied
When I run `ls -l` from
What am I missing? What am I failing to take into account? Would appreciate any feedback/explanations. Thanks