Fix dcaegen2/platform docker/python SONAR jobs 03/100103/6
authorAndrew Gauld <agauld@att.com>
Wed, 8 Jan 2020 17:32:06 +0000 (17:32 +0000)
committerAndrew Gauld <agauld@att.com>
Mon, 13 Jan 2020 19:59:04 +0000 (19:59 +0000)
Also refactor jjb under dcaegen2 to make building of dcaegen2/platform
python based docker images uniform and simplify adding more of them.

Also add ability to build multiple branches.

Also add release jobs.

Change-Id: I56c0e90eec4a034c29d70f79ff903c4afc22e3de
Issue-ID: DCAEGEN2-1861
Signed-off-by: Andrew Gauld <agauld@att.com>
jjb/dcaegen2/dcaegen2-platform-adapter.yaml [deleted file]
jjb/dcaegen2/dcaegen2-platform-docker-python-subprojects.yaml [new file with mode: 0644]
jjb/dcaegen2/dcaegen2-platform-mod-distributorapi.yaml [deleted file]
jjb/dcaegen2/dcaegen2-platform-mod-onboardingapi.yaml [deleted file]
jjb/dcaegen2/dcaegen2-platform-mod.yaml [deleted file]
jjb/dcaegen2/dcaegen2-platform-oti-eventhandler.yaml [deleted file]

