Stop after the first failures in Airship gates
[releng.git] / jjb / airship / airship.yaml
index d577b20..9e88ed6 100644 (file)
@@ -8,9 +8,10 @@
     repo: 'opnfv'
     port:
     tag:
-      - hunter:
-          branch: stable/hunter
+      - latest:
+          branch: master
           slave: intel-pod17
+          functest_tag: hunter
 
 - parameter:
     name: airship-slave
           name: slave
           default: '{slave}'
 
-- parameter:
-    name: airship-branch
-    parameters:
-      - string:
-          name: branch
-          default: '{branch}'
-
 - airship-containers: &airship-containers
     name: 'airship-containers'
     repo: '{repo}'
     port: '{port}'
     container: '{container}'
-    tag: '{tag}'
+    functest_tag: '{functest_tag}'
 
 - airship-run-containers: &airship-run-containers
     name: 'airship-run-containers'
       - shell: |
           set +x
           if [ "{repo}" = "_" ]; then
-            image={container}:{tag}
+            image={container}:{functest_tag}
           elif [ "{port}" = "None" ]; then
-            image={repo}/{container}:{tag}
+            image={repo}/{container}:{functest_tag}
           else
-            image={repo}:{port}/{container}:{tag}
+            image={repo}:{port}/{container}:{functest_tag}
           fi
-          docker pull $image
+          sudo docker pull $image
 
 - builder:
     name: airship-run-containers
     builders:
       - shell: |
           set +ex
