I am using a declarative pipeline. It's not in a Jenkinsfile, however.

Thanks,
Pat

The last pipeline definition I used is below:

pipeline {
  agent any

  stages {
    stage('Build') {
      steps {
        echo 'Building'

        checkout([$class: 'GitSCM',
                  branches: [[name: '*/master']],
                  userRemoteConfigs: [[url: 
'https://github.com/sixeyed/jenkins-pipeline-demos.git']]])
      }
    }

    stage('Test') {
      steps {
        echo 'Testing'
      }
    }

    stage('Deploy') {
      steps {
        echo 'Deploying'
        bat 'dir'
      }
    }
  }
}

On Monday, February 1, 2021 at 7:01:59 PM UTC-6 Mark Waite wrote:

> On Mon, Feb 1, 2021 at 1:54 PM Patrick Moran wrote:
>
>> Mark,
>>
>> I tried to reproduce your steps as best I could. 
>> - I already have git, java and jenkins installed so I did not re-install 
>> them. 
>> - I added the git and java paths to the jenkins configuration. 
>> - I replaced my repo with a public repo on GitHub since it looks like I 
>> would need credentials to access yours. 
>>
>> I still get the same error. 
>>
>> I did notice the following:
>>
>> - If I add a bat 'dir' command to the test stage, it shows that the 
>> directory is the jenkins working directory, but there are no files in that 
>> directory. 
>> - Once the pipeline has completed, I can look at the jenkins working 
>> directory and see all the files I expect to be there.
>> - If I try to run a batch file from the repo in the test stage (or any 
>> other stage), I get an error that the file does not exist. 
>> - If I try to run a batch file from a different directory on the machine 
>> it successfully runs that batch file.
>>
>> It seems like the checkout has not actually cloned the repo to my jenkins 
>> workspace while running the pipeline, but that the files are there when the 
>> pipeline has finished. Is this correct?
>>
>>
> Since you didn't share your Pipeline definition file, it is difficult to 
> state what should be expected.  In the declarative Pipeline definition that 
> I shared, the option " skipDefaultCheckout true " is enabled.  When that is 
> enabled, then the declarative pipeline does not perform a checkout 
> implicitly when it starts.  Without the skipDefaultCheckout true option, 
> the declarative pipeline performs a checkout step on the agent before any 
> other steps.  If you are using a scripted pipeline, then there is no 
> default checkout.
>
> The sequence of execution is something like:
>
>    1. Jenkins controller finds the Jenkinsfile in the repository and 
>    requests a copy of the Jenkinsfile
>    2. Jenkins controller begins executing the Jenkinsfile
>    3. If the Jenkinsfile is a declarative pipeline and 
>    skipDefaultCheckout is not enabled, then an implicit checkout scm is 
>    performed on the agent
>    4. Other steps in the Jenkinsfile are executed
>
> Mark Waite
>  
>
>> Thanks,
>> Pat
>>
>> On Friday, January 29, 2021 at 8:47:53 PM UTC-6 Patrick Moran wrote:
>>
>>> Thanks Mark! I am new to Jenkins so it may take me a while to go through 
>>> everything you’ve done here. 
>>>
>>> On Jan 29, 2021, at 7:21 PM, Mark Waite <[email protected]> wrote:
>>>
>>> 
>>>
>>> I made my best guess at the steps you took and was unable to duplicate 
>>> the problem.  You'll need to provide more details of the steps you took and 
>>> how your system is configured.  Steps I took included (with no claim that 
>>> any of these steps are especially crucial, they just happen to be the steps 
>>> that I took):
>>>
>>>    - Installed PortableGit-2.30.0.2 in C:\J\Tools\PortableGit-2.30.0.2 
>>>    and added  C:\J\Tools\PortableGit-2.30.0.2\bin to my PATH
>>>    - Installed AdoptOpenJDK Java 8u282 in C:\J\Tools\jfk8u282-b08 and 
>>>    added C:\J\Tools\jfk8u282-b08\bin  to my PATH and  
>>> C:\J\Tools\jfk8u282-b08 
>>>    as JAVA_HOME
>>>    - Download Jenkins 2.264.4-rc to my Windows 10 computer (used that 
>>>    version because I wanted to also test that version)
>>>    - Run jenkins with the command "java -jar jenkins.war" from a 
>>>    Windows Command Prompt
>>>    - Create a GitHub Personal Access Token on my GitHub account with 
>>>    full permissions
>>>    - Define a Jenkinsfile in the feature/test-PM branch of my 
>>>    https://github.com/MarkEWaite/bin.git repository 
>>>    - Create a Pipeline job that uses the personal access token to clone 
>>>    the feature/test-PM branch of my 
>>>    https://github.com/MarkEWaite/bin.git repository using the personal 
>>>    access token
>>>    - Confirm that the Pipeline job checkout works as expected
>>>    - Create a Multibranch Pipeline job with Git as the branch provider 
>>>    for the  https://github.com/MarkEWaite/bin.git repository using the 
>>>    personal access token 
>>>    - Confirm that the Multibranch Pipeline job checkout with Git works 
>>>    as expected 
>>>    - Create a Multibranch Pipeline job with GitHub as the branch 
>>>    provider for the  https://github.com/MarkEWaite/bin.git repository 
>>>    using the personal access token
>>>    - Confirm that the Multibranch Pipeline job checkout with GitHub 
>>>    works as expected
>>>    - Create a Multibranch Pipeline job with single source as the branch 
>>>    provider for the  https://github.com/MarkEWaite/bin.git repository 
>>>    using the personal access token
>>>    - Confirm that the Multibranch Pipeline job with single source works 
>>>    as expected 
>>>    
>>>
>>> The declarative Pipeline Jenkinsfile I used and permuted in various ways 
>>> was:
>>>
>>> pipeline {
>>>   agent {
>>>     label 'windows'
>>>   }
>>>
>>>   options {
>>>     skipDefaultCheckout true
>>>   }
>>>
>>>   stages {
>>>     stage('Build') {
>>>       steps {
>>>         echo 'Building'
>>>         checkout([$class: 'GitSCM',
>>>                   branches: [[name: 'feature/test-PM']],
>>>                   userRemoteConfigs: [[credentialsId: 
>>> 'github-access-token',
>>>                                        url: '
>>> https://github.com/MarkEWaite/bin.git']]])
>>>         bat 'type ngrok.yml'
>>>       }
>>>     }
>>>
>>>     stage('Test') {
>>>       steps {
>>>         echo 'Testing'
>>>         bat 'type docker_scrub.sh'
>>>       }
>>>     }
>>>
>>>     stage('Deploy') {
>>>       steps {
>>>         echo 'Deploying'
>>>         bat 'type inbound-jenkins-agent-alpine'
>>>       }
>>>     }
>>>   }
>>> }
>>>
>>> On Fri, Jan 29, 2021 at 2:00 PM Patrick Moran <[email protected]> 
>>> wrote:
>>>
>>>> Thanks for the reply Mark. I updated my pipeline script branch setting 
>>>> in the checkout step to "origin/feature/test-PM" but the output was the 
>>>> same.
>>>>
>>>> ...
>>>> stage('Checkout') {
>>>>     steps {
>>>>                 checkout([
>>>>                     $class: 'GitSCM', 
>>>>                     branches: [[name: 'origin/feature/test-PM']], 
>>>>                     userRemoteConfigs: [[credentialsId: 
>>>> 'b5255326-bc83-40e7-847d-d4bd6a597f40', url: '
>>>> https://git.virtualincision.net/scm/a4sw/surgeon-console-software.git'
>>>> ]]
>>>>                 ])                
>>>>     }   
>>>> }
>>>> ...
>>>>
>>>> On Friday, January 29, 2021 at 2:33:24 PM UTC-6 Mark Waite wrote:
>>>>
>>>>> May want to try "origin/feature/test-PM" instead
>>>>>
>>>>> On Fri, Jan 29, 2021 at 1:25 PM Patrick Moran <[email protected]> 
>>>>> wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>>  
>>>>>>
>>>>>> I have installed Jenkins on my Windows 10 machine, created a pipeline 
>>>>>> and run it. When it runs I get a message "ERROR: Unable to retrieve 
>>>>>> commit message"  when I try to checkout the last commit. The commit 
>>>>>> number is correct and I can run the steps listed in the console output 
>>>>>> by 
>>>>>> hand without the error. Does anyone know why I am getting this error?
>>>>>>
>>>>>> I am using Jenkins 2.263.3 and Git plugin 4.5.2.
>>>>>>
>>>>>> Note that I get the same error whether I use a pipeline or freestyle 
>>>>>> project. I am not checking out the master branch, does that matter?
>>>>>>
>>>>>> The pipeline used (credentials and repo url XXXX'ed out):
>>>>>>
>>>>>> #!/usr/bin/env groovy
>>>>>>
>>>>>>  
>>>>>>
>>>>>>     pipeline {
>>>>>>
>>>>>>         agent any
>>>>>>
>>>>>>         stages {
>>>>>>
>>>>>>             stage('Checkout') {
>>>>>>
>>>>>>                 steps {
>>>>>>
>>>>>>                     checkout([
>>>>>>
>>>>>>                         $class: 'GitSCM', 
>>>>>>
>>>>>>                         branches: [[name: 'feature/test-PM']], 
>>>>>>
>>>>>>                         userRemoteConfigs: [[credentialsId: 'XXXXXX', 
>>>>>> url: 'XXXXXX']]
>>>>>>
>>>>>>                     ])                
>>>>>>
>>>>>>                 }   
>>>>>>
>>>>>>             }
>>>>>>
>>>>>>             stage('Build') {
>>>>>>
>>>>>>                 steps {
>>>>>>
>>>>>>                     echo "Build is $BUILD_NUMBER : Node name is 
>>>>>> $NODE_NAME"
>>>>>>
>>>>>>                 }
>>>>>>
>>>>>>             }
>>>>>>
>>>>>>             stage('Test'){
>>>>>>
>>>>>>                 steps {
>>>>>>
>>>>>>                     echo 'Testing...'
>>>>>>
>>>>>>                 }
>>>>>>
>>>>>>             }
>>>>>>
>>>>>>             stage('Deploy') {
>>>>>>
>>>>>>                 steps {
>>>>>>
>>>>>>                     echo 'Deploying...'
>>>>>>
>>>>>>                 }
>>>>>>
>>>>>>             }
>>>>>>
>>>>>>         }
>>>>>>
>>>>>>     }
>>>>>>
>>>>>>  
>>>>>>
>>>>>>  
>>>>>>
>>>>>> The pipeline output (credentials and repo url XXXX'ed out):
>>>>>>
>>>>>>  
>>>>>>
>>>>>> Running in Durability level: MAX_SURVIVABILITY
>>>>>>
>>>>>> [Pipeline] Start of Pipeline
>>>>>>
>>>>>> [Pipeline] node
>>>>>>
>>>>>> Running on Jenkins in 
>>>>>> C:\Windows\system32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\TestBuild1
>>>>>>
>>>>>> [Pipeline] {
>>>>>>
>>>>>> [Pipeline] stage
>>>>>>
>>>>>> [Pipeline] { (Checkout)
>>>>>>
>>>>>> [Pipeline] checkout
>>>>>>
>>>>>> The recommended git tool is: NONE
>>>>>>
>>>>>> using credential XXXXXX
>>>>>>
>>>>>> Cloning the remote Git repository
>>>>>>
>>>>>> Cloning repository XXXXXX
>>>>>>
>>>>>>  > git.exe init 
>>>>>> C:\Windows\system32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\TestBuild1
>>>>>>  # timeout=10
>>>>>>
>>>>>> Fetching upstream changes from XXXXXX
>>>>>>
>>>>>>  > git.exe --version # timeout=10
>>>>>>
>>>>>>  > git --version # 'git version 2.30.0.windows.2'
>>>>>>
>>>>>> using GIT_ASKPASS to set credentials 
>>>>>>
>>>>>>  > git.exe fetch --tags --force --progress -- XXXXXX 
>>>>>> +refs/heads/*:refs/remotes/origin/* # timeout=10
>>>>>>
>>>>>>  > git.exe config remote.origin.url XXXXXX # timeout=10
>>>>>>
>>>>>>  > git.exe config --add remote.origin.fetch 
>>>>>> +refs/heads/*:refs/remotes/origin/* # timeout=10
>>>>>>
>>>>>> Avoid second fetch
>>>>>>
>>>>>>  > git.exe rev-parse "refs/remotes/origin/feature/test-PM^{commit}" # 
>>>>>> timeout=10
>>>>>>
>>>>>>  > git.exe rev-parse "feature/test-PM^{commit}" # timeout=10
>>>>>>
>>>>>> Checking out Revision aeb4a265be3a3a7b1b5fc4dd655c9f0dc6f284fa 
>>>>>> (refs/remotes/origin/feature/test-PM)
>>>>>>
>>>>>>  > git.exe config core.sparsecheckout # timeout=10
>>>>>>
>>>>>>  > git.exe checkout -f aeb4a265be3a3a7b1b5fc4dd655c9f0dc6f284fa # 
>>>>>> timeout=10
>>>>>>
>>>>>> ERROR: Unable to retrieve commit message
>>>>>>
>>>>>> org.eclipse.jgit.errors.MissingObjectException: Missing unknown 
>>>>>> aeb4a265be3a3a7b1b5fc4dd655c9f0dc6f284fa
>>>>>>
>>>>>>     at 
>>>>>> org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:135)
>>>>>>
>>>>>>     at org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:203)
>>>>>>
>>>>>>     at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:917)
>>>>>>
>>>>>>     at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:827)
>>>>>>
>>>>>>     at 
>>>>>> hudson.plugins.git.util.RevCommitRepositoryCallback.invoke(RevCommitRepositoryCallback.java:25)
>>>>>>
>>>>>>     at 
>>>>>> hudson.plugins.git.util.RevCommitRepositoryCallback.invoke(RevCommitRepositoryCallback.java:13)
>>>>>>
>>>>>>     at 
>>>>>> org.jenkinsci.plugins.gitclient.AbstractGitAPIImpl.withRepository(AbstractGitAPIImpl.java:29)
>>>>>>
>>>>>>     at 
>>>>>> org.jenkinsci.plugins.gitclient.CliGitAPIImpl.withRepository(CliGitAPIImpl.java:84)
>>>>>>
>>>>>>     at 
>>>>>> hudson.plugins.git.GitSCM.printCommitMessageToLog(GitSCM.java:1394)
>>>>>>
>>>>>>     at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1360)
>>>>>>
>>>>>>     at 
>>>>>> org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:125)
>>>>>>
>>>>>>     at 
>>>>>> org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:93)
>>>>>>
>>>>>>     at 
>>>>>> org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:80)
>>>>>>
>>>>>>     at 
>>>>>> org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
>>>>>>
>>>>>>     at java.util.concurrent.Executors$RunnableAdapter.call(Unknown 
>>>>>> Source)
>>>>>>
>>>>>>     at java.util.concurrent.FutureTask.run(Unknown Source)
>>>>>>
>>>>>>     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>>>>>>
>>>>>>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>>>>>>
>>>>>>     at java.lang.Thread.run(Unknown Source)
>>>>>>
>>>>>>  > git.exe rev-list --no-walk aeb4a265be3a3a7b1b5fc4dd655c9f0dc6f284fa # 
>>>>>> timeout=10
>>>>>>
>>>>>> [Pipeline] }
>>>>>>
>>>>>> [Pipeline] // stage
>>>>>>
>>>>>> [Pipeline] stage
>>>>>>
>>>>>> [Pipeline] { (Build)
>>>>>>
>>>>>> [Pipeline] echo
>>>>>>
>>>>>> Build is 37 : Node name is master
>>>>>>
>>>>>> [Pipeline] }
>>>>>>
>>>>>> [Pipeline] // stage
>>>>>>
>>>>>> [Pipeline] stage
>>>>>>
>>>>>> [Pipeline] { (Test)
>>>>>>
>>>>>> [Pipeline] echo
>>>>>>
>>>>>> Testing...
>>>>>>
>>>>>> [Pipeline] }
>>>>>>
>>>>>> [Pipeline] // stage
>>>>>>
>>>>>> [Pipeline] stage
>>>>>>
>>>>>> [Pipeline] { (Deploy)
>>>>>>
>>>>>> [Pipeline] echo
>>>>>>
>>>>>> Deploying...
>>>>>>
>>>>>> [Pipeline] }
>>>>>>
>>>>>> [Pipeline] // stage
>>>>>>
>>>>>> [Pipeline] }
>>>>>>
>>>>>> [Pipeline] // node
>>>>>>
>>>>>> [Pipeline] End of Pipeline
>>>>>>
>>>>>> Finished: SUCCESS
>>>>>>
>>>>>>  
>>>>>>
>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "Jenkins Users" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>> send an email to [email protected].
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/jenkinsci-users/CAGu5ryKes3fD-mVZBOPsDBi50LgtcO0F%3D9UsUd_tHc%3Dae%3DPatg%40mail.gmail.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/jenkinsci-users/CAGu5ryKes3fD-mVZBOPsDBi50LgtcO0F%3D9UsUd_tHc%3Dae%3DPatg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Jenkins Users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/jenkinsci-users/fd3fa532-ecdd-4548-ad29-050d0d8b236fn%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/jenkinsci-users/fd3fa532-ecdd-4548-ad29-050d0d8b236fn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Jenkins Users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>>
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/jenkinsci-users/CAO49JtGs1AYG6JSAze0BguGdKZd8--rk3_WeXwCymo2U1MpvZw%40mail.gmail.com
>>>  
>>> <https://groups.google.com/d/msgid/jenkinsci-users/CAO49JtGs1AYG6JSAze0BguGdKZd8--rk3_WeXwCymo2U1MpvZw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Jenkins Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jenkinsci-users/44fc64b8-c445-40e6-b54a-d2f4c67681fan%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/jenkinsci-users/44fc64b8-c445-40e6-b54a-d2f4c67681fan%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/52da7f74-56e1-495d-8a03-3a0b34d944e3n%40googlegroups.com.

Reply via email to