Allow updates to VERSION file in docs-only patchsets

Split XOS job-group between code and docs patches

Ignore *.ico web icon files

Change-Id: Idaec4f7da20af59c88cdc92f112e652a99a71195
diff --git a/jjb/api-test.yaml b/jjb/api-test.yaml
index 556b407..27d877d 100644
--- a/jjb/api-test.yaml
+++ b/jjb/api-test.yaml
@@ -13,7 +13,7 @@
           gerrit-server-name: '{gerrit-server-name}'
           project-regexp: '^{project}$'
           branch-regexp: '{branch-regexp}'
-          file-include-regexp: '{not-doc-files-regexp}'
+          file-include-regexp: '{code-files-regexp}'
           dependency-jobs: '{dependency-jobs}'
 
     properties:
diff --git a/jjb/defaults.yaml b/jjb/defaults.yaml
index f29f066..48d5878 100644
--- a/jjb/defaults.yaml
+++ b/jjb/defaults.yaml
@@ -82,7 +82,7 @@
     # for matching files with file-include-regexp
     all-files-regexp: '.*'
     doc-files-regexp: '^docs/.*'
-    not-doc-files-regexp: '^(?!docs).*'
+    code-files-regexp: '^(?!docs|VERSION).*' # allow docs-only patchsets w/version bumps to skip code-level tests
 
     # Jenkins SSH host doc publisher
     docs-ssh-host: 'guide.opencord.org'
diff --git a/jjb/shell/licensecheck.sh b/jjb/shell/licensecheck.sh
index 80b6a02..7832d8f 100755
--- a/jjb/shell/licensecheck.sh
+++ b/jjb/shell/licensecheck.sh
@@ -42,6 +42,7 @@
   ! -name "*.gif" \
   ! -name "*.gpg" \
   ! -name "*.graffle" \
+  ! -name "*.ico" \
   ! -name "*.iml" \
   ! -name "*.in" \
   ! -name "*.inc" \
@@ -56,6 +57,7 @@
   ! -name "*.key" \
   ! -name "*.list" \
   ! -name "*.local" \
+  ! -path "*.lock" \
   ! -name "*.log" \
   ! -name "*.mak" \
   ! -name "*.md" \
@@ -97,7 +99,6 @@
   ! -path "*conf*" \
   ! -path "*git*" \
   ! -path "*swagger*" \
-  ! -path "*.lock*" \
   -print0 )
 
 exit ${fail_licensecheck}
diff --git a/jjb/sonar.yaml b/jjb/sonar.yaml
index 6e66097..e99d779 100644
--- a/jjb/sonar.yaml
+++ b/jjb/sonar.yaml
@@ -49,7 +49,7 @@
           project-regexp: '^{project}$'
           branch-regexp: '{branch-regexp}'
           dependency-jobs: '{dependency-jobs}'
-          file-include-regexp: '{all-files-regexp}'
+          file-include-regexp: '{code-files-regexp}'
 
     properties:
       - cord-infra-properties:
diff --git a/jjb/verify/xos.yaml b/jjb/verify/xos.yaml
index fdf135b..b2b56d9 100644
--- a/jjb/verify/xos.yaml
+++ b/jjb/verify/xos.yaml
@@ -6,17 +6,28 @@
     project: '{name}'
 
     jobs:
-      - 'verify-xos-jobs':
+      - 'verify-xos-jobs-licensed-versioned':
+          branch-regexp: '{supported-branches-regexp}'
+      - 'verify-xos-jobs-code':
           branch-regexp: '{supported-branches-regexp}'
 
+# these two job groups are split so that documentation-only patches can go into
+# the XOS repo without invoking all the code-level tests.
+#
+# Items in the 'verify-xos-jobs-code' job-group only trigger with
+# 'non-doc-files-regexp', which excludes the docs/* and VERSION file
+
 - job-group:
-    name: 'verify-xos-jobs'
+    name: 'verify-xos-jobs-licensed-versioned'
     jobs:
       - 'verify-licensed'
       - 'tag-collision-reject':
           dependency-jobs: 'verify_xos_licensed'
-      - 'verify-sonarqube':
-          dependency-jobs: 'verify_xos_tag-collision'
+
+- job-group:
+    name: 'verify-xos-jobs-code'
+    jobs:
+      - 'verify-sonarqube'
       - 'xos-unit-test':
           dependency-jobs: 'verify_xos_sonarqube'
       - 'synchronizer-update':
diff --git a/jjb/xos-synchronizer-update.yaml b/jjb/xos-synchronizer-update.yaml
index 305ba60..a395d3c 100644
--- a/jjb/xos-synchronizer-update.yaml
+++ b/jjb/xos-synchronizer-update.yaml
@@ -12,7 +12,7 @@
           gerrit-server-name: '{gerrit-server-name}'
           project-regexp: '^{project}$'
           branch-regexp: '{branch-regexp}'
-          file-include-regexp: '{not-doc-files-regexp}'
+          file-include-regexp: '{code-files-regexp}'
           dependency-jobs: '{dependency-jobs}'
 
     properties:
diff --git a/jjb/xos-unit.yaml b/jjb/xos-unit.yaml
index 60151d9..b619569 100644
--- a/jjb/xos-unit.yaml
+++ b/jjb/xos-unit.yaml
@@ -14,7 +14,7 @@
           project-regexp: '^{project}$'
           branch-regexp: '{branch-regexp}'
           dependency-jobs: '{dependency-jobs}'
-          file-include-regexp: '{not-doc-files-regexp}'
+          file-include-regexp: '{code-files-regexp}'
 
     properties:
       - cord-infra-properties: