validation: Only run tagged docker build once
[ci-management.git] / jjb / akraino-templates / akraino-validation-templates.yaml
index e8c96b4..33fb9be 100644 (file)
@@ -8,7 +8,7 @@
     build-timeout: 90
 
     parameters:
-      - validation-job-parameters:
+      - lf-infra-parameters: &validation_lf_infra_parameters
           project: '{project}'
           branch: '{branch}'
           stream: '{stream}'
           use-build-blocker: true
           blocking-jobs:
             - 'validation-docker-.*'
-          blocking-level: 'NODE'
-    scm:
-      - validation-infra-gerrit-scm:
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-          git-url: '{git-url}/{project}.git'
-          refspec: ''
-          refs_tag: '{refs_tag}'
-          stream: '{stream}'
-          submodule-recursive: false
-          submodule-timeout: '{submodule-timeout}'
-          submodule-disable: false
-          choosing-strategy: default
+          block-level: 'NODE'
 
-    triggers:
-      # Build nigtly at 12:10 AM
-      - timed: '10 0 * * *'
+    triggers: '{obj:triggers}'
 
     builders:
       - multijob:
 
     publishers:
       - email:
-          recipients: 'cristina.pauna@enea.com'
+          recipients: >
+            cristina.pauna@enea.com
+            juha.kosonen@nokia.com
+
 
 - job-template:
     id: akraino-validation-docker-specific-arch
     build-timeout: 75
 
     parameters:
-      - validation-job-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          stream: '{stream}'
-          arch_tag: '{arch_tag}'
+      - lf-infra-parameters: *validation_lf_infra_parameters
 
     properties:
       - build-blocker:
           use-build-blocker: true
           blocking-jobs:
             - 'validation-docker-build-.*'
-          blocking-level: 'NODE'
-    scm:
-     - validation-infra-gerrit-scm:
+          block-level: 'NODE'
+    scm: &validation_scm
+      # lf-infra-gerrit-scm hardcodes branch specifier to refs/heads; while
+      # lf-infra-github-scm does not, allowing us to pass a fully custom '{branch}'
+      - lf-infra-github-scm:
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
-          git-url: '{git-url}/{project}.git'
-          refspec: ''
-          refs_tag: '{refs_tag}'
-          stream: '{stream}'
+          url: '{git-url}/{project}.git'
+          refspec: '$GERRIT_REFSPEC'
+          branch: '$STREAM'
           submodule-recursive: false
           submodule-timeout: '{submodule-timeout}'
           submodule-disable: false
       - lf-infra-docker-login:
           global-settings-file: global-settings
           settings-file: '{mvn-settings}'
-      - conditional-step:
-          condition-kind: regex-match
-          regex: '^tags$'
-          label: '{refs_tag}'
-          steps:
-            - shell: |
-                #!/bin/bash -ex
-                echo "export TAG_VER=$STREAM"  >> tag_version.sh
       - shell: |
           #!/bin/bash -ex
-          if [ -f tag_version.sh ]; then source tag_version.sh; fi
+          if [ "{branch}" != "{stream}" ]; then export TAG_VER=$STREAM; fi
           make -k -C docker push-all
-          rm -f tag_version.sh
-      - shell: |
-          #!/bin/bash -ex
           docker system prune -af
 
 - job-template:
     build-timeout: 15
 
     parameters:
-      - validation-job-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          stream: '{stream}'
+      - lf-infra-parameters: *validation_lf_infra_parameters
 
     disabled: '{obj:disabled}'
 
-    scm:
-     - validation-infra-gerrit-scm:
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-          git-url: '{git-url}/{project}.git'
-          refspec: ''
-          refs_tag: '{refs_tag}'
-          stream: '{stream}'
-          submodule-recursive: false
-          submodule-timeout: '{submodule-timeout}'
-          submodule-disable: false
-          choosing-strategy: default
+    scm: *validation_scm
 
     builders:
       - lf-infra-docker-login:
           global-settings-file: global-settings
           settings-file: '{mvn-settings}'
-      - conditional-step:
-          condition-kind: regex-match
-          regex: '^tags$'
-          label: '{refs_tag}'
-          steps:
-            - shell: |
-                #!/bin/bash -ex
-                echo "export TAG_VER=$STREAM"  >> tag_version.sh
       - shell: |
           #!/bin/bash -ex
-          if [ -f tag_version.sh ]; then source tag_version.sh; fi
+          if [ "{branch}" != "{stream}" ]; then export TAG_VER=$STREAM; fi
           for sd in docker/*/.; do make -k -C $sd .push_manifest; done
-          rm -f tag_version.sh
+
+- job-template:
+    id: akraino-validation-lab-daily
+    name: 'validation-{validation_lab}-daily-{stream}'
+    concurrent: true
+    node: '{build-node}'
+    parameters:
+      - {'lab_params'}
+    builders:
+      - trigger-builds:
+          - project: 'bluval-daily-{stream}'
+            predefined-parameters:
+              LAB_SILO={validation_lab}
+            same-node: true
+            current-parameters: true
+            block: true
+
+- job-template:
+    id: bluval-run-daily-tests
+    name: 'bluval-daily-{stream}'
+    concurrent: true
+    node: '{build-node}'
+    parameters:
+      - lf-infra-parameters: *validation_lf_infra_parameters
+      - string:
+          name: DEPLOY_SCENARIO
+          default: ''
+      - {'bluval-defaults'}
+
+    scm:
+      - lf-infra-github-scm:
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
+          url: '{git-url}/{project}.git'
+          refspec: '$GERRIT_REFSPEC'
+          branch: '$GERRIT_BRANCH'
+          submodule-recursive: false
+          submodule-timeout: '{submodule-timeout}'
+          submodule-disable: true
+          choosing-strategy: default
+
+    builders:
+      - description-setter:
+          description: "POD: $NODE_NAME"
+      - lf-infra-create-netrc:
+          server-id: logs
+      - shell: !include-raw-escape:
+        - ../shell/run_bluval.sh
+
+    publishers:
+      - logparser:
+          use-project-rules: true
+          parse-rules: "./bluval/rules.txt"
+          unstable-on-warning: true
+          fail-on-error: true
+          show-graphs: false