2

I have a jenkins pipeline job with the job config pulling Jenkinsfile from a repo . Once the job runs and pulls the jenkinsfile, it clones the repo and I can see it in workspace icon for the job.

Now when in Jenkinsfile I do cd ${workspace} and ls , it doesnt display anything. How do I access the workspace of the repo of the Jenkinsfile ? Or does it just store the Jenkinsfile itself ?

This is my Jenkinsfile :

node ("master"){ // Mark the code checkout 'Checkout'.... stage 'Checkout' sh "pwd ; ls" } 

As I run it, I get the following log:

> GitHub pull request #282 of commit > 0045a729838aae0738966423ff19c250151ed636, no merge conflicts. Setting > status of 0045a729838aae0738966423ff19c250151ed636 to PENDING with url > https://10.146.84.103/job/test1/ and message: 'Pull request builder > for this security group pr started' Using context: SG Terraform > Validate/Plan > > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > > git config remote.origin.url https://github.xxx.net/Terraform/djin-sg/ # timeout=10 Fetching > upstream changes from https://github.xxx.net/Terraform/djin-sg/ > > git --version # timeout=10 using GIT_ASKPASS to set credentials wsjbuild > > git fetch --tags --progress https://github.xxx.net/Terraform/djin-sg/ > +refs/heads/*:refs/remotes/origin/* > > git rev-parse origin/master^{commit} # timeout=10 Checking out Revision 9dd8491b7b18c47eac09cec5a4bff4f16df979bf (origin/master) > > git config core.sparsecheckout # timeout=10 > > git checkout -f 9dd8491b7b18c47eac09cec5a4bff4f16df979bf First time build. Skipping changelog. [Pipeline] node Running on master in > /var/lib/jenkins/workspace/test1 [Pipeline] { [Pipeline] stage > (Checkout) Using the ‘stage’ step without a block argument is > deprecated Entering stage Checkout Proceeding [Pipeline] wrap > [Pipeline] { [Pipeline] sh [test1] Running shell script > + cd /var/lib/jenkins/workspace/test1 > + ls 

My question specifically is that to get the Jenkinsfile it clones the djin-sg repo. Its in the workspace as well. So When I do ls why does it show no files ?

As I go to the Jenkins job pipeline steps and open workspace in console I can see the full repo in workspace but I cant seem to access it in the job.

2
  • what are you trying to accomplish? could you post a minimum, complete, and verifiable (stackoverflow.com/help/mcve) example in the form of a Jenkinsfile? Commented Jul 23, 2017 at 2:14
  • @burnettk - please see edit Commented Jul 23, 2017 at 4:01

2 Answers 2

2

Try instead a Jenkins pipeline syntax, like:

pipeline { agent { node { label 'master' } } stages { stage('After Checkout') { steps { sh 'pwd; ls' } } } } 
Sign up to request clarification or add additional context in comments.

Comments

1

You can do checkout scm to actually checkout a repository to the workspace or you can find it under ../${env.JOB_NAME}@script only on master.
It's better to always checkout checkout scm manually because slaves do not have ../$env.JOB_NAME@script folder.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.