xci: Structure osa periodic jobs 87/40187/4
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>
Thu, 24 Aug 2017 23:20:54 +0000 (01:20 +0200)
committerFatih Degirmenci <fatih.degirmenci@ericsson.com>
Thu, 24 Aug 2017 23:30:52 +0000 (01:30 +0200)
This job
- updates osa periodic jobs to use multijob project type
- adds pollscm trigger to prevent running job unnecessarily
if there is no change in upstream osa

The execute shell parts will be sent in separate change(s).

Change-Id: I5f9b4cad04b245192171278e6bf2806c94369854
Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
jjb/xci/osa-periodic-jobs.yml

index 350ee76..8335750 100644 (file)
 - project:
-    project: 'releng-xci'
+    name: 'opnfv-osa-periodic'
 
-    name: 'os-periodic'
-#--------------------------------
-# Branch Anchors
-#--------------------------------
-# the versions stated here default to branches which then later
-# on used for checking out the branches, pulling in head of the branch.
-    master: &master
-        stream: master
-        openstack-osa-version: '{stream}'
-        opnfv-releng-version: 'master'
-        gs-pathname: ''
-    ocata: &ocata
-        stream: ocata
-        openstack-osa-version: 'stable/{stream}'
-        opnfv-releng-version: 'master'
-        gs-pathname: '/{stream}'
+    project: 'releng-xci'
 #--------------------------------
-#        XCI PODs
+# branches
 #--------------------------------
-    pod:
-        - virtual:
-            <<: *master
-        - virtual:
-            <<: *ocata
+    stream:
+        - master:
+            branch: '{stream}'
 #--------------------------------
-# Supported Distros
+# distros
 #--------------------------------
     distro:
         - 'xenial':
             disabled: false
-            slave-label: xci-xenial-virtual
-            dib-os-release: 'xenial'
-            dib-os-element: 'ubuntu-minimal'
-            dib-os-packages: 'vlan,vim,less,bridge-utils,sudo,language-pack-en,iputils-ping,rsyslog,curl,python,debootstrap,ifenslave,ifenslave-2.6,lsof,lvm2,tcpdump,nfs-kernel-server,chrony,iptables'
-            extra-dib-elements: 'openssh-server'
         - 'centos7':
             disabled: true
-            slave-label: xci-centos7-virtual
-            dib-os-release: '7'
-            dib-os-element: 'centos7'
-            dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl'
-            extra-dib-elements: 'openssh-server'
         - 'suse':
             disabled: true
-            slave-label: xci-suse-virtual
-            dib-os-release: '42.2'
-            dib-os-element: 'opensuse-minimal'
-            dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl'
-            extra-dib-elements: 'openssh-server'
-
+#--------------------------------
+# type
+#--------------------------------
+    type:
+        - virtual
+#--------------------------------
+# phases
+#--------------------------------
+    phase:
+        - 'deploy'
+        - 'healthcheck'
 #--------------------------------
 # jobs
 #--------------------------------
     jobs:
-        - 'osa-deploy-{pod}-{distro}-periodic-{stream}'
-
+        - 'osa-periodic-{distro}-{type}-{stream}'
+        - 'osa-periodic-{phase}-{type}-{stream}'
 #--------------------------------
 # job templates
 #--------------------------------
 - job-template:
-    name: 'osa-deploy-{pod}-{distro}-periodic-{stream}'
+    name: 'osa-periodic-{distro}-{type}-{stream}'
+
+    project-type: multijob
 
     disabled: '{obj:disabled}'
 
     concurrent: false
 
     properties:
+        - logrotate-default
         - build-blocker:
             use-build-blocker: true
             blocking-jobs:
-                - '^xci-os.*'
-                - '^xci-deploy.*'
-                - '^xci-functest.*'
-                - '^bifrost-.*periodic.*'
-                - '^osa-.*periodic.*'
+                - 'xci-verify-.*'
+                - 'bifrost-verify-.*'
+                - 'bifrost-periodic-.*'
+                - 'osa-verify-.*'
+                - 'osa-periodic-.*'
             block-level: 'NODE'
+
+    wrappers:
+        - ssh-agent-wrapper
+        - build-timeout:
+            timeout: 240
+        - fix-workspace-permissions
+
+    scm:
+        - git-scm-osa
+
+    triggers:
+        - pollscm:
+            cron: "@midnight"
+            ignore-post-commit-hooks: True
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+            branch: '{branch}'
+        - label:
+            name: SLAVE_LABEL
+            default: 'xci-virtual-{distro}'
+
+    builders:
+        - description-setter:
+            description: "Built on $NODE_NAME"
+        - multijob:
+            name: deploy
+            condition: SUCCESSFUL
+            projects:
+                - name: 'osa-periodic-deploy-{type}-{stream}'
+                  current-parameters: true
+                  predefined-parameters: |
+                    DISTRO={distro}
+                    DEPLOY_SCENARIO=os-nosdn-nofeature-noha
+                  git-revision: true
+                  node-parameters: true
+                  kill-phase-on: FAILURE
+                  abort-all-job: true
+        - multijob:
+            name: healthcheck
+            condition: SUCCESSFUL
+            projects:
+                - name: 'osa-periodic-healthcheck-{type}-{stream}'
+                  current-parameters: true
+                  predefined-parameters: |
+                    DISTRO={distro}
+                    DEPLOY_SCENARIO=os-nosdn-nofeature-noha
+                    FUNCTEST_SUITE_NAME=healthcheck
+                  node-parameters: true
+                  kill-phase-on: NEVER
+                  abort-all-job: false
+
+- job-template:
+    name: 'osa-periodic-{phase}-{type}-{stream}'
+
+    disabled: false
+
+    concurrent: true
+
+    properties:
         - logrotate-default
