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 <mark.ea...@gmail.com> 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 <patmor...@gmail.com>
>> 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 <patmor...@gmail.com>
>>>> 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 jenkinsci-use...@googlegroups.com.
>>>>> 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 jenkinsci-use...@googlegroups.com.
>>> 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 jenkinsci-use...@googlegroups.com.
>>
>> 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 jenkinsci-users+unsubscr...@googlegroups.com.
> 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 jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/CAO49JtEHJKENbBbFFvFQ2OKGspEgCM8W-vU8yjc8xOjG2Pq7kQ%40mail.gmail.com.

Reply via email to