The git plugin provides some capabilities that are used in Freestyle
projects but are not usable or are not the best choice when using a
multibranch pipeline.  Path restrictions is one of those capabilities.
Rather than using the path restrictions from inside the checkout step in
the Jenkinsfile, you'll need to use the Pipeline: Multibranch build
strategy plugin
<https://plugins.jenkins.io/multibranch-build-strategy-extension/>.

If you need to ignore changes by specific authors, you'll need to use
the Ignore
committer strategy plugin
<https://plugins.jenkins.io/ignore-committer-strategy/> rather than using
the git plugin facility that is similar.

Those strategies provide a higher level implementation for multibranch
pipelines.  The higher level implementation can work for multiple SCM
providers.

Mark Waite

On Mon, Feb 15, 2021 at 5:02 AM Ven H <[email protected]> wrote:

> I have a GitHub repository and a multi-branch pipeline job. I am trying to
> exclude some paths from triggering builds, but can't get it to work. Any
> help would be appreciated. Here are the details.
>
> GitHub URL: https://github.com/<my-org>/<project-name>.git
>
> The project has App, DB and Config. DB and Config folders are inside the
> App. App is at the root level. There are 3 multibranch jobs and 3
> Jenkinsfile at the following paths.
>
> <project-name>/Jenkinsfile
> <project-name>/db/Jenkinsfile
> <project-name>/config/Jenkinsfile
>
> Requirement is to ensure that a change in a file inside DB directory
> shouldn't trigger a build for App. PFB the checkout step in the App
> Jenkinsfile.
>
> checkout([
> $class: 'GitSCM',
> branches: [[name: "*/${BRANCH_NAME}"]],
> doGenerateSubmoduleConfigurations: false,
> extensions: [[$class: 'DisableRemotePoll'],[$class: 'PathRestriction',
> excludedRegions: '<project-name>/db/.*', includedRegions: ''],
> [$class: 'RelativeTargetDirectory', relativeTargetDir: "<my-folder-path>"]
> ],
> gitTool: "<my-git-portable>",
> submoduleCfg: [],
> userRemoteConfigs: [
> [
> credentialsId: "<my-creds>",
> url: "https://github.com/<my-org>/<project-name>.git"
> ]
> ]
> ])
>
> I have tried various combinations for excludedRegions like below. I tried
> generating the above syntax using the Pipeline Syntax with the option
> "Polling ignores commits in certain paths"
>
> 1. <project-name>/db/.*
> 2. <project-name>/db/**/*
> 3. db/.*
> 4. db/**/*
> 5. With and without "includedRegions"
> 6. With and without DisableRemotePoll (Force Polling using Workspace)
>
> None of the above seems to be working. Can anyone please help me with this?
>
> Regards,
> Venkatesh
>
> --
> 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/CAPp28eoqYt2Z2VptVZG2Pi0qF%2BT01e7XeHWfDh5eXAeTiFMcyg%40mail.gmail.com
> <https://groups.google.com/d/msgid/jenkinsci-users/CAPp28eoqYt2Z2VptVZG2Pi0qF%2BT01e7XeHWfDh5eXAeTiFMcyg%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/CAO49JtF-jii9qmm8b6E9Cst19WRix7ntOtQdGBZozcHqwVHXxQ%40mail.gmail.com.

Reply via email to