+        - build-blocker:
+            use-build-blocker: true
+            blocking-jobs:
+                - 'xci-verify-deploy-.*'
+                - 'xci-verify-healthcheck-.*'
+                - 'bifrost-verify-.*'
+                - 'bifrost-periodic-.*'
+                - 'osa-verify-.*'
+                - 'osa-periodic-.*'
+            block-level: 'NODE'
 
     parameters:
         - project-parameter:
             project: '{project}'
-            branch: '{opnfv-releng-version}'
-        - string:
-            name: GIT_BASE
-            default: https://gerrit.opnfv.org/gerrit/$PROJECT
-        - string:
-            name: XCI_FLAVOR
-            default: 'ha'
+            branch: '{branch}'
+        - label:
+            name: SLAVE_LABEL
+            default: 'xci-virtual-{distro}'
         - string:
             name: OPENSTACK_OSA_VERSION
-            default: '{openstack-osa-version}'
-        - string:
-            name: OPNFV_RELENG_VERSION
-            default: '{opnfv-releng-version}'
+            default: 'master'
         - string:
             name: DISTRO
-            default: '{distro}'
+            default: 'xenial'
         - string:
-            name: DIB_OS_RELEASE
-            default: '{dib-os-release}'
+            name: DEPLOY_SCENARIO
+            default: 'os-nosdn-nofeature-noha'
         - string:
-            name: DIB_OS_ELEMENT
-            default: '{dib-os-element}'
+            name: XCI_FLAVOR
+            default: 'mini'
         - string:
-            name: DIB_OS_PACKAGES
-            default: '{dib-os-packages}'
+            name: XCI_LOOP
+            default: 'periodic'
         - string:
-            name: EXTRA_DIB_ELEMENTS
-            default: '{extra-dib-elements}'
+            name: OPNFV_RELENG_DEV_PATH
+            default: $WORKSPACE/releng-xci
         - string:
-            name: CLEAN_DIB_IMAGES
-            default: 'true'
-        - label:
-            name: SLAVE_LABEL
-            default: '{slave-label}'
+            name: FUNCTEST_SUITE_NAME
+            default: 'healthcheck'
         - string:
             name: ANSIBLE_VERBOSITY
-            default: ''
+            default: '-vvvv'
         - string:
-            name: XCI_LOOP
-            default: 'periodic'
-
-    wrappers:
-        - fix-workspace-permissions
+            name: FORCE_MASTER
+            default: 'true'
+        - string:
+            name: GIT_BASE
+            default: https://gerrit.opnfv.org/gerrit/$PROJECT
 
     scm:
-        - git-scm
+        - git-scm-osa
 
-    # trigger is disabled until we know which jobs we will have
-    # and adjust stuff accordingly
-    triggers:
-        - timed: ''  # '@midnight'
+    wrappers:
+        - ssh-agent-wrapper
+        - build-timeout:
+            timeout: 240
+        - fix-workspace-permissions
 
     builders:
         - description-setter:
-            description: "Built on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
-        - 'osa-deploy-builder'
+            description: "Built on $NODE_NAME"
+        - 'osa-periodic-{phase}-macro'
 
-#---------------------------
+#--------------------------------
 # builder macros
-#---------------------------
+#--------------------------------
 - builder:
-    name: osa-deploy-builder
+    name: 'osa-periodic-deploy-macro'
     builders:
-        - shell:
-            !include-raw: ./xci-deploy.sh
+        - shell: |
+            #!/bin/bash
+
+            # here we will
+            # - clone releng-xci repo as the jobs are running against openstack gerrit
+            #   and we need to clone releng-xci ourselves to $OPNFV_RELENG_DEV_PATH
+            # - run sources-branch-updater.sh from osa to update/pin the role versions
+            #   at the time this job gets triggered against osa master in case if the
+            #   deployment succeeds and we decide to bump version used by xci
+            # - copy generated role versions into $OPNFV_RELENG_DEV_PATH/xci/file
+            # - start the deployment by executing xci-deploy.sh as usual
+            #
+            # we might also need to pin versions of openstack services as well.
+
+            echo "Hello World!"
+
+- builder:
+    name: 'osa-periodic-healthcheck-macro'
+    builders:
+        - shell: |
+            #!/bin/bash
+
+            echo "Hello World!"
+#--------------------------------
+# scm macro
+#--------------------------------
+- scm:
+    name: git-scm-osa
+    scm:
+        - git:
+            url: https://review.openstack.org/p/openstack/openstack-ansible.git
+            branches:
+                - master
+            timeout: 15