diff --git a/jjb/dcaegen2/dcaegen2-platform-adapter.yaml b/jjb/dcaegen2/dcaegen2-platform-adapter.yaml
deleted file mode 100644 (file)
index a203a75..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
----
-- dcaegen2_platform_common: &dcaegen2_platform_common
-    # values apply to all dcaegen2_platform docker projects
-    name: dcaegen2-platform-docker-common
-    # git repo
-    project: dcaegen2/platform
-    # maven settings file has docker credentials
-    mvn-settings: dcaegen2-platform-settings
-    # use host network to clone from our gerrit
-    docker-build-args: '--network=host'
-    # source of docker tag
-    # container-tag-method: yaml-file
-    # until everything needed for yaml-file is in place
-    container-tag-method: latest
-    build-node: ubuntu1604-docker-8c-8g
-    # jenkins job name prefix
-    project-name: '{name}'
-    tox-dir: '{docker-root}'
-    # build only on relevant changes
-    gerrit_trigger_file_paths:
-      - compare-type: REG_EXP
-        pattern: '{docker-root}/.*'
-
-- project:
-    name: dcaegen2-platform-aoadapter-project-view
-    project-name: dcaegen2-platform-aoadapter
-    views:
-      - project-view
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-aoadapter
-    # root of docker build
-    docker-root: adapter/acumos
-    # tag override
-    docker-get-container-tag-script: ../../shell/docker-ts-tag-override.sh
-    # image name
-    docker-name: 'onap/{name}'
-    stream:
-      - master:
-            branch: master
-    jobs:
-      - '{project-name}-gerrit-docker-jobs'
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcagen2-platform-aoadapter-verify
-    docker-root: adapter/acumos
-    stream:
-      - all:
-            branch: '*'
-    jobs:
-      - gerrit-tox-verify
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-aoadapter-sonar
-    docker-root: adapter/acumos
-    branch: master
-    jobs:
-      - gerrit-tox-sonar
-    cron: '@daily'
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-aoadapter-clm
-    docker-root: adapter/acumos
-    jobs:
-      - gerrit-maven-clm
-    nexus-iq-namespace: 'onap-'
-    project-name: 'dcaegen2-platform-aoadapter-clm'
-    mvn-params: '-f adapter/acumos/pom.xml'
-    branch: 'master'
-
diff --git a/jjb/dcaegen2/dcaegen2-platform-docker-python-subprojects.yaml b/jjb/dcaegen2/dcaegen2-platform-docker-python-subprojects.yaml
new file mode 100644 (file)
index 0000000..911435c
--- /dev/null
@@ -0,0 +1,90 @@
+---
+- job-group:
+    # This job group contains all the jobs that should be deployed for
+    # a subproject of dcaegen2/platform that builds a Docker image from
+    # Python code.
+    #
+    # Required parameters:
+    #  build-node: The node to run build on.
+    #  mvn-settings: Maven settings.xml file containing credentials to use.
+    #  project-name: The job name prefix
+    #  src-dir: The subdirectory of the repository containing subproject code
+    #  stream: The stream to build
+    #  branch: The branch to build
+    #
+    #  Note: Multiple subprojects can be built with a single JJB project
+    #  by specifying the value of project-name as a list.
+    #  Similarly, multiple streams can be built with a single JJB project
+    #  by specifying the value of the stream as a list.
+    #  For example:
+    #    project-name:
+    #      - subproject-name1:
+    #          src-dir: subproject-dir1
+    #      - subproject-name2:
+    #          src-dir: subproject-dir2
+    #      - subproject-name3:
+    #          src-dir: subproject-dir3
+    #    stream:
+    #      - master:
+    #          branch: master
+    #      - release1:
+    #          branch: release1.0
+    #    jobs:
+    #      - dcaegen2-docker-python-jobs
+
+    name: '{project-name}-dcaegen2-docker-python-jobs'
+    id: dcaegen2-docker-python-jobs
+    container-tag-method: latest
+    docker-get-container-tag-script: ../../shell/docker-ts-tag-override.sh
+    nexus-iq-namespace: 'onap-'
+    tox-dir: '{src-dir}'
+    docker-root: '{src-dir}'
+    docker-name: 'onap/{project-name}'
+    gerrit_trigger_file_paths:
+      - compare-type: REG_EXP
+        pattern: '{src-dir}/.*'
+    jobs:
+      - gerrit-tox-verify:
+          stream: all
+          branch: '*'
+      - gerrit-docker-verify
+      - gerrit-docker-merge
+      - gerrit-maven-clm:
+          mvn-params: '-f {src-dir}'
+          stream: master
+          branch: master
+      - gerrit-tox-sonar:
+          # workaround because gerrit-tox-sonar doesn't support mvn-params/opts
+          sonar-mvn-goal: '-f {src-dir} sonar:sonar'
+          cron: '@daily'
+          stream: master
+          branch: master
+      - gerrit-release-verify
+      - gerrit-release-merge
+
+- project:
+    name: dcaegen2-platform-docker-python-subprojects
+    project: dcaegen2/platform
+    mvn-settings: dcaegen2-platform-settings
+    build-node: ubuntu1604-docker-8c-8g
+    project-name:
+      - dcaegen2-platform-aoadapter:
+          src-dir: adapter/acumos
+      - dcaegen2-platform-mod-distributorapi:
+          src-dir: mod/distributorapi
+      - dcaegen2-platform-mod-onboardingapi:
+          src-dir: mod/onboardingapi
+      - dcaegen2-platform-oti-event-handler:
+          src-dir: oti/event-handler
+    stream:
+      - master:
+          branch: master
+    views:
+      - project-view:
+          project-name: dcaegen2-platform-aoadapter
+      - project-view:
+          project-name: dcaegen2-platform-mod
+      - project-view:
+          project-name: dcaegen2-platform-oti
+    jobs:
+      - dcaegen2-docker-python-jobs
diff --git a/jjb/dcaegen2/dcaegen2-platform-mod-distributorapi.yaml b/jjb/dcaegen2/dcaegen2-platform-mod-distributorapi.yaml
deleted file mode 100644 (file)
index 1210edb..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
----
-# dcagen2_platform_common is defined in dcaegen2-platform-adapter.yaml
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-mod-distributorapi
-    # root of docker build
-    docker-root: mod/distributorapi
-    # image name
-    docker-name: '{name}'
-    stream:
-      - master:
-            branch: master
-    jobs:
-      - '{project-name}-gerrit-docker-jobs'
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcagen2-platform-mod-distributorapi-verify
-    docker-root: mod/distributorapi
-    stream:
-      - all:
-            branch: '*'
-    jobs:
-      - gerrit-tox-verify
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-mod-distributorapi-sonar
-    docker-root: mod/distributorapi
-    branch: master
-    jobs:
-      - gerrit-tox-sonar
-    cron: '@daily'
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-mod-distributorapi-clm
-    docker-root: mod/distributorapi
-    jobs:
-      - gerrit-maven-clm
-    nexus-iq-namespace: 'onap-'
-    project-name: 'dcaegen2-platform-mod-distributorapi-clm'
-    mvn-params: '-f mod/distributorapi/pom.xml'
-    branch: 'master'
diff --git a/jjb/dcaegen2/dcaegen2-platform-mod-onboardingapi.yaml b/jjb/dcaegen2/dcaegen2-platform-mod-onboardingapi.yaml
deleted file mode 100644 (file)
index ca63a42..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
----
-# dcagen2_platform_common is defined in dcaegen2-platform-adapter.yaml
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-mod-onboardingapi
-    # root of docker build
-    docker-root: mod/onboardingapi
-    # image name
-    docker-name: '{name}'
-    stream:
-      - master:
-            branch: master
-    jobs:
-      - '{project-name}-gerrit-docker-jobs'
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcagen2-platform-mod-onboardingapi-verify
-    docker-root: mod/onboardingapi
-    stream:
-      - all:
-            branch: '*'
-    jobs:
-      - gerrit-tox-verify
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-mod-onboardingapi-sonar
-    docker-root: mod/onboardingapi
-    branch: master
-    jobs:
-      - gerrit-tox-sonar
-    cron: '@daily'
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-mod-onboardingapi-clm
-    docker-root: mod/onboardingapi
-    jobs:
-      - gerrit-maven-clm
-    nexus-iq-namespace: 'onap-'
-    project-name: 'dcaegen2-platform-mod-onboardingapi-clm'
-    mvn-params: '-f mod/onboardingapi/pom.xml'
-    branch: 'master'
diff --git a/jjb/dcaegen2/dcaegen2-platform-mod.yaml b/jjb/dcaegen2/dcaegen2-platform-mod.yaml
deleted file mode 100644 (file)
index 1baf6c0..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
----
-
-- project:
-    name: dcaegen2-platform-mod-project-view
-    project-name: dcaegen2-platform-mod
-    views:
-      - project-view
-
diff --git a/jjb/dcaegen2/dcaegen2-platform-oti-eventhandler.yaml b/jjb/dcaegen2/dcaegen2-platform-oti-eventhandler.yaml
deleted file mode 100644 (file)
index fa64115..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
----
-# dcagen2_platform_common is defined in dcaegen2-platform-adapter.yaml
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-oti-event-handler
-    # root of docker build
-    docker-root: oti/event-handler
-    # image name
-    docker-name: '{name}'
-    stream:
-      - master:
-            branch: master
-    jobs:
-      - '{project-name}-gerrit-docker-jobs'
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcagen2-platform-oti-event-handler-verify
-    docker-root: oti/event-handler
-    stream:
-      - all:
-            branch: '*'
-    jobs:
-      - gerrit-tox-verify
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-oti-event-handler-sonar
-    docker-root: oti/event-handler
-    branch: master
-    jobs:
-      - gerrit-tox-sonar
-    cron: '@daily'
-
-- project:
-    <<: *dcaegen2_platform_common
-    name: dcaegen2-platform-oti-event-handler-clm
-    docker-root: oti/event-handler
-    jobs:
-      - gerrit-maven-clm
-    nexus-iq-namespace: 'onap-'
-    project-name: 'dcaegen2-platform-oti-event-handler-clm'
-    mvn-params: '-f oti/event-handler/pom.xml'
-    branch: 'master'