summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFatih Degirmenci <fatih.degirmenci@ericsson.com>2016-10-10 11:26:51 +0200
committerFatih Degirmenci <fatih.degirmenci@ericsson.com>2016-10-10 11:31:05 +0200
commitd5abc28161a9f724968207c6698a28f9fe61f04e (patch)
tree1cef47cc43fbfe82a80a1c31af623653808bf940
parent56d2e9a30ceb114678428152e4b54fb52c398ebe (diff)
fuel: Proposal for specifying scenario name in commit message
Please take a look at fuel-basic-exp.sh for the proposal. Apart from scenario name input proposal, jobs and script templatest have been created as well. Change-Id: I53b74b2e1ed34acb1f54b7ab21823227fff86d10 Signed-off-by: Fatih Degirmenci <fatih.degirmenci@ericsson.com>
-rwxr-xr-xjjb/fuel/fuel-basic-exp.sh18
-rwxr-xr-xjjb/fuel/fuel-build-exp.sh10
-rwxr-xr-xjjb/fuel/fuel-deploy-exp.sh10
-rwxr-xr-xjjb/fuel/fuel-smoke-test-exp.sh10
-rw-r--r--jjb/fuel/fuel-verify-jobs-experimental.yml264
5 files changed, 312 insertions, 0 deletions
diff --git a/jjb/fuel/fuel-basic-exp.sh b/jjb/fuel/fuel-basic-exp.sh
new file mode 100755
index 000000000..a70a0c765
--- /dev/null
+++ b/jjb/fuel/fuel-basic-exp.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+set -o nounset
+
+echo "-----------------------------------------------------------------------"
+echo $GERRIT_CHANGE_COMMIT_MESSAGE
+echo "-----------------------------------------------------------------------"
+
+# proposal for specifying the scenario name in commit message
+# currently only 1 scenario name is supported but depending on
+# the need, it can be expanded, supporting multiple scenarios
+# using comma separated list or something
+SCENARIO_NAME_PATTERN="(?<=@scenario:).*?(?=@)"
+SCENARIO_NAME=(echo $GERRIT_CHANGE_COMMIT_MESSAGE | grep -oP "$SCENARIO_NAME_PATTERN")
+if [[ $? -ne 0 ]]; then
+ echo "The patch verification will be done only with build!"
+else
+ echo "Will run full verification; build, deploy, and smoke test using scenario $SCENARIO_NAME"
+fi
diff --git a/jjb/fuel/fuel-build-exp.sh b/jjb/fuel/fuel-build-exp.sh
new file mode 100755
index 000000000..f7f613dc0
--- /dev/null
+++ b/jjb/fuel/fuel-build-exp.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [[ "$JOB_NAME" =~ (verify|merge|daily|weekly) ]]; then
+ JOB_TYPE=${BASH_REMATCH[0]}
+else
+ echo "Unable to determine job type!"
+ exit 1
+fi
+
+echo "Not activated!"
diff --git a/jjb/fuel/fuel-deploy-exp.sh b/jjb/fuel/fuel-deploy-exp.sh
new file mode 100755
index 000000000..f7f613dc0
--- /dev/null
+++ b/jjb/fuel/fuel-deploy-exp.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [[ "$JOB_NAME" =~ (verify|merge|daily|weekly) ]]; then
+ JOB_TYPE=${BASH_REMATCH[0]}
+else
+ echo "Unable to determine job type!"
+ exit 1
+fi
+
+echo "Not activated!"
diff --git a/jjb/fuel/fuel-smoke-test-exp.sh b/jjb/fuel/fuel-smoke-test-exp.sh
new file mode 100755
index 000000000..f7f613dc0
--- /dev/null
+++ b/jjb/fuel/fuel-smoke-test-exp.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [[ "$JOB_NAME" =~ (verify|merge|daily|weekly) ]]; then
+ JOB_TYPE=${BASH_REMATCH[0]}
+else
+ echo "Unable to determine job type!"
+ exit 1
+fi
+
+echo "Not activated!"
diff --git a/jjb/fuel/fuel-verify-jobs-experimental.yml b/jjb/fuel/fuel-verify-jobs-experimental.yml
new file mode 100644
index 000000000..ae83b08cf
--- /dev/null
+++ b/jjb/fuel/fuel-verify-jobs-experimental.yml
@@ -0,0 +1,264 @@
+- project:
+ # TODO: rename the project name
+ # TODO: get rid of appended -exp from the remainder of the file
+ name: 'fuel-verify-jobs-experimental'
+
+ project: 'fuel'
+
+ installer: 'fuel'
+#------------------------------------
+# branch definitions
+#------------------------------------
+ # TODO: enable master once things settle
+ stream-exp:
+ - experimental:
+ branch: 'stable/{stream-exp}'
+ gs-pathname: '/{stream-exp}'
+ disabled: false
+#------------------------------------
+# patch verification phases
+#------------------------------------
+ phase:
+ - 'basic':
+ # this phase does basic commit message check, unit test and so on
+ slave-label: 'opnfv-build'
+ - 'build':
+ # this phase builds artifacts if valid for given installer
+ slave-label: 'opnfv-build-ubuntu'
+ - 'deploy-virtual':
+ # this phase does virtual deployment using the artifacts produced in previous phase
+ slave-label: 'fuel-virtual'
+ - 'smoke-test':
+ # this phase runs functest smoke test
+ slave-label: 'fuel-virtual'
+#------------------------------------
+# jobs
+#------------------------------------
+ jobs:
+ - 'fuel-verify-{stream-exp}'
+ - 'fuel-verify-{phase}-{stream-exp}'
+#------------------------------------
+# job templates
+#------------------------------------
+- job-template:
+ name: 'fuel-verify-{stream-exp}'
+
+ project-type: multijob
+
+ disabled: '{obj:disabled}'
+
+ # TODO: this is valid for experimental only
+ # enable concurrency for master once things settle
+ concurrent: false
+
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 4
+ option: 'project'
+
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - ssh-agent-credentials:
+ users:
+ - '{ssh-credentials}'
+ - timeout:
+ timeout: 360
+ fail: true
+
+ triggers:
+ - gerrit:
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: 'false'
+ exclude-trivial-rebase: 'false'
+ exclude-no-code-change: 'false'
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: 'recheck'
+ - comment-added-contains-event:
+ comment-contains-value: 'reverify'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ file-paths:
+ - compare-type: ANT
+ pattern: 'ci/**'
+ - compare-type: ANT
+ pattern: 'build/**'
+ - compare-type: ANT
+ pattern: 'deploy/**'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**'
+ readable-message: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - 'opnfv-build-defaults'
+ - 'fuel-verify-defaults-exp':
+ gs-pathname: '{gs-pathname}'
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: basic
+ condition: SUCCESSFUL
+ projects:
+ - name: 'fuel-verify-basic-{stream-exp}'
+ current-parameters: false
+ predefined-parameters: |
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: false
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: build
+ condition: SUCCESSFUL
+ projects:
+ - name: 'fuel-verify-build-{stream-exp}'
+ current-parameters: false
+ predefined-parameters: |
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: false
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: deploy-virtual
+ condition: SUCCESSFUL
+ projects:
+ - name: 'fuel-verify-deploy-virtual-{stream-exp}'
+ current-parameters: false
+ predefined-parameters: |
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: false
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: smoke-test
+ condition: SUCCESSFUL
+ projects:
+ - name: 'fuel-verify-smoke-test-{stream-exp}'
+ current-parameters: false
+ predefined-parameters: |
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: false
+ kill-phase-on: FAILURE
+ abort-all-job: true
+
+- job-template:
+ name: 'fuel-verify-{phase}-{stream-exp}'
+
+ disabled: '{obj:disabled}'
+
+ concurrent: true
+
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 6
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'fuel-verify-deploy-.*'
+ - 'fuel-verify-test-.*'
+ block-level: 'NODE'
+
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - ssh-agent-credentials:
+ users:
+ - '{ssh-credentials}'
+ - timeout:
+ timeout: 360
+ fail: true
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - '{slave-label}-defaults'
+ - '{installer}-defaults'
+ - 'fuel-verify-defaults-exp':
+ gs-pathname: '{gs-pathname}'
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - '{project}-verify-{phase}-macro-exp'
+#------------------------------------
+# builder macros
+#------------------------------------
+- builder:
+ name: 'fuel-verify-basic-macro-exp'
+ builders:
+ - shell:
+ !include-raw: ./fuel-basic-exp.sh
+
+- builder:
+ name: 'fuel-verify-build-macro-exp'
+ builders:
+ - shell:
+ !include-raw: ./fuel-build-exp.sh
+ - shell:
+ !include-raw: ./fuel-workspace-cleanup.sh
+
+- builder:
+ name: 'fuel-verify-deploy-virtual-macro-exp'
+ builders:
+ - shell:
+ !include-raw: ./fuel-deploy-exp.sh
+
+- builder:
+ name: 'fuel-verify-smoke-test-macro-exp'
+ builders:
+ - shell:
+ !include-raw: ./fuel-smoke-test-exp.sh
+#------------------------------------
+# parameter macros
+#------------------------------------
+- parameter:
+ name: 'fuel-verify-defaults-exp'
+ parameters:
+ - string:
+ name: BUILD_DIRECTORY
+ default: $WORKSPACE/build_output
+ description: "Directory where the build artifact will be located upon the completion of the build."
+ - string:
+ name: CACHE_DIRECTORY
+ default: $HOME/opnfv/cache/$INSTALLER_TYPE
+ description: "Directory where the cache to be used during the build is located."
+ - string:
+ name: GS_URL
+ default: artifacts.opnfv.org/$PROJECT{gs-pathname}
+ description: "URL to Google Storage."