summaryrefslogtreecommitdiffstats
path: root/jjb/fuel
diff options
context:
space:
mode:
Diffstat (limited to 'jjb/fuel')
-rwxr-xr-xjjb/fuel/fuel-basic-exp.sh18
-rwxr-xr-xjjb/fuel/fuel-build-exp.sh10
-rwxr-xr-xjjb/fuel/fuel-build.sh2
-rwxr-xr-xjjb/fuel/fuel-deploy-exp.sh10
-rwxr-xr-xjjb/fuel/fuel-deploy.sh55
-rwxr-xr-xjjb/fuel/fuel-plugin-build.sh10
-rwxr-xr-xjjb/fuel/fuel-plugin-test.sh10
-rw-r--r--jjb/fuel/fuel-plugin-verify-jobs.yml82
-rwxr-xr-xjjb/fuel/fuel-smoke-test-exp.sh10
-rw-r--r--jjb/fuel/fuel-verify-jobs-experimental.yml264
10 files changed, 384 insertions, 87 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-build.sh b/jjb/fuel/fuel-build.sh
index 7e36a0c53..c66dc3d8d 100755
--- a/jjb/fuel/fuel-build.sh
+++ b/jjb/fuel/fuel-build.sh
@@ -11,6 +11,8 @@ set -o errexit
set -o nounset
set -o pipefail
+export TERM="vt220"
+
cd $WORKSPACE
# remove the expired items from cache
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-deploy.sh b/jjb/fuel/fuel-deploy.sh
index 2104d9090..48b1dac2f 100755
--- a/jjb/fuel/fuel-deploy.sh
+++ b/jjb/fuel/fuel-deploy.sh
@@ -10,6 +10,8 @@
set -o nounset
set -o pipefail
+export TERM="vt220"
+
# source the file so we get OPNFV vars
source latest.properties
@@ -104,58 +106,5 @@ if [[ $exit_code -ne 0 ]]; then
exit $exit_code
else
echo "Deployment is successful!"
-fi
-
-# Quick and dirty fix for SFC scenatio - will be fixed properly post-release
-if [[ ! "$DEPLOY_SCENARIO" =~ "os-odl_l2-sfc" ]]; then
exit 0
fi
-
-echo
-echo "SFC Scenario is deployed"
-echo
-
-# The stuff below is here temporarily and will be fixed once the release is out
-# The stuff below is here temporarily and will be fixed once the release is out
-export FUEL_MASTER_IP=10.20.0.2
-export TACKER_SCRIPT_URL="https://git.opnfv.org/cgit/fuel/plain/prototypes/sfc_tacker/poc.tacker-up.sh?h=${GIT_BRANCH#*/}"
-export CONTROLLER_NODE_IP=$(sshpass -pr00tme /usr/bin/ssh -o UserKnownHostsFile=/dev/null \
- -o StrictHostKeyChecking=no root@$FUEL_MASTER_IP 'fuel node list' | \
- grep controller | head -1 | cut -d'|' -f5)
-
-# we can't do much if we do not have the controller IP
-if [[ ! "$CONTROLLER_NODE_IP" =~ "10.20.0" ]]; then
- echo "Unable to retrieve controller IP"
- exit 1
-fi
-
-echo
-echo "Copying and executing poc.tacker-up.sh script on controller node $CONTROLLER_NODE_IP"
-echo
-
-expect << END
-spawn /usr/bin/ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -l root $::env(FUEL_MASTER_IP)
-expect {
- -re ".*sword.*" {
- exp_send "r00tme\r"
- }
-}
-expect "# "
-send "/usr/bin/ssh -l root $::env(CONTROLLER_NODE_IP)\r"
-expect "# "
-send "PS1=\"tacker_poc> \"\r"
-expect -re {tacker_poc> $}
-send "sudo apt-get install -y git\r"
-expect -re {tacker_poc> $}
-sleep 10
-send "/bin/mkdir -p /root/sfc-poc && cd /root/sfc-poc\r"
-expect -re {tacker_poc> $}
-send "git clone https://gerrit.opnfv.org/gerrit/fuel && cd fuel\r"
-expect -re {tacker_poc> $}
-send "/bin/bash /root/sfc-poc/fuel/prototypes/sfc_tacker/poc.tacker-up.sh\r"
-expect -re {tacker_poc> $}
-send "exit\r"
-expect "Connection to $::env(CONTROLLER_NODE_IP) closed. "
-send "exit\r"
-expect "Connection to $::env(FUEL_MASTER_IP) closed. "
-END
diff --git a/jjb/fuel/fuel-plugin-build.sh b/jjb/fuel/fuel-plugin-build.sh
new file mode 100755
index 000000000..f7f613dc0
--- /dev/null
+++ b/jjb/fuel/fuel-plugin-build.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-plugin-test.sh b/jjb/fuel/fuel-plugin-test.sh
new file mode 100755
index 000000000..f7f613dc0
--- /dev/null
+++ b/jjb/fuel/fuel-plugin-test.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-plugin-verify-jobs.yml b/jjb/fuel/fuel-plugin-verify-jobs.yml
index affc705f3..4fea26b32 100644
--- a/jjb/fuel/fuel-plugin-verify-jobs.yml
+++ b/jjb/fuel/fuel-plugin-verify-jobs.yml
@@ -9,7 +9,8 @@
#####################################
stream:
- master:
- branch: '{stream}'
+ upstream-branch: '{stream}'
+ opnfv-branch: 'experimental'
gs-pathname: ''
disabled: false
#####################################
@@ -44,11 +45,23 @@
max-total: 4
option: 'project'
- # the url to plugin repo can essentially become a variable if
- # the plugin name is injected to env by gerrit plugin
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{upstream-branch}'
+ description: 'OpenStack branch to use'
+ - string:
+ name: OPNFV_BRANCH
+ default: '{opnfv-branch}'
+ description: 'OPNFV branch to use'
+ - 'opnfv-build-defaults'
+ - 'fuel-verify-plugin-defaults':
+ gs-pathname: '{gs-pathname}'
+
scm:
- git:
- url: 'https://git.openstack.org/openstack/fuel-plugin-bgpvpn'
+ url: 'https://git.openstack.org/$GERRIT_PROJECT'
refspec: '$GERRIT_REFSPEC'
branches:
- 'origin/$GERRIT_BRANCH'
@@ -89,21 +102,20 @@
project-pattern: 'openstack/fuel-plugin-bgpvpn'
branches:
- branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
+ branch-pattern: '**/{upstream-branch}'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'README.md|.gitignore|.gitreview'
+ - project-compare-type: 'PLAIN'
+ project-pattern: 'openstack/fuel-plugin-onos'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{upstream-branch}'
forbidden-file-paths:
- compare-type: ANT
pattern: 'README.md|.gitignore|.gitreview'
readable-message: true
- parameters:
- - project-parameter:
- project: '{project}'
- - gerrit-parameter:
- branch: '{branch}'
- - 'opnfv-build-defaults'
- - 'fuel-verify-plugin-defaults':
- gs-pathname: '{gs-pathname}'
-
builders:
- description-setter:
description: "Built on $NODE_NAME"
@@ -114,6 +126,7 @@
- name: 'fuel-verify-plugin-build-{stream}'
current-parameters: false
predefined-parameters: |
+ GERRIT_PROJECT=$GERRIT_PROJECT
GERRIT_BRANCH=$GERRIT_BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
@@ -128,6 +141,7 @@
- name: 'fuel-verify-plugin-test-{stream}'
current-parameters: false
predefined-parameters: |
+ GERRIT_PROJECT=$GERRIT_PROJECT
GERRIT_BRANCH=$GERRIT_BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
@@ -154,11 +168,24 @@
- 'fuel-verify-plugin-test-.*'
block-level: 'NODE'
- # the url to plugin repo can essentially become a variable if
- # the plugin name is injected to env by gerrit plugin
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{upstream-branch}'
+ description: 'OpenStack branch to use'
+ - string:
+ name: OPNFV_BRANCH
+ default: '{opnfv-branch}'
+ description: 'OPNFV branch to use'
+ - '{slave-label}-defaults'
+ - '{installer}-defaults'
+ - 'fuel-verify-plugin-defaults':
+ gs-pathname: '{gs-pathname}'
+
scm:
- git:
- url: 'https://git.openstack.org/openstack/fuel-plugin-bgpvpn'
+ url: 'https://git.openstack.org/$GERRIT_PROJECT'
refspec: '$GERRIT_REFSPEC'
branches:
- 'origin/$GERRIT_BRANCH'
@@ -174,15 +201,6 @@
- timeout:
timeout: 360
fail: true
- parameters:
- - project-parameter:
- project: '{project}'
- - gerrit-parameter:
- branch: '{branch}'
- - '{slave-label}-defaults'
- - '{installer}-defaults'
- - 'fuel-verify-plugin-defaults':
- gs-pathname: '{gs-pathname}'
builders:
- description-setter:
@@ -194,18 +212,14 @@
- builder:
name: 'fuel-verify-plugin-build-macro'
builders:
- - shell: |
- #!/bin/bash
-
- echo "Not activated!"
+ - shell:
+ !include-raw: ./fuel-plugin-build.sh
- builder:
name: 'fuel-verify-plugin-test-macro'
builders:
- - shell: |
- #!/bin/bash
-
- echo "Not activated!"
+ - shell:
+ !include-raw: ./fuel-plugin-test.sh
#####################################
# parameter macros
#####################################
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."