openci: Add initial versions of prototype jobs
[releng/builder.git] / jjb / openci / openci-odl-daily-jobs.yaml
diff --git a/jjb/openci/openci-odl-daily-jobs.yaml b/jjb/openci/openci-odl-daily-jobs.yaml
new file mode 100644 (file)
index 0000000..1ef00f0
--- /dev/null
@@ -0,0 +1,103 @@
+---
+- project:
+    name: openci-odl
+
+    project: '{name}'
+
+    stream:
+      - master:
+          branch: '{stream}'
+          gs-pathname: ''
+          disabled: false
+
+    jobs:
+      - 'openci-odl-autorelease-daily-{stream}'
+      - 'openci-odl-promote-daily-{stream}'
+
+# This job gets triggered manually for the demo purposes.
+#
+# In prototype, either what this job does needs to be integrated to
+# ODL autorelease job or triggered by the upstream autorelease job.
+- job-template:
+    name: 'openci-odl-autorelease-daily-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: false
+
+    build-node: centos7-builder-2c-2g
+
+    parameters:
+      - string:
+          name: PUBLISH_EVENT_TYPE
+          default: ArtifactPublishedEvent
+          description: 'The type of the event this job publishes'
+      - string:
+          name: PUBLISH_EVENT_ORIGIN
+          default: ODL
+          description: 'Originating community'
+      - string:
+          name: ARTIFACT_LOCATION
+          default: https://url/to/artifact/on/odl/nexus/$BUILD_NUMBER
+          description: 'The location of the artifact on ODL Nexus'
+      - string:
+          name: CONFIDENCE_LEVEL
+          default: "'autorelease': 'SUCCESS'"
+          description: 'The confidence level the published artifact gained'
+
+    builders:
+      # first build step in the job executes create-ape.sh to construct the
+      # ArtifactPublishedEvent (ape)
+      - shell:
+          !include-raw-escape: ./create-ape.sh
+      # constructed event gets injected into environment so JME Messaging
+      # plugin can publish the event and its properties in post-build step
+      - inject:
+          properties-file: "$WORKSPACE/event.properties"
+
+    publishers:
+      - jms-messaging:
+          provider-name: openci.activemq
+          msg-type: Custom
+          msg-props: |
+            type=$type
+            origin=$origin
+          msg-content:
+            $eventBody
+
+# This job gets triggered by a ConfidenceLevelModifiedEvent published
+# by OPNFV jobs so ODL can promote the autorelease artifact even further.
+#
+# This job is created for the demo purposes and might not be there for
+# the prototype.
+- job-template:
+    name: 'openci-odl-promote-daily-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: false
+
+    build-node: centos7-builder-2c-2g
+
+    triggers:
+      - jms-messaging:
+          provider-name: openci.activemq
+          selector: CI_TYPE = 'custom'
+          checks:
+            - field: origin
+              expected-value: 'OPNFV'
+            - field: type
+              expected-value: 'ConfidenceLevelModifiedEvent'
+            - field: scenario
+              expected-value: 'os-odl-nofeature'
+
+    builders:
+      - shell: |
+          #!/bin/bash
+
+          echo
+          echo "Triggered by $type"
+          echo "----------------------------------"
+          echo $CI_MESSAGE
+          echo "----------------------------------"
+          echo " Promoted ODL Autorelease artifact as release candidate!"