-          [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true
+          [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
           if [ "{repo}" = "_" ]; then
-            image={container}:{tag}
+            image={container}:{functest_tag}
           elif [ "{port}" = "None" ]; then
-            image={repo}/{container}:{tag}
+            image={repo}/{container}:{functest_tag}
           else
-            image={repo}:{port}/{container}:{tag}
+            image={repo}:{port}/{container}:{functest_tag}
           fi
-          docker run --rm \
+          sudo docker run --rm \
             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
             -e NODE_NAME=intel-pod17 \
             -e INSTALLER_TYPE=airship \
       - shell: |
           set +x
           if [ "{repo}" = "_" ]; then
-            image={container}:{tag}
+            image={container}:{functest_tag}
           elif [ "{port}" = "None" ]; then
-            image={repo}/{container}:{tag}
+            image={repo}/{container}:{functest_tag}
           else
-            image={repo}:{port}/{container}:{tag}
+            image={repo}:{port}/{container}:{functest_tag}
           fi
-          docker rmi $image || true
+          sudo docker rmi $image || true
 
+- builder:
+    name: airship-deploy
+    builders:
+      - shell: |
+          set +x
+          export TERM_OPTS=" "
+          sudo -H -E -u ubuntu bash -c 'tools/deploy.sh deploy_site'
+
+- scm:
+    name: airship-scm
+    scm:
+      - git:
+          url: https://gerrit.opnfv.org/gerrit/airship
+          refspec: '+refs/changes/*:refs/changes/*'
+          branches:
+            - '{ref}'
+
+- parameter:
+    name: airship-branch
+    parameters:
+      - string:
+          name: branch
+          default: '{branch}'
+
+- job-template:
+    name: 'airship-deploy-daily-{tag}'
+    parameters:
+      - airship-slave:
+          slave: '{slave}'
+      - airship-branch:
+          branch: '{branch}'
+    scm:
+      - airship-scm:
+          ref: $branch
+    builders:
+      - airship-deploy
+
+- job-template:
+    name: 'airship-deploy-gate-{tag}'
+    parameters:
+      - airship-slave:
+          slave: '{slave}'
+    scm:
+      - airship-scm:
+          ref: $GERRIT_REFSPEC
+    builders:
+      - airship-deploy
+
+- project:
+    name: 'airship-deploy'
+    <<: *airship-params
+    jobs:
+      - 'airship-deploy-daily-{tag}'
+      - 'airship-deploy-gate-{tag}'
 
 - job-template:
     name: 'airship-{repo}-{container}-{tag}-pull'
     jobs:
       - 'airship-{repo}-{container}-{tag}-pull'
 
-- project:
-    name: 'airship-opnfv-functest-features-pull'
-    <<: *airship-params
-    container: 'functest-features'
-    jobs:
-      - 'airship-{repo}-{container}-{tag}-pull'
-
 - job-template:
     name: 'airship-{repo}-{container}-{tag}-rmi'
     parameters:
     jobs:
       - 'airship-{repo}-{container}-{tag}-rmi'
 
-- project:
-    name: 'airship-opnfv-functest-features-rmi'
-    <<: *airship-params
-    container: 'functest-features'
-    jobs:
-      - 'airship-{repo}-{container}-{tag}-rmi'
-
 - job-template:
     name: 'airship-{repo}-{container}-{tag}-{test}-run'
     parameters:
     jobs:
       - 'airship-{repo}-{container}-{tag}-{test}-run'
 
-- project:
-    name: 'airship-opnfv-functest-features'
-    <<: *airship-params
-    container: 'functest-features'
-    test:
-      - doctor-notification
-      - functest-odl-sfc
-      - barometercollectd
-      - vgpu
-      - stor4nfv_os
-    jobs:
-      - 'airship-{repo}-{container}-{tag}-{test}-run'
-
 - job-template:
     name: 'airship-{tag}-daily'
     project-type: multijob
     parameters:
       - airship-slave:
           slave: '{slave}'
+      - airship-branch:
+          branch: 'master'
     properties:
       - build-blocker:
           use-build-blocker: true
           blocking-level: 'NODE'
           blocking-jobs:
-            - '^airship-{tag}-(daily|check|gate)$'
+            - '^airship-{tag}-(daily|gate)$'
     builders:
+      - multijob:
+          name: deploy
+          projects:
+            - name: 'airship-deploy-daily-latest'
+              <<: *airship-jobs
       - multijob:
           name: remove former images
           projects:
               <<: *airship-jobs
             - name: 'airship-opnfv-functest-vnf-{tag}-rmi'
               <<: *airship-jobs
-            - name: 'airship-opnfv-functest-features-{tag}-rmi'
-              <<: *airship-jobs
       - multijob:
           name: pull containers
           projects:
               <<: *airship-jobs
             - name: 'airship-opnfv-functest-vnf-{tag}-pull'
               <<: *airship-jobs
-            - name: 'airship-opnfv-functest-features-{tag}-pull'
-              <<: *airship-jobs
       - multijob:
-          name: opnfv/functest-healthcheck:{tag}
+          name: opnfv/functest-healthcheck:{functest_tag}
           condition: ALWAYS
           projects:
             - name: 'airship-opnfv-functest-healthcheck-{tag}-connection_check-run'
             - name: 'airship-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
               <<: *airship-jobs
       - multijob:
-          name: opnfv/functest-smoke:{tag}
+          name: opnfv/functest-smoke:{functest_tag}
           condition: ALWAYS
           projects:
             - name: 'airship-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
             - name: 'airship-opnfv-functest-smoke-{tag}-barbican-run'
               <<: *airship-jobs
       - multijob:
-          name: opnfv/functest-benchmarking:{tag}
+          name: opnfv/functest-benchmarking:{functest_tag}
           condition: ALWAYS
           projects:
             - name: 'airship-opnfv-functest-benchmarking-{tag}-rally_full-run'
             - name: 'airship-opnfv-functest-benchmarking-{tag}-shaker-run'
               <<: *airship-jobs
       - multijob:
-          name: opnfv/functest-vnf:{tag}
+          name: opnfv/functest-vnf:{functest_tag}
           condition: ALWAYS
           execution-type: SEQUENTIALLY
           projects:
               <<: *airship-jobs
             - name: 'airship-opnfv-functest-vnf-{tag}-juju_epc-run'
               <<: *airship-jobs
+
+- trigger:
+    name: airship-patchset-created
+    triggers:
+      - gerrit:
+          server-name: 'gerrit.opnfv.org'
+          trigger-on:
+            - patchset-created-event
+            - comment-added-contains-event:
+                comment-contains-value: 'recheck'
+            - comment-added-contains-event:
+                comment-contains-value: 'reverify'
+          projects:
+            - project-compare-type: 'ANT'
+              project-pattern: 'airship'
+              branches:
+                - branch-compare-type: 'ANT'
+                  branch-pattern: '**/{branch}'
+          skip-vote:
+            successful: false
+            failed: false
+            unstable: false
+            notbuilt: false
+
+- job-template:
+    name: 'airship-{tag}-gate'
+    project-type: multijob
+    triggers:
+      - airship-patchset-created:
+          branch: '{branch}'
+    parameters:
+      - airship-slave:
+          slave: '{slave}'
+    properties:
+      - build-blocker:
+          use-build-blocker: true
+          blocking-level: 'NODE'
+          blocking-jobs:
+            - '^airship-{tag}-(daily|gate)$'
+    builders:
+      - multijob:
+          name: deploy
+          projects:
+            - name: 'airship-deploy-gate-latest'
+              <<: *airship-jobs
       - multijob:
-          name: opnfv/functest-features:{tag}
-          condition: ALWAYS
+          name: remove former images
           projects:
-            - name: 'airship-opnfv-functest-features-{tag}-doctor-notification-run'
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-rmi'
               <<: *airship-jobs
-            - name: 'airship-opnfv-functest-features-{tag}-functest-odl-sfc-run'
+            - name: 'airship-opnfv-functest-smoke-{tag}-rmi'
               <<: *airship-jobs
-            - name: 'airship-opnfv-functest-features-{tag}-barometercollectd-run'
+            - name: 'airship-opnfv-functest-benchmarking-{tag}-rmi'
               <<: *airship-jobs
-            - name: 'airship-opnfv-functest-features-{tag}-vgpu-run'
+            - name: 'airship-opnfv-functest-vnf-{tag}-rmi'
               <<: *airship-jobs
-            - name: 'airship-opnfv-functest-features-{tag}-stor4nfv_os-run'
+      - multijob:
+          name: pull containers
+          projects:
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-pull'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-smoke-{tag}-pull'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-benchmarking-{tag}-pull'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-vnf-{tag}-pull'
+              <<: *airship-jobs
+      - multijob:
+          name: opnfv/functest-healthcheck:{functest_tag}
+          projects:
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-connection_check-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready1-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready2-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm1-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm2-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-cinder_test-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-healthcheck-{tag}-odl-run'
+              <<: *airship-jobs
+      - multijob:
+          name: opnfv/functest-smoke:{functest_tag}
+          projects:
+            - name: 'airship-opnfv-functest-smoke-{tag}-tempest_scenario-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-smoke-{tag}-neutron_trunk-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-smoke-{tag}-networking-sfc-run'
+              <<: *airship-jobs
+            - name: 'airship-opnfv-functest-smoke-{tag}-barbican-run'
+              <<: *airship-jobs
+      - multijob:
+          name: opnfv/functest-benchmarking:{functest_tag}
+          projects:
+            - name: 'airship-opnfv-functest-benchmarking-{tag}-vmtp-run'
               <<: *airship-jobs
-
 
 - project:
     name: 'airship'
     <<: *airship-params
     jobs:
       - 'airship-{tag}-daily'
+      - 'airship-{tag}-gate'
 
 - view:
     name: airship