Issue
-
A Multibranch Pipeline is configured with Git SCM and a Custom Marker file but the Branch Indexing fails with:
ERROR: [Mon Sep 18 09:40:40 AEST 2017] Could not fetch branches from source xxxxx-xxxxx-xxxx-xxxx-xxxxx java.lang.IllegalArgumentException: Empty path not permitted. at org.eclipse.jgit.treewalk.filter.PathFilter.create(PathFilter.java:80) at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:205) at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:249) at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:281) at jenkins.plugins.git.AbstractGitSCMSource$2$1.stat(AbstractGitSCMSource.java:304) at jenkins.scm.api.SCMProbe.exists(SCMProbe.java:51) at com.cloudbees.workflow.multibranch.CustomBranchProjectFactory$1.isHead(CustomBranchProjectFactory.java:57) [...]
Environment
-
CloudBees Jenkins Enterprise - Managed controller (CJEMM)
-
CloudBees Jenkins Platform - Client controller (CJPCM)
-
CloudBees Jenkins Team (CJT)
-
Jenkins LTS
-
CloudBees Pipeline: Templates Plugin
Resolution
The CloudBees Pipeline Templates plugin offers the possibility to define Custom Pipeline as Code Scripts for your pipeline branches. It consists of:
-
the path to a marker file
-
the Pipeline script to run
So even for that mode, a Marker File is required. If the Marker File field is left empty, then Branch Indexing fails with the stacktrace
ERROR: [Mon Sep 18 09:40:40 AEST 2017] Could not fetch branches from source <sourceId> java.lang.IllegalArgumentException: Empty path not permitted. at org.eclipse.jgit.treewalk.filter.PathFilter.create(PathFilter.java:80) at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:205) at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:249) at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:281) at jenkins.plugins.git.AbstractGitSCMSource$2$1.stat(AbstractGitSCMSource.java:304) at jenkins.scm.api.SCMProbe.exists(SCMProbe.java:51) at com.cloudbees.workflow.multibranch.CustomBranchProjectFactory$1.isHead(CustomBranchProjectFactory.java:57) at jenkins.plugins.git.AbstractGitSCMSource$2.run(AbstractGitSCMSource.java:328) at jenkins.plugins.git.AbstractGitSCMSource$2.run(AbstractGitSCMSource.java:256) at jenkins.plugins.git.AbstractGitSCMSource.doRetrieve(AbstractGitSCMSource.java:225) at jenkins.plugins.git.AbstractGitSCMSource.retrieve(AbstractGitSCMSource.java:256) at jenkins.scm.api.SCMSource._retrieve(SCMSource.java:300) at jenkins.scm.api.SCMSource.fetch(SCMSource.java:210) at jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:630) at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:266) at com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:162) at jenkins.branch.MultiBranchProject$BranchIndexing.run(MultiBranchProject.java:969) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:405) [Mon Sep 18 09:40:40 AEST 2017] Finished branch indexing. Indexing took 7.3 sec FATAL: Failed to recompute children of <multibranchProjectName> java.lang.IllegalArgumentException: Empty path not permitted. at org.eclipse.jgit.treewalk.filter.PathFilter.create(PathFilter.java:80) at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:205) at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:249) at org.eclipse.jgit.treewalk.TreeWalk.forPath(TreeWalk.java:281) at jenkins.plugins.git.AbstractGitSCMSource$2$1.stat(AbstractGitSCMSource.java:304) at jenkins.scm.api.SCMProbe.exists(SCMProbe.java:51) at com.cloudbees.workflow.multibranch.CustomBranchProjectFactory$1.isHead(CustomBranchProjectFactory.java:57) at jenkins.plugins.git.AbstractGitSCMSource$2.run(AbstractGitSCMSource.java:328) at jenkins.plugins.git.AbstractGitSCMSource$2.run(AbstractGitSCMSource.java:256) at jenkins.plugins.git.AbstractGitSCMSource.doRetrieve(AbstractGitSCMSource.java:225) at jenkins.plugins.git.AbstractGitSCMSource.retrieve(AbstractGitSCMSource.java:256) at jenkins.scm.api.SCMSource._retrieve(SCMSource.java:300) at jenkins.scm.api.SCMSource.fetch(SCMSource.java:210) at jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:630) at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:266) at com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:162) at jenkins.branch.MultiBranchProject$BranchIndexing.run(MultiBranchProject.java:969) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:405)