summaryrefslogtreecommitdiffstats
path: root/jjb
diff options
context:
space:
mode:
authorFatih Degirmenci <fdegir@gmail.com>2018-05-16 20:32:16 +0200
committerFatih Degirmenci <fdegir@gmail.com>2018-05-18 17:53:06 +0200
commite27dbfe1650588d8857d3011700e210aeb1e56e1 (patch)
treeb77fe66c03d464f2a8ef56fdeec0717537bec29e /jjb
parentbb376c197b864e9f60c43f97337da0d37e2d443d (diff)
openci: Add OPNFV scenario composition and test jobs for the demo
The flow is - OPNFV compose job gets triggered by the ArtifactPublishedEvents published by ODL and ONAP autorelease jobs, composing the corresponding scenarios. At the end, CompositionDefinedEvent is published for the composed scenario. - OPNFV test job gets triggered by the CompositionDefinedEvents published by OPNFV compose jobs, deploying and testing the composed scenario. At the end, ConfidenceLevelModifiedEvent is published for the tested scenario which can be consumed by ODL and/or ONAP Jenkinses, doing further promotion. Change-Id: Ice1736d65f3f2b26e849302fec2bb0c579da4a1c Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
Diffstat (limited to 'jjb')
-rwxr-xr-xjjb/openci/create-cde.sh27
-rwxr-xr-xjjb/openci/create-clme.sh27
-rw-r--r--jjb/openci/openci-opnfv-daily-jobs.yaml148
3 files changed, 202 insertions, 0 deletions
diff --git a/jjb/openci/create-cde.sh b/jjb/openci/create-cde.sh
new file mode 100755
index 000000000..ac16ab00e
--- /dev/null
+++ b/jjb/openci/create-cde.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 Ericsson AB and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+set -o errexit
+set -o nounset
+set -o pipefail
+
+# This script creates CompositionDefinedEvent
+# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is
+# constructed on a single line. This is something that needs to be fixed properly
+
+cat << EOF > $WORKSPACE/event.properties
+type=$PUBLISH_EVENT_TYPE
+origin=$PUBLISH_EVENT_ORIGIN
+scenario=$DEPLOY_SCENARIO
+eventBody="{ 'type': '$EVENT_TYPE', 'id': '$(uuidgen)', 'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$EVENT_ORIGIN', 'buildUrl': '$BUILD_URL', 'branch': 'master', 'compositionName': '$DEPLOY_SCENARIO', 'compositionMetadataUrl': '$SCENARIO_METADATA' }"
+EOF
+echo "Constructed $EVENT_TYPE"
+echo "--------------------------------------------"
+cat $WORKSPACE/event.properties
+echo "--------------------------------------------"
diff --git a/jjb/openci/create-clme.sh b/jjb/openci/create-clme.sh
new file mode 100755
index 000000000..85dd06d54
--- /dev/null
+++ b/jjb/openci/create-clme.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 Ericsson AB and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+set -o errexit
+set -o nounset
+set -o pipefail
+
+# This script creates ConfidenceLevelModifiedEvent
+# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is
+# constructed on a single line. This is something that needs to be fixed properly
+
+cat << EOF > $WORKSPACE/event.properties
+type=$PUBLISH_EVENT_TYPE
+origin=$PUBLISH_EVENT_ORIGIN
+scenario=$DEPLOY_SCENARIO
+eventBody="{ 'type': '$EVENT_TYPE', 'id': '$(uuidgen)', 'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$EVENT_ORIGIN', 'buildUrl': '$BUILD_URL', 'branch': 'master', 'compositionName': '$DEPLOY_SCENARIO', 'compositionMetadataUrl': '$SCENARIO_METADATA', 'confidenceLevel': { $CONFIDENCE_LEVEL } }"
+EOF
+echo "Constructed $EVENT_TYPE"
+echo "--------------------------------------------"
+cat $WORKSPACE/event.properties
+echo "--------------------------------------------"
diff --git a/jjb/openci/openci-opnfv-daily-jobs.yaml b/jjb/openci/openci-opnfv-daily-jobs.yaml
new file mode 100644
index 000000000..e896149cd
--- /dev/null
+++ b/jjb/openci/openci-opnfv-daily-jobs.yaml
@@ -0,0 +1,148 @@
+---
+- project:
+ name: openci-opnfv
+
+ project: '{name}'
+
+ stream:
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+
+ scenario:
+ - 'os-odl-nofeature-ha':
+ origin: ODL
+ - 'k8-nosdn-onap-ha':
+ origin: ONAP
+
+ jobs:
+ - 'openci-opnfv-{scenario}-compose-daily-{stream}'
+ - 'openci-opnfv-{scenario}-test-daily-{stream}'
+
+- job-template:
+ name: 'openci-opnfv-{scenario}-compose-daily-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ concurrent: false
+
+ parameters:
+ - string:
+ name: PUBLISH_EVENT_TYPE
+ default: CompositionDefinedEvent
+ description: 'The type of the event this job publishes'
+ - string:
+ name: PUBLISH_EVENT_ORIGIN
+ default: OPNFV
+ description: 'Originating community'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: '{scenario}'
+ description: 'The scenario that is composed'
+ - string:
+ name: SCENARIO_METADATA_LOCATION
+ default: https://url/to/scenario/metadata/on/opnfv/artifact/repo/$BUILD_NUMBER
+ description: 'The location of the scenario metadata'
+ - 'opnfv-build-defaults'
+
+ triggers:
+ - jms-messaging:
+ provider-name: openci.activemq
+ selector: CI_TYPE = 'custom'
+ checks:
+ - field: origin
+ expected-value: '{origin}'
+ - field: type
+ expected-value: 'ArtifactPublishedEvent'
+
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ echo
+ echo "Triggered by $type"
+ echo "----------------------------------"
+ echo $CI_MESSAGE
+ echo "----------------------------------"
+ - shell:
+ !include-raw-escape: ./create-cde.sh
+ - 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
+
+- job-template:
+ name: 'openci-opnfv-{scenario}-test-daily-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ concurrent: false
+
+ parameters:
+ - string:
+ name: PUBLISH_EVENT_TYPE
+ default: ConfidenceLevelModifiedEvent
+ description: 'The type of the event this job publishes'
+ - string:
+ name: PUBLISH_EVENT_ORIGIN
+ default: OPNFV
+ description: 'Originating community'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: '{scenario}'
+ description: 'The scenario that is composed'
+ - string:
+ name: SCENARIO_METADATA_LOCATION
+ default: https://url/to/scenario/metadata/on/opnfv/artifact/repo/$BUILD_NUMBER
+ description: 'The location of the scenario metadata'
+ - string:
+ name: CONFIDENCE_LEVEL
+ default: "'opnfvdaily': 'SUCCESS'"
+ description: 'The confidence level the published artifact gained'
+ - 'opnfv-build-defaults'
+
+ triggers:
+ - jms-messaging:
+ provider-name: openci.activemq
+ selector: CI_TYPE = 'custom'
+ checks:
+ - field: origin
+ expected-value: 'OPNFV'
+ - field: type
+ expected-value: 'CompositionDefinedEvent'
+ - field: scenario
+ expected-value: '{scenario}'
+
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ echo
+ echo "Triggered by $type"
+ echo "----------------------------------"
+ echo $CI_MESSAGE
+ echo "----------------------------------"
+ - shell:
+ !include-raw-escape: ./create-clme.sh
+ - inject:
+ properties-file: "$WORKSPACE/event.properties"
+
+ publishers:
+ - jms-messaging:
+ provider-name: openci.activemq
+ msg-type: Custom
+ msg-props: |
+ type=$type
+ origin=$origin
+ scenario=$scenario
+ msg-content:
+ $eventBody