summaryrefslogtreecommitdiffstats
path: root/jjb
diff options
context:
space:
mode:
Diffstat (limited to 'jjb')
-rwxr-xr-xjjb/3rd_party_ci/create-apex-vms.sh10
-rwxr-xr-xjjb/3rd_party_ci/download-netvirt-artifact.sh27
-rwxr-xr-xjjb/3rd_party_ci/install-netvirt.sh40
-rw-r--r--jjb/3rd_party_ci/odl-netvirt.yml70
-rwxr-xr-xjjb/3rd_party_ci/postprocess-netvirt.sh10
-rwxr-xr-xjjb/apex/apex-build.sh3
-rwxr-xr-xjjb/apex/apex-deploy.sh60
-rw-r--r--jjb/apex/apex-snapshot-create.sh97
-rw-r--r--jjb/apex/apex-snapshot-deploy.sh165
-rwxr-xr-xjjb/apex/apex-upload-artifact.sh12
-rw-r--r--jjb/apex/apex.yml292
-rw-r--r--jjb/armband/armband-ci-jobs.yml4
-rwxr-xr-xjjb/armband/armband-deploy.sh7
-rwxr-xr-xjjb/armband/armband-download-artifact.sh2
-rw-r--r--jjb/armband/armband-project-jobs.yml4
-rw-r--r--jjb/armband/armband-verify-jobs.yml22
-rwxr-xr-xjjb/armband/build.sh1
-rwxr-xr-xjjb/armband/upload-artifacts.sh2
-rw-r--r--jjb/availability/availability.yml1
-rw-r--r--jjb/barometer/barometer.yml5
-rw-r--r--jjb/bottlenecks/bottlenecks-ci-jobs.yml62
-rw-r--r--jjb/bottlenecks/bottlenecks-cleanup.sh111
-rw-r--r--jjb/bottlenecks/bottlenecks-project-jobs.yml6
-rw-r--r--jjb/bottlenecks/bottlenecks-run-suite.sh65
-rw-r--r--jjb/compass4nfv/compass-ci-jobs.yml30
-rw-r--r--jjb/compass4nfv/compass-deploy.sh3
-rw-r--r--jjb/compass4nfv/compass-dovetail-jobs.yml208
-rw-r--r--jjb/compass4nfv/compass-project-jobs.yml4
-rw-r--r--jjb/compass4nfv/compass-verify-jobs.yml8
-rw-r--r--jjb/conductor/conductor.yml1
-rw-r--r--jjb/copper/copper.yml8
-rw-r--r--jjb/cperf/cperf-ci-jobs.yml2
-rwxr-xr-xjjb/daisy4nfv/daisy-deploy.sh60
-rw-r--r--jjb/daisy4nfv/daisy-project-jobs.yml232
-rw-r--r--jjb/daisy4nfv/daisy4nfv-merge-jobs.yml160
-rw-r--r--jjb/daisy4nfv/daisy4nfv-verify-jobs.yml134
-rwxr-xr-xjjb/daisy4nfv/daisy4nfv-virtual-deploy.sh29
-rw-r--r--jjb/doctor/doctor.yml18
-rw-r--r--jjb/domino/domino.yml1
-rw-r--r--jjb/dovetail/dovetail-artifacts-upload.yml2
-rw-r--r--jjb/dovetail/dovetail-ci-jobs.yml8
-rw-r--r--jjb/dovetail/dovetail-project-jobs.yml2
-rw-r--r--jjb/dovetail/dovetail-weekly-jobs.yml135
-rw-r--r--jjb/dpacc/dpacc.yml1
-rw-r--r--jjb/escalator/escalator.yml16
-rw-r--r--jjb/fuel/fuel-daily-jobs.yml194
-rwxr-xr-xjjb/fuel/fuel-deploy.sh4
-rwxr-xr-xjjb/fuel/fuel-download-artifact.sh2
-rw-r--r--jjb/fuel/fuel-project-jobs.yml11
-rwxr-xr-xjjb/fuel/fuel-upload-artifact.sh2
-rw-r--r--jjb/fuel/fuel-verify-jobs-experimental.yml12
-rw-r--r--jjb/fuel/fuel-verify-jobs.yml12
-rw-r--r--jjb/functest/functest-ci-jobs.yml10
-rwxr-xr-xjjb/functest/functest-cleanup.sh12
-rw-r--r--jjb/functest/functest-exit.sh5
-rwxr-xr-xjjb/functest/functest-loop.sh6
-rw-r--r--jjb/functest/functest-project-jobs.yml1
-rwxr-xr-xjjb/functest/functest-suite.sh11
-rwxr-xr-xjjb/functest/set-functest-env.sh61
-rw-r--r--jjb/global/installer-params.yml27
-rw-r--r--jjb/global/releng-defaults.yml9
-rw-r--r--jjb/global/releng-macros.yml69
-rw-r--r--jjb/global/slave-params.yml148
-rw-r--r--jjb/infra/bifrost-verify-jobs.yml20
-rwxr-xr-xjjb/infra/bifrost-verify.sh62
-rw-r--r--jjb/ipv6/ipv6.yml1
-rw-r--r--jjb/joid/joid-daily-jobs.yml135
-rw-r--r--jjb/joid/joid-deploy.sh97
-rw-r--r--jjb/joid/joid-verify-jobs.yml10
-rwxr-xr-xjjb/kvmfornfv/kvmfornfv-upload-artifact.sh34
-rw-r--r--jjb/kvmfornfv/kvmfornfv.yml50
-rw-r--r--jjb/models/models.yml67
-rw-r--r--jjb/moon/moon.yml1
-rwxr-xr-xjjb/multisite/fuel-deploy-for-multisite.sh121
-rw-r--r--jjb/multisite/multisite-daily-jobs.yml140
-rw-r--r--jjb/multisite/multisite-verify-jobs.yml68
-rw-r--r--jjb/multisite/multisite.yml149
-rw-r--r--jjb/netready/netready.yml2
-rw-r--r--jjb/octopus/octopus.yml1
-rw-r--r--jjb/onosfw/onosfw.yml3
-rw-r--r--jjb/openretriever/openretriever-project.yml62
-rw-r--r--jjb/opera/opera-daily-jobs.yml16
-rw-r--r--jjb/opera/opera-project-jobs.yml4
-rw-r--r--jjb/opera/opera-verify-jobs.yml3
-rw-r--r--jjb/opnfvdocs/docs-post-rtd.sh7
-rw-r--r--jjb/opnfvdocs/docs-rtd.yaml85
-rw-r--r--jjb/opnfvdocs/opnfvdocs.yml10
-rw-r--r--jjb/opnfvdocs/project.cfg1
-rw-r--r--jjb/ovsnfv/ovsnfv.yml3
-rw-r--r--jjb/parser/parser.yml1
-rw-r--r--jjb/pharos/pharos.yml1
-rw-r--r--jjb/prediction/prediction.yml1
-rw-r--r--jjb/promise/promise.yml1
-rw-r--r--jjb/qtip/helpers/cleanup-deploy.sh (renamed from jjb/qtip/qtip-cleanup.sh)0
-rw-r--r--jjb/qtip/helpers/validate-deploy.sh (renamed from jjb/qtip/qtip-daily-ci.sh)7
-rw-r--r--jjb/qtip/helpers/validate-setup.sh24
-rw-r--r--jjb/qtip/qtip-ci-jobs.yml101
-rw-r--r--jjb/qtip/qtip-validate-jobs.yml141
-rw-r--r--jjb/qtip/qtip-verify-jobs.yml (renamed from jjb/qtip/qtip-project-jobs.yml)12
-rw-r--r--jjb/releng/artifact-cleanup.yml1
-rw-r--r--jjb/releng/opnfv-docker-arm.yml77
-rw-r--r--jjb/releng/opnfv-docker.sh25
-rw-r--r--jjb/releng/opnfv-docker.yml30
-rw-r--r--jjb/releng/opnfv-docs.yml4
-rw-r--r--jjb/releng/opnfv-lint.yml4
-rw-r--r--jjb/releng/releng-ci-jobs.yml3
-rw-r--r--jjb/releng/testapi-automate.yml182
-rw-r--r--jjb/releng/testapi-backup-mongodb.sh31
-rw-r--r--jjb/releng/testapi-docker-deploy.sh81
-rw-r--r--jjb/releng/testapi-run-tests.sh17
-rw-r--r--jjb/securityaudit/opnfv-security-audit.yml1
-rw-r--r--jjb/storperf/storperf.yml5
-rw-r--r--jjb/ves/ves.yml68
-rw-r--r--jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml1
-rw-r--r--jjb/vswitchperf/vswitchperf.yml9
-rw-r--r--jjb/yardstick/yardstick-ci-jobs.yml15
-rwxr-xr-xjjb/yardstick/yardstick-daily.sh4
-rw-r--r--jjb/yardstick/yardstick-project-jobs.yml18
118 files changed, 3620 insertions, 1133 deletions
diff --git a/jjb/3rd_party_ci/create-apex-vms.sh b/jjb/3rd_party_ci/create-apex-vms.sh
index 3f5dbd1c4..0744ac89a 100755
--- a/jjb/3rd_party_ci/create-apex-vms.sh
+++ b/jjb/3rd_party_ci/create-apex-vms.sh
@@ -1,12 +1,8 @@
#!/bin/bash
-set -e
+set -o errexit
+set -o nounset
+set -o pipefail
-if [ -z ${WORKSPACE} ]; then
- echo "WORKSPACE is unset. Please do so."
- exit 1
-fi
-# wipe the WORKSPACE
-/bin/rm -rf $WORKSPACE/*
# clone opnfv sdnvpn repo
git clone https://gerrit.opnfv.org/gerrit/p/sdnvpn.git $WORKSPACE/sdnvpn
diff --git a/jjb/3rd_party_ci/download-netvirt-artifact.sh b/jjb/3rd_party_ci/download-netvirt-artifact.sh
index be2d4059a..6aea01d2a 100755
--- a/jjb/3rd_party_ci/download-netvirt-artifact.sh
+++ b/jjb/3rd_party_ci/download-netvirt-artifact.sh
@@ -1,27 +1,30 @@
#!/bin/bash
-set -e
+set -o errexit
+set -o nounset
+set -o pipefail
-if [ -z ${WORKSPACE} ]; then
- echo "WORKSPACE is unset. Please do so."
- exit 1
-fi
-# wipe the WORKSPACE
-/bin/rm -rf $WORKSPACE/*
+ODL_ZIP=distribution-karaf-0.6.0-SNAPSHOT.zip
echo "Attempting to fetch the artifact location from ODL Jenkins"
CHANGE_DETAILS_URL="https://git.opendaylight.org/gerrit/changes/netvirt~master~$GERRIT_CHANGE_ID/detail"
# due to limitation with the Jenkins Gerrit Trigger, we need to use Gerrit REST API to get the change details
-ODL_JOB_URL=$(curl -s $CHANGE_DETAILS_URL | grep netvirt-patch-test-current-carbon | tail -1 | \
- sed 's/\\n//g' | awk '{print $6}')
-NETVIRT_ARTIFACT_URL="${ODL_JOB_URL}org.opendaylight.integration\$distribution-karaf/artifact/org.opendaylight.integration/distribution-karaf/0.6.0-SNAPSHOT/distribution-karaf-0.6.0-SNAPSHOT.tar.gz"
+ODL_BUILD_JOB_NUM=$(curl -s $CHANGE_DETAILS_URL | grep -Eo 'netvirt-distribution-check-carbon/[0-9]+' | tail -1 | grep -Eo [0-9]+)
+
+NETVIRT_ARTIFACT_URL="https://jenkins.opendaylight.org/releng/job/netvirt-distribution-check-carbon/${ODL_BUILD_JOB_NUM}/artifact/${ODL_ZIP}"
echo -e "URL to artifact is\n\t$NETVIRT_ARTIFACT_URL"
echo "Downloading the artifact. This could take time..."
-wget -q -O $NETVIRT_ARTIFACT $NETVIRT_ARTIFACT_URL
+wget -q -O $ODL_ZIP $NETVIRT_ARTIFACT_URL
if [[ $? -ne 0 ]]; then
echo "The artifact does not exist! Probably removed due to ODL Jenkins artifact retention policy."
echo "Rerun netvirt-patch-test-current-carbon to get artifact rebuilt."
exit 1
fi
+
+#TODO(trozet) remove this once odl-pipeline accepts zip files
+echo "Converting artifact zip to tar.gz"
+unzip $ODL_ZIP
+tar czf /tmp/${NETVIRT_ARTIFACT} $(echo $ODL_ZIP | sed -n 's/\.zip//p')
+
echo "Download complete"
-ls -al $NETVIRT_ARTIFACT
+ls -al /tmp/${NETVIRT_ARTIFACT}
diff --git a/jjb/3rd_party_ci/install-netvirt.sh b/jjb/3rd_party_ci/install-netvirt.sh
index f111d4847..ed1a12bc8 100755
--- a/jjb/3rd_party_ci/install-netvirt.sh
+++ b/jjb/3rd_party_ci/install-netvirt.sh
@@ -1,15 +1,33 @@
#!/bin/bash
-set -e
+set -o errexit
+set -o nounset
+set -o pipefail
-if [ -z ${WORKSPACE} ]; then
- echo "WORKSPACE is unset. Please do so."
- exit 1
-fi
-# wipe the WORKSPACE
-/bin/rm -rf $WORKSPACE/*
+SNAP_CACHE=$HOME/snap_cache
# clone opnfv sdnvpn repo
git clone https://gerrit.opnfv.org/gerrit/p/sdnvpn.git $WORKSPACE/sdnvpn
-. $WORKSPACE/sdnvpn/odl-pipeline/odl-pipeline-common.sh
-pushd $LIB
-./odl_reinstaller.sh --cloner-info $CLONER_INFO --odl-artifact $NETVIRT_ARTIFACT
-popd \ No newline at end of file
+
+if [ ! -f "/tmp/${NETVIRT_ARTIFACT}" ]; then
+ echo "ERROR: /tmp/${NETVIRT_ARTIFACT} specified as NetVirt Artifact, but file does not exist"
+ exit 1
+fi
+
+if [ ! -f "${SNAP_CACHE}/node.yaml" ]; then
+ echo "ERROR: node.yaml pod config missing in ${SNAP_CACHE}"
+ exit 1
+fi
+
+if [ ! -f "${SNAP_CACHE}/id_rsa" ]; then
+ echo "ERROR: id_rsa ssh creds missing in ${SNAP_CACHE}"
+ exit 1
+fi
+
+# TODO (trozet) snapshot should have already been unpacked into cache folder
+# but we really should check the cache here, and not use a single cache folder
+# for when we support multiple jobs on a single slave
+pushd sdnvpn/odl-pipeline/lib > /dev/null
+# FIXME (trozet) remove this once permissions are fixed in sdnvpn repo
+chmod +x odl_reinstaller.sh
+./odl_reinstaller.sh --pod-config ${SNAP_CACHE}/node.yaml \
+ --odl-artifact /tmp/${NETVIRT_ARTIFACT} --ssh-key-file ${SNAP_CACHE}/id_rsa
+popd > /dev/null
diff --git a/jjb/3rd_party_ci/odl-netvirt.yml b/jjb/3rd_party_ci/odl-netvirt.yml
index 054761ea7..470e4335e 100644
--- a/jjb/3rd_party_ci/odl-netvirt.yml
+++ b/jjb/3rd_party_ci/odl-netvirt.yml
@@ -17,11 +17,11 @@
#####################################
phase:
- 'create-apex-vms':
- slave-label: 'ericsson-virtual5'
+ slave-label: 'odl-netvirt-virtual-intel'
- 'install-netvirt':
- slave-label: 'odl-netvirt-virtual'
+ slave-label: 'odl-netvirt-virtual-intel'
- 'postprocess':
- slave-label: 'odl-netvirt-virtual'
+ slave-label: 'odl-netvirt-virtual-intel'
#####################################
# jobs
#####################################
@@ -41,30 +41,38 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 5
max-per-node: 1
option: 'project'
+ scm:
+ - git:
+ url: https://gerrit.opnfv.org/gerrit/apex
+ branches:
+ - 'origin/master'
+ timeout: 15
+ wipe-workspace: true
+
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: NETVIRT_ARTIFACT
- default: $WORKSPACE/distribution-karaf.tar.gz
- - 'odl-netvirt-virtual-defaults'
+ default: distribution-karaf.tar.gz
+ - 'odl-netvirt-virtual-intel-defaults'
triggers:
- gerrit:
server-name: 'git.opendaylight.org'
trigger-on:
- - comment-added-contains-event:
- comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : SUCCESS'
- - comment-added-contains-event:
- comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : UNSTABLE'
+ # - comment-added-contains-event:
+ # comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : SUCCESS'
+ # - comment-added-contains-event:
+ # comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : UNSTABLE'
- comment-added-contains-event:
comment-contains-value: 'opnfv-test'
projects:
@@ -85,7 +93,7 @@
- name: 'odl-netvirt-verify-virtual-create-apex-vms-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
@@ -93,7 +101,7 @@
GERRIT_PATCHSET_REVISION=$GERRIT_PATCHSET_REVISION
NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT
APEX_ENV_NUMBER=$APEX_ENV_NUMBER
- node-parameters: false
+ node-parameters: true
kill-phase-on: FAILURE
abort-all-job: true
- multijob:
@@ -103,7 +111,7 @@
- name: 'odl-netvirt-verify-virtual-install-netvirt-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
@@ -117,10 +125,11 @@
name: functest
condition: SUCCESSFUL
projects:
- - name: 'functest-netvirt-virtual-daily-{stream}'
+ - name: 'functest-netvirt-virtual-suite-{stream}'
predefined-parameters: |
- RC_FILE_PATH=/home/jenkins/cloner-info/overcloudrc
- DEPLOY_SCENARIO=os-odl_l2-bgpvpn-noha
+ DEPLOY_SCENARIO=os-odl_l3-nofeature-ha
+ FUNCTEST_SUITE_NAME=tempest_smoke_serial
+ RC_FILE_PATH=$HOME/cloner-info/overcloudrc
node-parameters: true
kill-phase-on: FAILURE
abort-all-job: false
@@ -131,7 +140,7 @@
- name: 'odl-netvirt-verify-virtual-postprocess-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
@@ -140,7 +149,7 @@
NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT
node-parameters: true
kill-phase-on: FAILURE
- abort-all-job: true
+ abort-all-job: false
- job-template:
name: 'odl-netvirt-verify-virtual-{phase}-{stream}'
@@ -150,6 +159,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 5
@@ -158,8 +168,9 @@
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - 'odl-netvirt-verify-virtual-install-.*'
- - 'functest-netvirt-virtual-daily-.*'
+ - 'odl-netvirt-verify-virtual-create-apex-vms-.*'
+ - 'odl-netvirt-verify-virtual-install-netvirt-.*'
+ - 'functest-netvirt-virtual-suite-.*'
- 'odl-netvirt-verify-virtual-postprocess-.*'
block-level: 'NODE'
@@ -169,13 +180,28 @@
timeout: 360
fail: true
+ scm:
+ - git:
+ url: https://gerrit.opnfv.org/gerrit/apex
+ branches:
+ - 'origin/master'
+ timeout: 15
+ wipe-workspace: true
+
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- '{installer}-defaults'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-odl_l2-bgpvpn-noha'
+ description: 'Scenario to deploy and test'
+ - string:
+ name: GS_URL
+ default: artifacts.opnfv.org/apex
+ description: "URL to Google Storage with snapshot artifacts."
builders:
- description-setter:
@@ -188,7 +214,7 @@
name: 'netvirt-verify-create-apex-vms-builder'
builders:
- shell:
- !include-raw: ./create-apex-vms.sh
+ !include-raw: ../apex/apex-snapshot-deploy.sh
- builder:
name: 'netvirt-verify-install-netvirt-builder'
builders:
diff --git a/jjb/3rd_party_ci/postprocess-netvirt.sh b/jjb/3rd_party_ci/postprocess-netvirt.sh
index 5baf378a9..796514259 100755
--- a/jjb/3rd_party_ci/postprocess-netvirt.sh
+++ b/jjb/3rd_party_ci/postprocess-netvirt.sh
@@ -1,12 +1,8 @@
#!/bin/bash
-set -e
+set -o errexit
+set -o nounset
+set -o pipefail
-if [ -z ${WORKSPACE} ]; then
- echo "WORKSPACE is unset. Please do so."
- exit 1
-fi
-# wipe the WORKSPACE
-/bin/rm -rf $WORKSPACE/*
# clone opnfv sdnvpn repo
git clone https://gerrit.opnfv.org/gerrit/p/sdnvpn.git $WORKSPACE/sdnvpn
. $WORKSPACE/sdnvpn/odl-pipeline/odl-pipeline-common.sh
diff --git a/jjb/apex/apex-build.sh b/jjb/apex/apex-build.sh
index ee1dfb5d3..220d02435 100755
--- a/jjb/apex/apex-build.sh
+++ b/jjb/apex/apex-build.sh
@@ -12,6 +12,9 @@ echo
if echo $BUILD_TAG | grep "apex-verify" 1> /dev/null; then
export OPNFV_ARTIFACT_VERSION=dev${BUILD_NUMBER}
export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY"
+elif echo $BUILD_TAG | grep "csit" 1> /dev/null; then
+ export OPNFV_ARTIFACT_VERSION=csit${BUILD_NUMBER}
+ export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY"
elif [ "$ARTIFACT_VERSION" == "daily" ]; then
export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d")
export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --iso"
diff --git a/jjb/apex/apex-deploy.sh b/jjb/apex/apex-deploy.sh
index 8d5c4cb13..63baa5783 100755
--- a/jjb/apex/apex-deploy.sh
+++ b/jjb/apex/apex-deploy.sh
@@ -15,7 +15,7 @@ if ! rpm -q wget > /dev/null; then
sudo yum -y install wget
fi
-if [[ $BUILD_DIRECTORY == *verify* ]]; then
+if [[ "$BUILD_DIRECTORY" == *verify* || "$BUILD_DIRECTORY" == *csit* ]]; then
# Build is from a verify, use local build artifacts (not RPMs)
cd $WORKSPACE/../${BUILD_DIRECTORY}
WORKSPACE=$(pwd)
@@ -62,10 +62,25 @@ fi
if [ -z "$DEPLOY_SCENARIO" ]; then
echo "Deploy scenario not set!"
exit 1
+elif [[ "$DEPLOY_SCENARIO" == *gate* ]]; then
+ echo "Detecting Gating scenario..."
+ if [ -z "$GERRIT_EVENT_COMMENT_TEXT" ]; then
+ echo "ERROR: Gate job triggered without comment!"
+ exit 1
+ else
+ DEPLOY_SCENARIO=$(echo ${GERRIT_EVENT_COMMENT_TEXT} | grep start-gate-scenario | grep -Eo 'os-.*$')
+ if [ -z "$DEPLOY_SCENARIO" ]; then
+ echo "ERROR: Unable to detect scenario in Gerrit Comment!"
+ echo "Format of comment to trigger gate should be 'start-gate-scenario: <scenario>'"
+ exit 1
+ else
+ echo "Gate scenario detected: ${DEPLOY_SCENARIO}"
+ fi
+ fi
fi
-# use local build for verify
-if [[ "$BUILD_DIRECTORY" == *verify* ]]; then
+# use local build for verify and csit promote
+if [[ "$BUILD_DIRECTORY" == *verify* || "$BUILD_DIRECTORY" == *csit* ]]; then
if [ ! -e "${WORKSPACE}/build/lib" ]; then
ln -s ${WORKSPACE}/lib ${WORKSPACE}/build/lib
fi
@@ -144,7 +159,7 @@ if [ "$OPNFV_CLEAN" == 'yes' ]; then
else
clean_opts=''
fi
- if [[ "$BUILD_DIRECTORY" == *verify* ]]; then
+ if [[ "$BUILD_DIRECTORY" == *verify* || "$BUILD_DIRECTORY" == *csit* ]]; then
sudo CONFIG=${CONFIG} LIB=${LIB} ./clean.sh ${clean_opts}
else
sudo CONFIG=${CONFIG} LIB=${LIB} opnfv-clean ${clean_opts}
@@ -166,21 +181,16 @@ fi
if [[ "$JOB_NAME" == *virtual* ]]; then
# settings for virtual deployment
- if [ "$IPV6_FLAG" == "True" ]; then
- NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings_v6.yaml"
- else
- NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings.yaml"
- fi
DEPLOY_CMD="${DEPLOY_CMD} -v"
+ if [[ "${DEPLOY_SCENARIO}" =~ fdio|ovs ]]; then
+ DEPLOY_CMD="${DEPLOY_CMD} --virtual-ram 14"
+ fi
+ if [[ "$JOB_NAME" == *csit* ]]; then
+ DEPLOY_CMD="${DEPLOY_CMD} -e csit-environment.yaml --virtual-computes 2"
+ fi
else
# settings for bare metal deployment
- if [ "$IPV6_FLAG" == "True" ]; then
- NETWORK_FILE="/root/network/network_settings_v6.yaml"
- elif [[ "$JOB_NAME" == *master* ]]; then
- NETWORK_FILE="/root/network/network_settings-master.yaml"
- else
- NETWORK_FILE="/root/network/network_settings.yaml"
- fi
+ NETWORK_SETTINGS_DIR="/root/network"
INVENTORY_FILE="/root/inventory/pod_settings.yaml"
if ! sudo test -e "$INVENTORY_FILE"; then
@@ -191,6 +201,14 @@ else
DEPLOY_CMD="${DEPLOY_CMD} -i ${INVENTORY_FILE}"
fi
+if [ "$IPV6_FLAG" == "True" ]; then
+ NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings_v6.yaml"
+elif echo ${DEPLOY_SCENARIO} | grep fdio; then
+ NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings_vpp.yaml"
+else
+ NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings.yaml"
+fi
+
# Check that network settings file exists
if ! sudo test -e "$NETWORK_FILE"; then
echo "ERROR: Required settings file missing: Network Settings file ${NETWORK_FILE}"
@@ -200,6 +218,16 @@ fi
# start deployment
sudo ${DEPLOY_CMD} -d ${DEPLOY_FILE} -n ${NETWORK_FILE} --debug
+if [[ "$JOB_NAME" == *csit* ]]; then
+ echo "CSIT job: setting host route for floating ip routing"
+ # csit route to allow docker container to reach floating ips
+ UNDERCLOUD=$(sudo virsh domifaddr undercloud | grep -Eo "[0-9\.]+{3}[0-9]+")
+ if sudo route | grep 192.168.37.128 > /dev/null; then
+ sudo route del -net 192.168.37.128 netmask 255.255.255.128
+ fi
+ sudo route add -net 192.168.37.128 netmask 255.255.255.128 gw ${UNDERCLOUD}
+fi
+
echo
echo "--------------------------------------------------------"
echo "Done!"
diff --git a/jjb/apex/apex-snapshot-create.sh b/jjb/apex/apex-snapshot-create.sh
new file mode 100644
index 000000000..f146dd810
--- /dev/null
+++ b/jjb/apex/apex-snapshot-create.sh
@@ -0,0 +1,97 @@
+#!/usr/bin/env bash
+##############################################################################
+# Copyright (c) 2016 Tim Rozet (Red Hat) 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
+
+SSH_OPTIONS=(-o StrictHostKeyChecking=no -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -o LogLevel=error)
+
+echo "Creating Apex snapshot..."
+echo "-------------------------"
+echo
+
+# create tmp directory
+tmp_dir=$(pwd)/.tmp
+mkdir -p ${tmp_dir}
+
+# TODO(trozet) remove this after fix goes in for tripleo_inspector to copy these
+pushd ${tmp_dir} > /dev/null
+echo "Copying overcloudrc and ssh key from Undercloud..."
+# Store overcloudrc
+UNDERCLOUD=$(sudo virsh domifaddr undercloud | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+')
+sudo scp ${SSH_OPTIONS[@]} stack@${UNDERCLOUD}:overcloudrc ./
+# Copy out ssh key of stack from undercloud
+sudo scp ${SSH_OPTIONS[@]} stack@${UNDERCLOUD}:.ssh/id_rsa ./
+popd > /dev/null
+
+echo "Gathering introspection information"
+git clone https://gerrit.opnfv.org/gerrit/sdnvpn.git
+pushd sdnvpn/odl-pipeline/lib > /dev/null
+sudo ./tripleo_introspector.sh --out-file ${tmp_dir}/node.yaml
+popd > /dev/null
+sudo rm -rf sdnvpn
+
+echo "Shutting down nodes"
+# Shut down nodes
+nodes=$(sudo virsh list | grep -Eo "baremetal[0-9]")
+for node in $nodes; do
+ sudo virsh shutdown ${node} --mode acpi
+done
+
+for node in $nodes; do
+ count=0
+ while [ "$count" -lt 10 ]; do
+ sleep 10
+ if sudo virsh list | grep ${node}; then
+ echo "Waiting for $node to shutdown, try $count"
+ else
+ break
+ fi
+ count=$((count+1))
+ done
+
+ if [ "$count" -ge 10 ]; then
+ echo "Node $node failed to shutdown"
+ exit 1
+ fi
+done
+
+pushd ${tmp_dir} > /dev/null
+echo "Gathering virsh definitions"
+# copy qcow2s, virsh definitions
+for node in $nodes; do
+ sudo cp -f /var/lib/libvirt/images/${node}.qcow2 ./
+ sudo virsh dumpxml ${node} > ${node}.xml
+done
+
+# copy virsh net definitions
+for net in admin api external storage tenant; do
+ sudo virsh net-dumpxml ${net} > ${net}.xml
+done
+
+sudo chown jenkins-ci:jenkins-ci *
+
+# tar up artifacts
+DATE=`date +%Y-%m-%d`
+tar czf ../apex-csit-snap-${DATE}.tar.gz .
+popd > /dev/null
+sudo rm -rf ${tmp_dir}
+echo "Snapshot saved as apex-csit-snap-${DATE}.tar.gz"
+
+# update opnfv properties file
+curl -O -L http://$GS_URL/snapshot.properties
+sed -i '/^OPNFV_SNAP_URL=/{h;s#=.*#='${GS_URL}'/apex-csit-snap-'${DATE}'.tar.gz#};${x;/^$/{s##OPNFV_SNAP_URL='${GS_URL}'/apex-csit-snap-'${DATE}'.tar.gz#;H};x}' snapshot.properties
+snap_sha=$(sha512sum apex-csit-snap-${DATE}.tar.gz | cut -d' ' -f1)
+sed -i '/^OPNFV_SNAP_SHA512SUM=/{h;s/=.*/='${snap_sha}'/};${x;/^$/{s//OPNFV_SNAP_SHA512SUM='${snap_sha}'/;H};x}' snapshot.properties
+echo "OPNFV_SNAP_URL=$GS_URL/apex-csit-snap-${DATE}.tar.gz"
+echo "OPNFV_SNAP_SHA512SUM=$(sha512sum apex-csit-snap-${DATE}.tar.gz | cut -d' ' -f1)"
+echo "Updated properties file: "
+cat snapshot.properties
diff --git a/jjb/apex/apex-snapshot-deploy.sh b/jjb/apex/apex-snapshot-deploy.sh
new file mode 100644
index 000000000..8274740c8
--- /dev/null
+++ b/jjb/apex/apex-snapshot-deploy.sh
@@ -0,0 +1,165 @@
+#!/usr/bin/env bash
+##############################################################################
+# Copyright (c) 2016 Tim Rozet (Red Hat) 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
+
+SSH_OPTIONS=(-o StrictHostKeyChecking=no -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -o LogLevel=error)
+SNAP_CACHE=$HOME/snap_cache
+
+
+echo "Deploying Apex snapshot..."
+echo "--------------------------"
+echo
+
+echo "Cleaning server"
+pushd ci > /dev/null
+sudo CONFIG=../build/ LIB=../lib ./clean.sh
+popd > /dev/null
+
+echo "Downloading latest snapshot properties file"
+if ! wget -O $WORKSPACE/opnfv.properties http://$GS_URL/snapshot.properties; then
+ echo "ERROR: Unable to find snapshot.properties at ${GS_URL}...exiting"
+ exit 1
+fi
+
+# find latest check sum
+latest_snap_checksum=$(cat opnfv.properties | grep OPNFV_SNAP_SHA512SUM | awk -F "=" '{print $2}')
+if [ -z "$latest_snap_checksum" ]; then
+ echo "ERROR: checksum of latest snapshot from snapshot.properties is null!"
+ exit 1
+fi
+
+local_snap_checksum=""
+
+# check snap cache directory exists
+# if snapshot cache exists, find the checksum
+if [ -d "$SNAP_CACHE" ]; then
+ latest_snap=$(ls ${SNAP_CACHE} | grep tar.gz | tail -n 1)
+ if [ -n "$latest_snap" ]; then
+ local_snap_checksum=$(sha512sum ${SNAP_CACHE}/${latest_snap} | cut -d' ' -f1)
+ fi
+else
+ mkdir -p ${SNAP_CACHE}
+fi
+
+# compare check sum and download latest snap if not up to date
+if [ "$local_snap_checksum" != "$latest_snap_checksum" ]; then
+ snap_url=$(cat opnfv.properties | grep OPNFV_SNAP_URL | awk -F "=" '{print $2}')
+ if [ -z "$snap_url" ]; then
+ echo "ERROR: Snap URL from snapshot.properties is null!"
+ exit 1
+ fi
+ echo "INFO: SHA mismatch, will download latest snapshot"
+ # wipe cache
+ rm -rf ${SNAP_CACHE}/*
+ wget --directory-prefix=${SNAP_CACHE}/ ${snap_url}
+ snap_tar=$(basename ${snap_url})
+else
+ snap_tar=${latest_snap}
+fi
+
+echo "INFO: Snapshot to be used is ${snap_tar}"
+
+# move to snap cache dir and unpack
+pushd ${SNAP_CACHE} > /dev/null
+tar xvf ${snap_tar}
+
+# create each network
+virsh_networks=$(ls *.xml | grep -v baremetal)
+
+if [ -z "$virsh_networks" ]; then
+ echo "ERROR: no virsh networks found in snapshot unpack"
+ exit 1
+fi
+
+echo "Checking overcloudrc"
+if ! stat overcloudrc; then
+ echo "ERROR: overcloudrc does not exist in snap unpack"
+ exit 1
+fi
+
+for network_def in ${virsh_networks}; do
+ sudo virsh net-create ${network_def}
+ network=$(echo ${network_def} | awk -F '.' '{print $1}')
+ if ! sudo virsh net-list | grep ${network}; then
+ sudo virsh net-start ${network}
+ fi
+ echo "Checking if OVS bridge is missing for network: ${network}"
+ if ! sudo ovs-vsctl show | grep "br-${network}"; then
+ sudo ovs-vsctl add-br br-${network}
+ echo "OVS Bridge created: br-${network}"
+ if [ "br-${network}" == 'br-admin' ]; then
+ echo "Configuring IP 192.0.2.99 on br-admin"
+ sudo ip addr add 192.0.2.99/24 dev br-admin
+ sudo ip link set up dev br-admin
+ elif [ "br-${network}" == 'br-external' ]; then
+ echo "Configuring IP 192.168.37.1 on br-external"
+ sudo ip addr add 192.168.37.1/24 dev br-external
+ sudo ip link set up dev br-external
+ # Routes for admin network
+ # The overcloud controller is multi-homed and will fail to respond
+ # to traffic from the functest container due to reverse-path-filtering
+ # This route allows reverse traffic, by forcing admin network destined
+ # traffic through the external network for controller IPs only.
+ # Compute nodes have no ip on external interfaces.
+ controller_ips=$(cat overcloudrc | grep -Eo "192.0.2.[0-9]+")
+ for ip in $controller_ips; do
+ sudo ip route add ${ip}/32 dev br-external
+ done
+ fi
+ fi
+done
+
+echo "Virsh networks up: $(sudo virsh net-list)"
+echo "Bringing up Overcloud VMs..."
+virsh_vm_defs=$(ls baremetal*.xml)
+
+if [ -z "$virsh_vm_defs" ]; then
+ echo "ERROR: no virsh VMs found in snapshot unpack"
+ exit 1
+fi
+
+for node_def in ${virsh_vm_defs}; do
+ sudo virsh define ${node_def}
+ node=$(echo ${node_def} | awk -F '.' '{print $1}')
+ sudo cp -f ${node}.qcow2 /var/lib/libvirt/images/
+ sudo virsh start ${node}
+ echo "Node: ${node} started"
+done
+
+# copy overcloudrc for functest
+mkdir -p $HOME/cloner-info
+cp -f overcloudrc $HOME/cloner-info/
+
+admin_controller_ip=$(cat overcloudrc | grep -Eo -m 1 "192.0.2.[0-9]+")
+netvirt_url="http://${admin_controller_ip}:8081/restconf/operational/network-topology:network-topology/topology/netvirt:1"
+
+source overcloudrc
+counter=1
+while [ "$counter" -le 10 ]; do
+ if curl --fail --silent ${admin_controller_ip}:80 > /dev/null; then
+ echo "Overcloud Horizon is up...Checking if OpenDaylight NetVirt is up..."
+ if curl --fail --silent -u admin:admin ${netvirt_url} > /dev/null; then
+ echo "OpenDaylight is up. Overcloud deployment complete"
+ exit 0
+ else
+ echo "OpenDaylight not yet up, try ${counter}"
+ fi
+ else
+ echo "Horizon/Apache not yet up, try ${counter}"
+ fi
+ counter=$((counter+1))
+ sleep 60
+done
+
+echo "ERROR: Deployment not up after 10 minutes...exiting."
+exit 1
diff --git a/jjb/apex/apex-upload-artifact.sh b/jjb/apex/apex-upload-artifact.sh
index 64f13f4e6..ef8ad5329 100755
--- a/jjb/apex/apex-upload-artifact.sh
+++ b/jjb/apex/apex-upload-artifact.sh
@@ -73,7 +73,17 @@ gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION
gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log
}
-if gpg2 --list-keys | grep "opnfv-helpdesk@rt.linuxfoundation.org"; then
+uploadsnap () {
+ # Uploads snapshot artifact and updated properties file
+ echo "Uploading snapshot artifacts"
+ gsutil cp $WORKSPACE/apex-csit-snap-`date +%Y-%m-%d`.tar.gz gs://$GS_URL/ > gsutil.iso.log
+ gsutil cp $WORKSPACE/snapshot.properties gs://$GS_URL/snapshot.properties > gsutil.latest.log
+ echo "Upload complete for Snapshot"
+}
+
+if echo $WORKSPACE | grep csit > /dev/null; then
+ uploadsnap
+elif gpg2 --list-keys | grep "opnfv-helpdesk@rt.linuxfoundation.org"; then
echo "Signing Key avaliable"
signiso
uploadiso
diff --git a/jjb/apex/apex.yml b/jjb/apex/apex.yml
index 5c1bded4c..3938f159b 100644
--- a/jjb/apex/apex.yml
+++ b/jjb/apex/apex.yml
@@ -2,6 +2,7 @@
name: apex
jobs:
- 'apex-verify-{stream}'
+ - 'apex-verify-gate-{stream}'
- 'apex-verify-unit-tests-{stream}'
- 'apex-runner-{platform}-{scenario}-{stream}'
- 'apex-runner-cperf-{stream}'
@@ -12,6 +13,7 @@
- 'apex-daily-colorado'
- 'apex-build-colorado'
- 'apex-deploy-baremetal-os-odl_l2-fdio-ha-colorado'
+ - 'apex-csit-promote-daily-{stream}'
# stream: branch with - in place of / (eg. stable-arno)
# branch: branch (eg. stable/arno)
@@ -32,16 +34,20 @@
- 'os-nosdn-ovs-noha'
- 'os-nosdn-fdio-noha'
- 'os-nosdn-fdio-ha'
+ - 'os-odl_l2-fdio-noha'
- 'os-odl_l2-fdio-ha'
- 'os-odl_l2-netvirt_gbp_fdio-noha'
- 'os-odl_l2-sfc-noha'
- 'os-odl_l3-nofeature-ha'
- - 'os-odl_l3-bgpvpn-ha'
+ - 'os-odl-bgpvpn-ha'
+ - 'os-odl-gluon-noha'
- 'os-odl_l3-fdio-noha'
- 'os-odl_l3-fdio-ha'
- 'os-odl_l3-fdio_dvr-noha'
- 'os-odl_l3-fdio_dvr-ha'
+ - 'os-odl_l3-csit-noha'
- 'os-onos-nofeature-ha'
+ - 'gate'
platform:
- 'baremetal'
@@ -60,7 +66,6 @@
gs-pathname: '{gs-pathname}'
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_BASE
@@ -93,6 +98,7 @@
- compare-type: ANT
pattern: 'tests/**'
properties:
+ - logrotate-default
- throttle:
max-per-node: 1
max-total: 10
@@ -114,7 +120,6 @@
gs-pathname: '{gs-pathname}'
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_BASE
@@ -154,6 +159,7 @@
pattern: 'config/**'
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
block-level: 'NODE'
@@ -172,7 +178,7 @@
- 'apex-unit-test'
- 'apex-build'
- trigger-builds:
- - project: 'apex-deploy-virtual-os-nosdn-nofeature-ha-{stream}'
+ - project: 'apex-deploy-virtual-os-odl_l3-nofeature-ha-{stream}'
predefined-parameters: |
BUILD_DIRECTORY=apex-verify-{stream}
OPNFV_CLEAN=yes
@@ -182,22 +188,87 @@
- trigger-builds:
- project: 'functest-apex-{verify-slave}-suite-{stream}'
predefined-parameters: |
- DEPLOY_SCENARIO=os-nosdn-nofeature-ha
+ DEPLOY_SCENARIO=os-odl_l3-nofeature-ha
FUNCTEST_SUITE_NAME=healthcheck
block: true
same-node: true
+ - 'apex-workspace-cleanup'
+
+# Verify Scenario Gate
+- job-template:
+ name: 'apex-verify-gate-{stream}'
+
+ node: '{verify-slave}'
+
+ concurrent: true
+
+ parameters:
+ - apex-parameter:
+ gs-pathname: '{gs-pathname}'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: "Used for overriding the GIT URL coming from parameters macro."
+
+ scm:
+ - git-scm-gerrit
+
+ triggers:
+ - gerrit:
+ server-name: 'gerrit.opnfv.org'
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: '^Patch Set [0-9]+: Code-Review\+2.*start-gate-scenario:.*'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: 'apex'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ file-paths:
+ - compare-type: ANT
+ pattern: 'ci/**'
+ - compare-type: ANT
+ pattern: 'build/**'
+ - compare-type: ANT
+ pattern: 'lib/**'
+ - compare-type: ANT
+ pattern: 'config/**'
+
+ properties:
+ - logrotate-default
+ - build-blocker:
+ use-build-blocker: true
+ block-level: 'NODE'
+ blocking-jobs:
+ - 'apex-daily.*'
+ - 'apex-deploy.*'
+ - 'apex-build.*'
+ - 'apex-runner.*'
+ - 'apex-verify.*'
+ - throttle:
+ max-per-node: 1
+ max-total: 10
+ option: 'project'
+
+ builders:
+ - 'apex-build'
- trigger-builds:
- - project: 'apex-deploy-virtual-os-odl_l3-nofeature-ha-{stream}'
+ - project: 'apex-deploy-virtual-gate-{stream}'
predefined-parameters: |
- BUILD_DIRECTORY=apex-verify-{stream}
+ BUILD_DIRECTORY=apex-verify-gate-{stream}
OPNFV_CLEAN=yes
+ current-parameters: true
git-revision: false
block: true
same-node: true
- trigger-builds:
- project: 'functest-apex-{verify-slave}-suite-{stream}'
predefined-parameters: |
- DEPLOY_SCENARIO=os-odl_l3-nofeature-ha
+ DEPLOY_SCENARIO=os-nosdn-nofeature-ha
FUNCTEST_SUITE_NAME=healthcheck
block: true
same-node: true
@@ -217,7 +288,6 @@
gs-pathname: '{gs-pathname}'
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_BASE
@@ -228,11 +298,13 @@
- git-scm
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
blocking-jobs:
- 'apex-daily.*'
- 'apex-verify.*'
+ - 'apex-csit.*'
builders:
- trigger-builds:
@@ -274,7 +346,6 @@
gs-pathname: '{gs-pathname}'
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_BASE
@@ -285,6 +356,7 @@
- git-scm
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: false
block-level: 'NODE'
@@ -327,10 +399,9 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- apex-parameter:
gs-pathname: '{gs-pathname}'
- - gerrit-parameter:
- branch: '{branch}'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -340,6 +411,7 @@
- git-scm
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
block-level: 'NODE'
@@ -382,7 +454,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- apex-parameter:
gs-pathname: '{gs-pathname}'
@@ -396,6 +467,7 @@
description: "Use yes in lower case to invoke clean. Indicates if the deploy environment should be cleaned before deployment"
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
block-level: 'NODE'
@@ -428,7 +500,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- apex-parameter:
gs-pathname: '{gs-pathname}'
@@ -438,6 +509,7 @@
description: "Scenario to deploy with."
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
block-level: 'NODE'
@@ -470,12 +542,12 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- apex-parameter:
gs-pathname: '{gs-pathname}'
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
block-level: 'NODE'
@@ -484,6 +556,7 @@
- 'apex-deploy.*'
- 'apex-build.*'
- 'apex-runner.*'
+ - 'apex-csit.*'
triggers:
- 'apex-{stream}'
@@ -555,7 +628,126 @@
build-step-failure-threshold: 'never'
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
-
+ - trigger-builds:
+ - project: 'apex-deploy-baremetal-os-odl-bgpvpn-ha-{stream}'
+ predefined-parameters: |
+ BUILD_DIRECTORY=apex-build-{stream}/.build
+ OPNFV_CLEAN=yes
+ git-revision: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ block: true
+ - trigger-builds:
+ - project: 'functest-apex-{daily-slave}-daily-{stream}'
+ predefined-parameters:
+ DEPLOY_SCENARIO=os-odl-bgpvpn-ha
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'yardstick-apex-{slave}-daily-{stream}'
+ predefined-parameters:
+ DEPLOY_SCENARIO=os-odl-bgpvpn-ha
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'apex-deploy-baremetal-os-odl-gluon-noha-{stream}'
+ predefined-parameters: |
+ BUILD_DIRECTORY=apex-build-{stream}/.build
+ OPNFV_CLEAN=yes
+ git-revision: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ block: true
+ - trigger-builds:
+ - project: 'functest-apex-{daily-slave}-daily-{stream}'
+ predefined-parameters:
+ DEPLOY_SCENARIO=os-odl-gluon-noha
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'yardstick-apex-{slave}-daily-{stream}'
+ predefined-parameters:
+ DEPLOY_SCENARIO=os-odl-gluon-noha
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'apex-deploy-baremetal-os-odl_l2-fdio-noha-{stream}'
+ predefined-parameters: |
+ BUILD_DIRECTORY=apex-build-{stream}/.build
+ OPNFV_CLEAN=yes
+ git-revision: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ block: true
+ - trigger-builds:
+ - project: 'functest-apex-{daily-slave}-daily-{stream}'
+ predefined-parameters:
+ DEPLOY_SCENARIO=os-odl_l2-fdio-noha
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'yardstick-apex-{slave}-daily-{stream}'
+ predefined-parameters:
+ DEPLOY_SCENARIO=os-odl_l2-fdio-noha
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'apex-deploy-baremetal-os-odl_l2-fdio-ha-{stream}'
+ predefined-parameters: |
+ BUILD_DIRECTORY=apex-build-{stream}/.build
+ OPNFV_CLEAN=yes
+ git-revision: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ block: true
+ - trigger-builds:
+ - project: 'functest-apex-{daily-slave}-daily-{stream}'
+ predefined-parameters:
+ DEPLOY_SCENARIO=os-odl_l2-fdio-ha
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'yardstick-apex-{slave}-daily-{stream}'
+ predefined-parameters:
+ DEPLOY_SCENARIO=os-odl_l2-fdio-ha
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
# Colorado Build
- job-template:
@@ -575,10 +767,9 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: 'stable/colorado'
- apex-parameter:
gs-pathname: '/colorado'
- - gerrit-parameter:
- branch: 'stable/colorado'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -588,6 +779,7 @@
- git-scm
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
block-level: 'NODE'
@@ -622,7 +814,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: 'stable/colorado'
- apex-parameter:
gs-pathname: '/colorado'
@@ -632,6 +823,7 @@
description: "Scenario to deploy with."
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
block-level: 'NODE'
@@ -664,12 +856,12 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: 'stable/colorado'
- apex-parameter:
gs-pathname: '/colorado'
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
block-level: 'NODE'
@@ -710,6 +902,65 @@
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
+# CSIT promote
+- job-template:
+ name: 'apex-csit-promote-daily-{stream}'
+
+ # Job template for promoting CSIT Snapshots
+ #
+ # Required Variables:
+ # stream: branch with - in place of / (eg. stable)
+ # branch: branch (eg. stable)
+ node: '{daily-slave}'
+
+ disabled: false
+
+ scm:
+ - git-scm
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - apex-parameter:
+ gs-pathname: '{gs-pathname}'
+
+ properties:
+ - build-blocker:
+ use-build-blocker: true
+ block-level: 'NODE'
+ blocking-jobs:
+ - 'apex-verify.*'
+ - 'apex-deploy.*'
+ - 'apex-build.*'
+ - 'apex-runner.*'
+ - 'apex-daily.*'
+
+ triggers:
+ - timed: '0 12 * * 0'
+
+ builders:
+ - 'apex-build'
+ - trigger-builds:
+ - project: 'apex-deploy-virtual-os-odl_l3-csit-noha-{stream}'
+ predefined-parameters: |
+ BUILD_DIRECTORY=apex-csit-promote-daily-{stream}
+ OPNFV_CLEAN=yes
+ git-revision: false
+ block: true
+ same-node: true
+ - trigger-builds:
+ - project: 'functest-apex-{daily-slave}-suite-{stream}'
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-odl_l3-nofeature-noha
+ FUNCTEST_SUITE_NAME=tempest_smoke_serial
+ block: true
+ same-node: true
+ - shell:
+ !include-raw-escape: ./apex-snapshot-create.sh
+ - shell:
+ !include-raw-escape: ./apex-upload-artifact.sh
+
- job-template:
name: 'apex-gs-clean-{stream}'
@@ -724,6 +975,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- apex-parameter:
gs-pathname: '{gs-pathname}'
diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml
index 4e88678b4..4cb58d916 100644
--- a/jjb/armband/armband-ci-jobs.yml
+++ b/jjb/armband/armband-ci-jobs.yml
@@ -104,6 +104,7 @@
concurrent: false
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -125,6 +126,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
installer: '{installer}'
@@ -188,6 +190,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -203,7 +206,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
diff --git a/jjb/armband/armband-deploy.sh b/jjb/armband/armband-deploy.sh
index 4df9acfd8..adabfcaeb 100755
--- a/jjb/armband/armband-deploy.sh
+++ b/jjb/armband/armband-deploy.sh
@@ -8,7 +8,6 @@
# 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
@@ -49,8 +48,8 @@ mkdir -p $TMPDIR
cd $WORKSPACE
if [[ $LAB_CONFIG_URL =~ ^(git|ssh):// ]]; then
- echo "Cloning securedlab repo ${GIT_BRANCH##origin/}"
- git clone --quiet --branch ${GIT_BRANCH##origin/} $LAB_CONFIG_URL lab-config
+ echo "Cloning securedlab repo $BRANCH"
+ git clone --quiet --branch $BRANCH $LAB_CONFIG_URL lab-config
LAB_CONFIG_URL=file://${WORKSPACE}/lab-config
# Source local_env if present, which contains POD-specific config
@@ -73,7 +72,7 @@ FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz"
# Deploy Cache (to enable just create the deploy-cache subdir)
# NOTE: Only available when ISO files are cached using ISOSTORE mechanism
-DEPLOY_CACHE=${ISOSTORE:-/iso_mount/opnfv_ci}/${GIT_BRANCH##*/}/deploy-cache
+DEPLOY_CACHE=${ISOSTORE:-/iso_mount/opnfv_ci}/${BRANCH##*/}/deploy-cache
if [[ -d "${DEPLOY_CACHE}" ]]; then
echo "Deploy cache dir present."
echo "--------------------------------------------------------"
diff --git a/jjb/armband/armband-download-artifact.sh b/jjb/armband/armband-download-artifact.sh
index ed7897b8e..e2dd097b6 100755
--- a/jjb/armband/armband-download-artifact.sh
+++ b/jjb/armband/armband-download-artifact.sh
@@ -38,7 +38,7 @@ ISO_FILE=${WORKSPACE}/opnfv.iso
# using ISOs for verify & merge jobs from local storage will be enabled later
if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
# check if we already have the ISO to avoid redownload
- ISOSTORE=${ISOSTORE:-/iso_mount/opnfv_ci}/${GIT_BRANCH##*/}
+ ISOSTORE=${ISOSTORE:-/iso_mount/opnfv_ci}/${BRANCH##*/}
if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then
echo "ISO exists locally. Skipping the download and using the file from ISO store"
ln -s $ISOSTORE/$OPNFV_ARTIFACT ${ISO_FILE}
diff --git a/jjb/armband/armband-project-jobs.yml b/jjb/armband/armband-project-jobs.yml
index 981f509c7..fd37c5af6 100644
--- a/jjb/armband/armband-project-jobs.yml
+++ b/jjb/armband/armband-project-jobs.yml
@@ -30,6 +30,7 @@
concurrent: false
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 1
@@ -39,9 +40,8 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- - 'opnfv-build-arm-defaults'
+ - 'opnfv-build-enea-defaults'
- '{installer}-defaults'
- armband-project-parameter:
gs-pathname: '{gs-pathname}'
diff --git a/jjb/armband/armband-verify-jobs.yml b/jjb/armband/armband-verify-jobs.yml
index d5333eb07..3486718e4 100644
--- a/jjb/armband/armband-verify-jobs.yml
+++ b/jjb/armband/armband-verify-jobs.yml
@@ -21,13 +21,13 @@
#####################################
phase:
- 'basic':
- slave-label: 'opnfv-build-arm'
+ slave-label: 'opnfv-build-enea'
- 'build':
- slave-label: 'opnfv-build-arm'
+ slave-label: 'opnfv-build-enea'
- 'deploy-virtual':
- slave-label: 'opnfv-build-arm'
+ slave-label: 'opnfv-build-enea'
- 'smoke-test':
- slave-label: 'opnfv-build-arm'
+ slave-label: 'opnfv-build-enea'
#####################################
# jobs
#####################################
@@ -47,6 +47,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -93,9 +94,8 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- - 'opnfv-build-arm-defaults'
+ - 'opnfv-build-enea-defaults'
- 'armband-verify-defaults':
gs-pathname: '{gs-pathname}'
@@ -109,7 +109,7 @@
- name: 'armband-verify-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -123,7 +123,7 @@
- name: 'armband-verify-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -137,7 +137,7 @@
- name: 'armband-verify-deploy-virtual-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -151,7 +151,7 @@
- name: 'armband-verify-smoke-test-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -167,6 +167,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 6
@@ -189,7 +190,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- '{installer}-defaults'
diff --git a/jjb/armband/build.sh b/jjb/armband/build.sh
index a058ca158..a71cf1112 100755
--- a/jjb/armband/build.sh
+++ b/jjb/armband/build.sh
@@ -96,6 +96,7 @@ ls -al $BUILD_DIRECTORY
echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
+ echo "OPNFV_ARTIFACT_SHA512SUM=$(sha512sum $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)"
echo "OPNFV_BUILD_URL=$BUILD_URL"
) > $WORKSPACE/opnfv.properties
diff --git a/jjb/armband/upload-artifacts.sh b/jjb/armband/upload-artifacts.sh
index 7059ac344..97987e2c5 100755
--- a/jjb/armband/upload-artifacts.sh
+++ b/jjb/armband/upload-artifacts.sh
@@ -28,7 +28,7 @@ if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
# store ISO locally on NFS first
ISOSTORE=${ISOSTORE:-/iso_mount/opnfv_ci}
if [[ -d "$ISOSTORE" ]]; then
- ISOSTORE=${ISOSTORE}/${GIT_BRANCH##*/}
+ ISOSTORE=${ISOSTORE}/${BRANCH##*/}
mkdir -p $ISOSTORE
# remove all but most recent 3 ISOs first to keep iso_mount clean & tidy
diff --git a/jjb/availability/availability.yml b/jjb/availability/availability.yml
index c3603a65f..9cb7f8899 100644
--- a/jjb/availability/availability.yml
+++ b/jjb/availability/availability.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/barometer/barometer.yml b/jjb/barometer/barometer.yml
index e789b7f7a..6a17e1706 100644
--- a/jjb/barometer/barometer.yml
+++ b/jjb/barometer/barometer.yml
@@ -30,7 +30,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -77,6 +76,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 3
@@ -86,7 +86,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -128,6 +127,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 3
@@ -137,7 +137,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/bottlenecks/bottlenecks-ci-jobs.yml b/jjb/bottlenecks/bottlenecks-ci-jobs.yml
index 92ec2d866..2779e316b 100644
--- a/jjb/bottlenecks/bottlenecks-ci-jobs.yml
+++ b/jjb/bottlenecks/bottlenecks-ci-jobs.yml
@@ -72,6 +72,8 @@
suite:
- 'rubbos'
- 'vstf'
+ - 'posca_stress_traffic'
+ - 'posca_stress_ping'
jobs:
- 'bottlenecks-{installer}-{suite}-{pod}-daily-{stream}'
@@ -95,7 +97,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- '{installer}-defaults'
@@ -137,65 +138,14 @@
- builder:
name: bottlenecks-env-cleanup
builders:
- - shell: |
- #!/bin/bash
- set -e
- [[ $GERRIT_REFSPEC_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
-
- echo "Bottlenecks: docker containers/images cleaning up"
- if [[ ! -z $(docker ps -a | grep opnfv/bottlenecks) ]]; then
- echo "removing existing opnfv/bottlenecks containers"
- docker ps -a | grep opnfv/bottlenecks | awk '{print $1}' | xargs docker rm -f >$redirect
- fi
-
- if [[ ! -z $(docker images | grep opnfv/bottlenecks) ]]; then
- echo "Bottlenecks: docker images to remove:"
- docker images | head -1 && docker images | grep opnfv/bottlenecks
- image_tags=($(docker images | grep opnfv/bottlenecks | awk '{print $2}'))
- for tag in "${image_tags[@]}"; do
- echo "Removing docker image opnfv/bottlenecks:$tag..."
- docker rmi opnfv/bottlenecks:$tag >$redirect
- done
- fi
+ - shell:
+ !include-raw: ./bottlenecks-cleanup.sh
- builder:
name: bottlenecks-run-suite
builders:
- - shell: |
- #!/bin/bash
- set -e
- [[ $GERRIT_REFSPEC_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
-
- echo "Bottlenecks: to pull image opnfv/bottlenecks:${DOCKER_TAG}"
- docker pull opnfv/bottlenecks:$DOCKER_TAG >${redirect}
-
- echo "Bottlenecks: docker start running"
- opts="--privileged=true -id"
- envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
- -e NODE_NAME=${NODE_NAME} -e EXTERNAL_NET=${EXTERNAL_NETWORK} \
- -e BOTTLENECKS_BRANCH=${BOTTLENECKS_BRANCH} -e GERRIT_REFSPEC_DEBUG=${GERRIT_REFSPEC_DEBUG} \
- -e BOTTLENECKS_DB_TARGET=${BOTTLENECKS_DB_TARGET} -e PACKAGE_URL=${PACKAGE_URL}"
- cmd="sudo docker run ${opts} ${envs} opnfv/bottlenecks:${DOCKER_TAG} /bin/bash"
- echo "Bottlenecks: docker cmd running ${cmd}"
- ${cmd} >${redirect}
-
- echo "Bottlenecks: obtain docker id"
- container_id=$(docker ps | grep "opnfv/bottlenecks:${DOCKER_TAG}" | awk '{print $1}' | head -1)
- if [ -z ${container_id} ]; then
- echo "Cannot find opnfv/bottlenecks container ID ${container_id}. Please check if it exists."
- docker ps -a
- exit 1
- fi
-
- echo "Bottlenecks: to prepare openstack environment"
- prepare_env="${REPO_DIR}/ci/prepare_env.sh"
- echo "Bottlenecks: docker cmd running: ${prepare_env}"
- sudo docker exec ${container_id} ${prepare_env}
-
- echo "Bottlenecks: to run testsuite ${SUITE_NAME}"
- run_testsuite="${REPO_DIR}/run_tests.sh -s ${SUITE_NAME}"
- echo "Bottlenecks: docker cmd running: ${run_testsuite}"
- sudo docker exec ${container_id} ${run_testsuite}
+ - shell:
+ !include-raw: ./bottlenecks-run-suite.sh
####################
# parameter macros
diff --git a/jjb/bottlenecks/bottlenecks-cleanup.sh b/jjb/bottlenecks/bottlenecks-cleanup.sh
new file mode 100644
index 000000000..0ba042318
--- /dev/null
+++ b/jjb/bottlenecks/bottlenecks-cleanup.sh
@@ -0,0 +1,111 @@
+#!/bin/bash
+set -e
+[[ $GERRIT_REFSPEC_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
+
+BOTTLENECKS_IMAGE=opnfv/bottlenecks
+echo "Bottlenecks: docker containers/images cleaning up"
+
+dangling_images=($(docker images -f "dangling=true" | grep $BOTTLENECKS_IMAGE | awk '{print $3}'))
+if [[ -n $dangling_images ]]; then
+ echo "Removing $BOTTLENECKS_IMAGE:<none> dangling images and their containers"
+ docker images | head -1 && docker images | grep $dangling_images
+ for image_id in "${dangling_images[@]}"; do
+ echo "Bottlenecks: Removing dangling image $image_id"
+ docker rmi -f $image_id >${redirect}
+ done
+fi
+
+for image_id in "${dangling_images[@]}"; do
+ if [[ -n $(docker ps -a | grep $image_id) ]]; then
+ echo "Bottlenecks: Removing containers associated with dangling image: $image_id"
+ docker ps -a | head -1 && docker ps -a | grep $image_id
+ docker ps -a | grep $image_id | awk '{print $1}'| xargs docker rm -f >${redirect}
+ fi
+done
+
+if [[ -n $(docker ps -a | grep $BOTTLENECKS_IMAGE) ]]; then
+ echo "Removing existing $BOTTLENECKS_IMAGE containers"
+ docker ps -a | grep $BOTTLENECKS_IMAGE | awk '{print $1}' | xargs docker rm -f >$redirect
+fi
+
+if [[ -n $(docker images | grep $BOTTLENECKS_IMAGE) ]]; then
+ echo "Bottlenecks: docker images to remove:"
+ docker images | head -1 && docker images | grep $BOTTLENECKS_IMAGE
+ image_tags=($(docker images | grep $BOTTLENECKS_IMAGE | awk '{print $2}'))
+ for tag in "${image_tags[@]}"; do
+ echo "Removing docker image $BOTTLENECKS_IMAGE:$tag..."
+ docker rmi $BOTTLENECKS_IMAGE:$tag >$redirect
+ done
+fi
+
+echo "Yardstick: docker containers/images cleaning up"
+YARDSTICK_IMAGE=opnfv/yardstick
+
+dangling_images=($(docker images -f "dangling=true" | grep $YARDSTICK_IMAGE | awk '{print $3}'))
+if [[ -n $dangling_images ]]; then
+ echo "Removing $YARDSTICK_IMAGE:<none> dangling images and their containers"
+ docker images | head -1 && docker images | grep $dangling_images
+ for image_id in "${dangling_images[@]}"; do
+ echo "Yardstick: Removing dangling image $image_id"
+ docker rmi -f $image_id >${redirect}
+ done
+fi
+
+for image_id in "${dangling_images[@]}"; do
+ if [[ -n $(docker ps -a | grep $image_id) ]]; then
+ echo "Yardstick: Removing containers associated with dangling image: $image_id"
+ docker ps -a | head -1 && docker ps -a | grep $image_id
+ docker ps -a | grep $image_id | awk '{print $1}'| xargs docker rm -f >${redirect}
+ fi
+done
+
+if [[ -n $(docker ps -a | grep $YARDSTICK_IMAGE) ]]; then
+ echo "Removing existing $YARDSTICK_IMAGE containers"
+ docker ps -a | grep $YARDSTICK_IMAGE | awk '{print $1}' | xargs docker rm -f >$redirect
+fi
+
+if [[ -n $(docker images | grep $YARDSTICK_IMAGE) ]]; then
+ echo "Yardstick: docker images to remove:"
+ docker images | head -1 && docker images | grep $YARDSTICK_IMAGE
+ image_tags=($(docker images | grep $YARDSTICK_IMAGE | awk '{print $2}'))
+ for tag in "${image_tags[@]}"; do
+ echo "Removing docker image $YARDSTICK_IMAGE:$tag..."
+ docker rmi $YARDSTICK_IMAGE:$tag >$redirect
+ done
+fi
+
+echo "InfluxDB: docker containers/images cleaning up"
+INFLUXDB_IMAGE=tutum/influxdb
+
+dangling_images=($(docker images -f "dangling=true" | grep $INFLUXDB_IMAGE | awk '{print $3}'))
+if [[ -n $dangling_images ]]; then
+ echo "Removing $INFLUXDB_IMAGE:<none> dangling images and their containers"
+ docker images | head -1 && docker images | grep $dangling_images
+ for image_id in "${dangling_images[@]}"; do
+ echo "InfluxDB: Removing dangling image $image_id"
+ docker rmi -f $image_id >${redirect}
+ done
+fi
+
+for image_id in "${dangling_images[@]}"; do
+ if [[ -n $(docker ps -a | grep $image_id) ]]; then
+ echo "InfluxDB: Removing containers associated with dangling image: $image_id"
+ docker ps -a | head -1 && docker ps -a | grep $image_id
+ docker ps -a | grep $image_id | awk '{print $1}'| xargs docker rm -f >${redirect}
+ fi
+done
+
+if [[ -n $(docker ps -a | grep $INFLUXDB_IMAGE) ]]; then
+ echo "Removing existing $INFLUXDB_IMAGE containers"
+ docker ps -a | grep $INFLUXDB_IMAGE | awk '{print $1}' | xargs docker rm -f >$redirect
+fi
+
+if [[ -n $(docker images | grep $INFLUXDB_IMAGE) ]]; then
+ echo "InfluxDB: docker images to remove:"
+ docker images | head -1 && docker images | grep $INFLUXDB_IMAGE
+ image_tags=($(docker images | grep $INFLUXDB_IMAGE | awk '{print $2}'))
+ for tag in "${image_tags[@]}"; do
+ echo "Removing docker image $INFLUXDB_IMAGE:$tag..."
+ docker rmi $INFLUXDB_IMAGE:$tag >$redirect
+ done
+fi \ No newline at end of file
diff --git a/jjb/bottlenecks/bottlenecks-project-jobs.yml b/jjb/bottlenecks/bottlenecks-project-jobs.yml
index 03e40dc0e..a0abb9331 100644
--- a/jjb/bottlenecks/bottlenecks-project-jobs.yml
+++ b/jjb/bottlenecks/bottlenecks-project-jobs.yml
@@ -29,6 +29,8 @@
suite:
- 'rubbos'
- 'vstf'
+ - 'posca_stress_traffic'
+ - 'posca_stress_ping'
################################
# job templates
@@ -42,7 +44,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -80,7 +81,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -114,6 +114,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 1
@@ -123,7 +124,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- bottlenecks-parameter:
diff --git a/jjb/bottlenecks/bottlenecks-run-suite.sh b/jjb/bottlenecks/bottlenecks-run-suite.sh
new file mode 100644
index 000000000..f69463fc2
--- /dev/null
+++ b/jjb/bottlenecks/bottlenecks-run-suite.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+#set -e
+[[ $GERRIT_REFSPEC_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
+BOTTLENECKS_IMAGE=opnfv/bottlenecks
+
+if [[ $SUITE_NAME == rubbos || $SUITE_NAME == vstf ]]; then
+ echo "Bottlenecks: to pull image $BOTTLENECKS_IMAGE:${DOCKER_TAG}"
+ docker pull $BOTTLENECKS_IMAGE:$DOCKER_TAG >${redirect}
+
+ echo "Bottlenecks: docker start running"
+ opts="--privileged=true -id"
+ envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
+ -e NODE_NAME=${NODE_NAME} -e EXTERNAL_NET=${EXTERNAL_NETWORK} \
+ -e BOTTLENECKS_BRANCH=${BOTTLENECKS_BRANCH} -e GERRIT_REFSPEC_DEBUG=${GERRIT_REFSPEC_DEBUG} \
+ -e BOTTLENECKS_DB_TARGET=${BOTTLENECKS_DB_TARGET} -e PACKAGE_URL=${PACKAGE_URL}"
+ cmd="sudo docker run ${opts} ${envs} $BOTTLENECKS_IMAGE:${DOCKER_TAG} /bin/bash"
+ echo "Bottlenecks: docker cmd running ${cmd}"
+ ${cmd} >${redirect}
+
+ echo "Bottlenecks: obtain docker id"
+ container_id=$(docker ps | grep "$BOTTLENECKS_IMAGE:${DOCKER_TAG}" | awk '{print $1}' | head -1)
+ if [ -z ${container_id} ]; then
+ echo "Cannot find $BOTTLENECKS_IMAGE container ID ${container_id}. Please check if it exists."
+ docker ps -a
+ exit 1
+ fi
+
+ echo "Bottlenecks: to prepare openstack environment"
+ prepare_env="${REPO_DIR}/ci/prepare_env.sh"
+ echo "Bottlenecks: docker cmd running: ${prepare_env}"
+ sudo docker exec ${container_id} ${prepare_env}
+
+ echo "Bottlenecks: to run testsuite ${SUITE_NAME}"
+ run_testsuite="${REPO_DIR}/run_tests.sh -s ${SUITE_NAME}"
+ echo "Bottlenecks: docker cmd running: ${run_testsuite}"
+ sudo docker exec ${container_id} ${run_testsuite}
+else
+ echo "Bottlenecks: installing POSCA docker-compose"
+ if [ -d usr/local/bin/docker-compose ]; then
+ rm -rf usr/local/bin/docker-compose
+ fi
+ curl -L https://github.com/docker/compose/releases/download/1.11.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
+ chmod +x /usr/local/bin/docker-compose
+
+ echo "Bottlenecks: composing up dockers"
+ cd $WORKSPACE
+ docker-compose -f $WORKSPACE/docker/bottleneck-compose/docker-compose.yml up -d
+
+ echo "Bottlenecks: running traffic stress/factor testing in posca testsuite "
+ POSCA_SCRIPT=/home/opnfv/bottlenecks/testsuites/posca
+ if [[ $SUITE_NAME == posca_stress_traffic ]]; then
+ TEST_CASE=posca_factor_system_bandwidth
+ echo "Bottlenecks: pulling tutum/influxdb for yardstick"
+ docker pull tutum/influxdb:0.13
+ sleep 5
+ docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py testcase $TEST_CASE
+ elif [[ $SUITE_NAME == posca_stress_ping ]]; then
+ TEST_CASE=posca_stress_ping
+ sleep 5
+ docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py testcase $TEST_CASE
+ fi
+
+ echo "Bottlenecks: cleaning up docker-compose images and dockers"
+ docker-compose -f $WORKSPACE/docker/bottleneck-compose/docker-compose.yml down --rmi all
+fi \ No newline at end of file
diff --git a/jjb/compass4nfv/compass-ci-jobs.yml b/jjb/compass4nfv/compass-ci-jobs.yml
index 8800a155f..7258e89f4 100644
--- a/jjb/compass4nfv/compass-ci-jobs.yml
+++ b/jjb/compass4nfv/compass-ci-jobs.yml
@@ -41,8 +41,8 @@
#--------------------------------
# master
#--------------------------------
- - huawei-pod5:
- slave-label: '{pod}'
+ - baremetal-centos:
+ slave-label: 'intel-pod8'
os-version: 'centos7'
<<: *master
@@ -87,6 +87,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-per-node: 1
@@ -106,6 +107,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- compass-ci-parameter:
installer: '{installer}'
gs-pathname: '{gs-pathname}'
@@ -173,6 +175,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-per-node: 1
@@ -194,7 +197,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- compass-ci-parameter:
installer: '{installer}'
@@ -218,12 +220,6 @@
- shell:
!include-raw-escape: ./compass-deploy.sh
- publishers:
- - archive:
- artifacts: 'ansible.log'
- allow-empty: 'true'
- fingerprint: true
-
########################
# parameter macros
########################
@@ -247,35 +243,35 @@
# trigger macros
########################
- trigger:
- name: 'compass-os-nosdn-nofeature-ha-huawei-pod5-master-trigger'
+ name: 'compass-os-nosdn-nofeature-ha-baremetal-centos-master-trigger'
triggers:
- timed: '0 19 * * *'
- trigger:
- name: 'compass-os-odl_l2-nofeature-ha-huawei-pod5-master-trigger'
+ name: 'compass-os-odl_l2-nofeature-ha-baremetal-centos-master-trigger'
triggers:
- timed: '0 23 * * *'
- trigger:
- name: 'compass-os-odl_l3-nofeature-ha-huawei-pod5-master-trigger'
+ name: 'compass-os-odl_l3-nofeature-ha-baremetal-centos-master-trigger'
triggers:
- timed: '0 15 * * *'
- trigger:
- name: 'compass-os-onos-nofeature-ha-huawei-pod5-master-trigger'
+ name: 'compass-os-onos-nofeature-ha-baremetal-centos-master-trigger'
triggers:
- timed: '0 7 * * *'
- trigger:
- name: 'compass-os-ocl-nofeature-ha-huawei-pod5-master-trigger'
+ name: 'compass-os-ocl-nofeature-ha-baremetal-centos-master-trigger'
triggers:
- timed: '0 11 * * *'
- trigger:
- name: 'compass-os-onos-sfc-ha-huawei-pod5-master-trigger'
+ name: 'compass-os-onos-sfc-ha-baremetal-centos-master-trigger'
triggers:
- timed: '0 3 * * *'
- trigger:
- name: 'compass-os-odl_l2-moon-ha-huawei-pod5-master-trigger'
+ name: 'compass-os-odl_l2-moon-ha-baremetal-centos-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-kvm-ha-huawei-pod5-master-trigger'
+ name: 'compass-os-nosdn-kvm-ha-baremetal-centos-master-trigger'
triggers:
- timed: ''
diff --git a/jjb/compass4nfv/compass-deploy.sh b/jjb/compass4nfv/compass-deploy.sh
index f89d04e6d..6696e4b3d 100644
--- a/jjb/compass4nfv/compass-deploy.sh
+++ b/jjb/compass4nfv/compass-deploy.sh
@@ -65,7 +65,4 @@ echo
echo "--------------------------------------------------------"
echo "Done!"
-ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
-sshpass -p root scp 2>/dev/null $ssh_options root@${INSTALLER_IP}:/var/ansible/run/openstack_${OPENSTACK_VERSION}-opnfv2/ansible.log ./ &> /dev/null
-
exit $deploy_ret
diff --git a/jjb/compass4nfv/compass-dovetail-jobs.yml b/jjb/compass4nfv/compass-dovetail-jobs.yml
new file mode 100644
index 000000000..d49d0ec5f
--- /dev/null
+++ b/jjb/compass4nfv/compass-dovetail-jobs.yml
@@ -0,0 +1,208 @@
+- project:
+
+ name: 'compass-dovetail-jobs'
+ installer: 'compass'
+ project: 'compass4nfv'
+#----------------------------------
+# BRANCH ANCHORS
+#----------------------------------
+ colorado: &colorado
+ stream: colorado
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ dovetail-branch: master
+#------------------------------------
+# POD, INSTALLER, AND BRANCH MAPPING
+#------------------------------------
+# CI PODs
+#------------------------------------
+ pod:
+ - baremetal:
+ slave-label: compass-baremetal
+ os-version: 'trusty'
+ <<: *colorado
+#-----------------------------------
+# scenarios
+#-----------------------------------
+ scenario:
+ - 'os-nosdn-nofeature-ha':
+ disabled: false
+ auto-trigger-name: 'compass-{scenario}-{pod}-weekly-{stream}-trigger'
+
+ jobs:
+ - 'compass-{scenario}-{pod}-weekly-{stream}'
+ - 'compass-deploy-{pod}-weekly-{stream}'
+
+########################
+# job templates
+########################
+- job-template:
+ name: 'compass-{scenario}-{pod}-weekly-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ concurrent: false
+
+ properties:
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'compass-os-.*?-{pod}-daily-.*?'
+ - 'compass-os-.*?-{pod}-weekly-.*?'
+ block-level: 'NODE'
+
+ wrappers:
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+
+ triggers:
+ - '{auto-trigger-name}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - compass-dovetail-parameter:
+ installer: '{installer}'
+ gs-pathname: '{gs-pathname}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: '{scenario}'
+ - '{slave-label}-defaults'
+ - '{installer}-defaults'
+
+ triggers:
+ - '{auto-trigger-name}'
+
+ builders:
+ - description-setter:
+ description: "POD: $NODE_NAME"
+ - trigger-builds:
+ - project: 'compass-deploy-{pod}-weekly-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO={scenario}
+ COMPASS_OS_VERSION={os-version}
+ same-node: true
+ block: true
+ - trigger-builds:
+ - project: 'dovetail-compass-{pod}-compliance_set-weekly-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'dovetail-compass-{pod}-debug-weekly-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'dovetail-compass-{pod}-proposed_tests-weekly-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+
+- job-template:
+ name: 'compass-deploy-{pod}-weekly-{stream}'
+
+ disabled: false
+
+ concurrent: true
+
+ properties:
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 4
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'compass-deploy-{pod}-daily-.*?'
+ - 'compass-deploy-{pod}-weekly-.*'
+ - 'compass-verify-deploy-.*?'
+ block-level: 'NODE'
+
+ wrappers:
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+ - timeout:
+ timeout: 120
+ abort: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - compass-dovetail-parameter:
+ installer: '{installer}'
+ gs-pathname: '{gs-pathname}'
+ - '{slave-label}-defaults'
+ - '{installer}-defaults'
+
+ scm:
+ - git-scm
+
+ wrappers:
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+
+
+ builders:
+ - description-setter:
+ description: "POD: $NODE_NAME"
+ - shell:
+ !include-raw-escape: ./compass-download-artifact.sh
+ - shell:
+ !include-raw-escape: ./compass-deploy.sh
+
+########################
+# parameter macros
+########################
+- parameter:
+ name: compass-dovetail-parameter
+ 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: GS_URL
+ default: '$GS_BASE{gs-pathname}'
+ description: "URL to Google Storage."
+ - choice:
+ name: COMPASS_OPENSTACK_VERSION
+ choices:
+ - 'mitaka'
+
+########################
+# trigger macros
+########################
+- trigger:
+ name: 'compass-os-nosdn-nofeature-ha-baremetal-weekly-colorado-trigger'
+ triggers:
+ - timed: 'H H * * 0'
+
+- trigger:
+ name: 'dovetail-weekly-trigger'
+ triggers:
+ - timed: 'H H * * 0'
diff --git a/jjb/compass4nfv/compass-project-jobs.yml b/jjb/compass4nfv/compass-project-jobs.yml
index 6b4080384..ed0fee6c0 100644
--- a/jjb/compass4nfv/compass-project-jobs.yml
+++ b/jjb/compass4nfv/compass-project-jobs.yml
@@ -33,6 +33,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 1
@@ -42,7 +43,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- compass-project-parameter:
installer: '{installer}'
@@ -76,6 +76,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 1
@@ -85,7 +86,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- compass-project-parameter:
installer: '{installer}'
diff --git a/jjb/compass4nfv/compass-verify-jobs.yml b/jjb/compass4nfv/compass-verify-jobs.yml
index 1af190e6b..d58138088 100644
--- a/jjb/compass4nfv/compass-verify-jobs.yml
+++ b/jjb/compass4nfv/compass-verify-jobs.yml
@@ -51,6 +51,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -102,7 +103,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'compass-virtual-defaults'
- '{installer}-defaults'
@@ -163,6 +163,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-per-node: 1
@@ -189,11 +190,6 @@
description: "Built on $NODE_NAME"
- '{project}-verify-{phase}-macro'
- publishers:
- - archive:
- artifacts: 'ansible.log'
- allow-empty: 'true'
- fingerprint: true
#####################################
# builder macros
#####################################
diff --git a/jjb/conductor/conductor.yml b/jjb/conductor/conductor.yml
index fccd53e7f..1d47624e1 100644
--- a/jjb/conductor/conductor.yml
+++ b/jjb/conductor/conductor.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/copper/copper.yml b/jjb/copper/copper.yml
index 24f65a358..b65466e01 100644
--- a/jjb/copper/copper.yml
+++ b/jjb/copper/copper.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -60,4 +59,9 @@
builders:
- shell: |
- echo "Nothing to verify!"
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ shellcheck -f tty tests/*.sh
diff --git a/jjb/cperf/cperf-ci-jobs.yml b/jjb/cperf/cperf-ci-jobs.yml
index 4ffc3b013..125937e80 100644
--- a/jjb/cperf/cperf-ci-jobs.yml
+++ b/jjb/cperf/cperf-ci-jobs.yml
@@ -42,6 +42,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-per-node: 1
@@ -57,7 +58,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{pod}-defaults'
- '{installer}-defaults'
diff --git a/jjb/daisy4nfv/daisy-deploy.sh b/jjb/daisy4nfv/daisy-deploy.sh
new file mode 100755
index 000000000..b303c2c05
--- /dev/null
+++ b/jjb/daisy4nfv/daisy-deploy.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+set -o nounset
+set -o pipefail
+
+echo "--------------------------------------------------------"
+echo "This is $INSTALLER_TYPE deploy job!"
+echo "--------------------------------------------------------"
+
+DEPLOY_SCENARIO=${DEPLOY_SCENARIO:-"os-nosdn-nofeature-ha"}
+BRIDGE=${BRIDGE:-pxebr}
+LAB_NAME=${NODE_NAME/-*}
+POD_NAME=${NODE_NAME/*-}
+deploy_ret=0
+
+if [[ ! "$NODE_NAME" =~ "-virtual" ]] && [[ ! "$LAB_NAME" =~ (zte) ]]; then
+ echo "Unsupported lab $LAB_NAME for now, Cannot continue!"
+ exit $deploy_ret
+fi
+
+# clone the securedlab repo
+cd $WORKSPACE
+BASE_DIR=$(cd ./;pwd)
+
+echo "Cloning securedlab repo $BRANCH"
+git clone ssh://jenkins-ericsson@gerrit.opnfv.org:29418/securedlab --quiet \
+ --branch $BRANCH
+
+DEPLOY_COMMAND="sudo ./ci/deploy/deploy.sh -b $BASE_DIR \
+ -l $LAB_NAME -p $POD_NAME -B $BRIDGE"
+
+# log info to console
+echo """
+Deployment parameters
+--------------------------------------------------------
+Scenario: $DEPLOY_SCENARIO
+LAB: $LAB_NAME
+POD: $POD_NAME
+BRIDGE: $BRIDGE
+BASE_DIR: $BASE_DIR
+
+Starting the deployment using $INSTALLER_TYPE. This could take some time...
+--------------------------------------------------------
+Issuing command
+$DEPLOY_COMMAND
+"""
+
+# start the deployment
+#$DEPLOY_COMMAND
+
+if [ $? -ne 0 ]; then
+ echo
+ echo "Depolyment failed!"
+ deploy_ret=1
+else
+ echo
+ echo "--------------------------------------------------------"
+ echo "Deployment done!"
+fi
+
+exit $deploy_ret
diff --git a/jjb/daisy4nfv/daisy-project-jobs.yml b/jjb/daisy4nfv/daisy-project-jobs.yml
new file mode 100644
index 000000000..0127ed094
--- /dev/null
+++ b/jjb/daisy4nfv/daisy-project-jobs.yml
@@ -0,0 +1,232 @@
+######################################################################
+# Add daily jobs, for buidoing, deploying and testing
+# TODO:
+# - [ ] Add yardstick and functest for test stage
+# - [x] Use daisy-baremetal-defauls for choosing baremetal deployment
+######################################################################
+
+#############################
+# Job configuration for daisy
+#############################
+- project:
+ name: daisy-project-jobs
+
+ project: 'daisy'
+
+ installer: 'daisy'
+
+ stream:
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: true
+
+ phase:
+ - 'build':
+ slave-label: 'opnfv-build-centos'
+ - 'deploy':
+ slave-label: 'daisy-baremetal'
+ - 'test':
+ slave-label: 'opnfv-build-centos'
+ jobs:
+ - '{installer}-daily-{stream}'
+ - '{installer}-{phase}-daily-{stream}'
+
+########################
+# job templates
+########################
+- job-template:
+ name: '{installer}-daily-{stream}'
+
+ project-type: multijob
+
+ disabled: false
+
+ concurrent: true
+
+ properties:
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 4
+ option: 'project'
+
+ scm:
+ - git-scm
+
+ triggers:
+ - timed: '0 H/8 * * *'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-centos-defaults'
+ - 'daisy-defaults'
+ - '{installer}-project-parameter':
+ gs-pathname: '{gs-pathname}'
+
+ wrappers:
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 360
+ fail: true
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: build
+ condition: SUCCESSFUL
+ projects:
+ - name: '{installer}-build-daily-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ BRANCH=$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
+ condition: SUCCESSFUL
+ projects:
+ - name: '{installer}-deploy-daily-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ BRANCH=$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: test
+ condition: SUCCESSFUL
+ projects:
+ - name: '{installer}-test-daily-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ BRANCH=$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
+
+ publishers:
+ - '{installer}-recipients'
+
+- job-template:
+ name: '{installer}-{phase}-daily-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ concurrent: true
+
+ properties:
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 6
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - '{installer}-.*deploy-.*'
+ block-level: 'NODE'
+
+ scm:
+ - git-scm
+
+ wrappers:
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 360
+ fail: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'daisy-defaults'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-nosdn-nofeature-ha'
+ - 'daisy-defaults'
+ - '{slave-label}-defaults'
+ - '{installer}-project-parameter':
+ gs-pathname: '{gs-pathname}'
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - '{installer}-{phase}-daily-macro'
+
+#####################################
+# builder macros
+#####################################
+- builder:
+ name: 'daisy-build-daily-macro'
+ builders:
+ - shell:
+ !include-raw: ./daisy4nfv-basic.sh
+ - shell:
+ !include-raw: ./daisy4nfv-build.sh
+ - shell:
+ !include-raw: ./daisy4nfv-upload-artifact.sh
+ - shell:
+ !include-raw: ./daisy4nfv-workspace-cleanup.sh
+
+- builder:
+ name: 'daisy-deploy-daily-macro'
+ builders:
+ - shell:
+ !include-raw: ./daisy4nfv-download-artifact.sh
+ - shell:
+ !include-raw: ./daisy-deploy.sh
+
+- builder:
+ name: 'daisy-test-daily-macro'
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ echo "Not activated!"
+
+#####################################
+# parameter macros
+#####################################
+- publisher:
+ name: 'daisy-recipients'
+ publishers:
+ - email:
+ recipients: hu.zhijiang@zte.com.cn lu.yao135@zte.com.cn zhou.ya@zte.com.cn yangyang1@zte.com.cn julienjut@gmail.com
+
+- parameter:
+ name: 'daisy-project-parameter'
+ 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."
diff --git a/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml b/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml
index b7a5fec92..95d851cca 100644
--- a/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml
+++ b/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml
@@ -2,6 +2,14 @@
name: 'daisy4nfv-merge-jobs'
project: 'daisy'
+
+ installer: 'daisy'
+
+###########################################################
+# use alias to keep the jobs'name existed already unchanged
+###########################################################
+ alias: 'daisy4nfv'
+
#####################################
# branch definitions
#####################################
@@ -10,31 +18,29 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: true
#####################################
# patch merge phases
#####################################
phase:
- - 'basic':
- slave-label: 'opnfv-build-centos'
- 'build':
slave-label: 'opnfv-build-centos'
- 'deploy-virtual':
slave-label: 'opnfv-build-centos'
- - 'smoke-test':
- slave-label: 'opnfv-build-centos'
- - 'promote':
- slave-label: 'opnfv-build-centos'
#####################################
# jobs
#####################################
jobs:
- - 'daisy4nfv-merge-{stream}'
- - 'daisy4nfv-merge-{phase}-{stream}'
+ - '{alias}-merge-{stream}'
+ - '{alias}-merge-{phase}-{stream}'
#####################################
# job templates
#####################################
- job-template:
- name: 'daisy4nfv-merge-{stream}'
+ name: '{alias}-merge-{stream}'
project-type: multijob
@@ -43,13 +49,14 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
option: 'project'
scm:
- - git-scm-gerrit
+ - git-scm
wrappers:
- ssh-agent-wrapper
@@ -65,50 +72,44 @@
- comment-added-contains-event:
comment-contains-value: 'remerge'
projects:
- - project-compare-type: 'ANT'
- project-pattern: '{project}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- forbidden-file-paths:
- - compare-type: ANT
- pattern: 'docs/**|.gitignore'
+ - 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: 'code/**'
+ - compare-type: ANT
+ pattern: 'deploy/**'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**'
+ - compare-type: ANT
+ pattern: '.gitignore'
readable-message: true
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- - 'opnfv-build-defaults'
- - 'daisy4nfv-merge-defaults':
+ - 'opnfv-build-centos-defaults'
+ - '{alias}-merge-defaults':
gs-pathname: '{gs-pathname}'
builders:
- description-setter:
description: "Built on $NODE_NAME"
- multijob:
- name: basic
- condition: SUCCESSFUL
- projects:
- - name: 'daisy4nfv-merge-basic-{stream}'
- 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: 'daisy4nfv-merge-build-{stream}'
+ - name: '{alias}-merge-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -119,38 +120,10 @@
name: deploy-virtual
condition: SUCCESSFUL
projects:
- - name: 'daisy4nfv-merge-deploy-virtual-{stream}'
- 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: 'daisy4nfv-merge-smoke-test-{stream}'
+ - name: '{alias}-merge-deploy-virtual-{stream}'
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: promote
- condition: SUCCESSFUL
- projects:
- - name: 'daisy4nfv-merge-promote-{stream}'
- current-parameters: false
- predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -159,26 +132,26 @@
abort-all-job: true
- job-template:
- name: 'daisy4nfv-merge-{phase}-{stream}'
+ name: '{alias}-merge-{phase}-{stream}'
disabled: '{obj:disabled}'
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
- max-total: 6
+ max-total: 4
option: 'project'
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - 'daisy4nfv-merge-deploy-.*'
- - 'daisy4nfv-merge-test-.*'
+ - '{alias}-merge-deploy-.*'
block-level: 'NODE'
scm:
- - git-scm-gerrit
+ - git-scm
wrappers:
- ssh-agent-wrapper
@@ -189,58 +162,41 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- - 'daisy4nfv-merge-defaults':
+ - '{alias}-merge-defaults':
gs-pathname: '{gs-pathname}'
builders:
- description-setter:
description: "Built on $NODE_NAME"
- '{project}-merge-{phase}-macro'
+
#####################################
# builder macros
#####################################
- builder:
- name: 'daisy-merge-basic-macro'
+ name: 'daisy-merge-build-macro'
builders:
- shell:
!include-raw: ./daisy4nfv-basic.sh
-
-- builder:
- name: 'daisy-merge-build-macro'
- builders:
- shell:
- !include-raw:
- - ./daisy4nfv-build.sh
- - ./daisy4nfv-upload-artifact.sh
- - ./daisy4nfv-workspace-cleanup.sh
+ !include-raw: ./daisy4nfv-build.sh
+ - shell:
+ !include-raw: ./daisy4nfv-upload-artifact.sh
+ - shell:
+ !include-raw: ./daisy4nfv-workspace-cleanup.sh
- builder:
name: 'daisy-merge-deploy-virtual-macro'
builders:
- shell:
- !include-raw:
- - ./daisy4nfv-download-artifact.sh
- - ./daisy4nfv-virtual-deploy.sh
- - ./daisy4nfv-workspace-cleanup.sh
-
-- builder:
- name: 'daisy-merge-smoke-test-macro'
- builders:
- - shell: |
- #!/bin/bash
-
- echo "Not activated!"
-
-- builder:
- name: 'daisy-merge-promote-macro'
- builders:
- - shell: |
- #!/bin/bash
+ !include-raw: ./daisy4nfv-download-artifact.sh
+ - shell:
+ !include-raw: ./daisy-deploy.sh
+ - shell:
+ !include-raw: ./daisy4nfv-workspace-cleanup.sh
- echo "Not activated!"
#####################################
# parameter macros
#####################################
diff --git a/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml b/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml
index cba22643c..ee82c14b2 100644
--- a/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml
+++ b/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml
@@ -2,6 +2,14 @@
name: 'daisy4nfv-verify-jobs'
project: 'daisy'
+
+ installer: 'daisy'
+
+##########################################################
+# use alias to keep the jobs'name existed alread unchanged
+##########################################################
+ alias: 'daisy4nfv'
+
#####################################
# branch definitions
#####################################
@@ -10,29 +18,27 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: true
#####################################
# patch verification phases
#####################################
phase:
- - 'basic':
- slave-label: 'opnfv-build-centos'
- 'build':
slave-label: 'opnfv-build-centos'
- - 'deploy-virtual':
- slave-label: 'opnfv-build'
- - 'smoke-test':
- slave-label: 'opnfv-build'
#####################################
# jobs
#####################################
jobs:
- - 'daisy4nfv-verify-{stream}'
- - 'daisy4nfv-verify-{phase}-{stream}'
+ - '{alias}-verify-{stream}'
+ - '{alias}-verify-{phase}-{stream}'
#####################################
# job templates
#####################################
- job-template:
- name: 'daisy4nfv-verify-{stream}'
+ name: '{alias}-verify-{stream}'
project-type: multijob
@@ -41,13 +47,14 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
option: 'project'
scm:
- - git-scm-gerrit
+ - git-scm
wrappers:
- ssh-agent-wrapper
@@ -69,78 +76,44 @@
- comment-added-contains-event:
comment-contains-value: 'reverify'
projects:
- - project-compare-type: 'ANT'
- project-pattern: '{project}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- forbidden-file-paths:
- - compare-type: ANT
- pattern: 'docs/**|.gitignore'
+ - 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: 'code/**'
+ - compare-type: ANT
+ pattern: 'deploy/**'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**'
+ - compare-type: ANT
+ pattern: '.gitignore'
readable-message: true
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- - 'opnfv-build-defaults'
- - 'daisy4nfv-verify-defaults':
+ - 'opnfv-build-centos-defaults'
+ - '{alias}-verify-defaults':
gs-pathname: '{gs-pathname}'
builders:
- description-setter:
description: "Built on $NODE_NAME"
- multijob:
- name: basic
- condition: SUCCESSFUL
- projects:
- - name: 'daisy4nfv-verify-basic-{stream}'
- 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: 'daisy4nfv-verify-build-{stream}'
+ - name: '{alias}-verify-build-{stream}'
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: 'daisy4nfv-verify-deploy-virtual-{stream}'
- 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: 'daisy4nfv-verify-smoke-test-{stream}'
- current-parameters: false
- predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -149,13 +122,14 @@
abort-all-job: true
- job-template:
- name: 'daisy4nfv-verify-{phase}-{stream}'
+ name: '{alias}-verify-{phase}-{stream}'
disabled: '{obj:disabled}'
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 6
@@ -163,12 +137,11 @@
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - 'daisy4nfv-verify-deploy-.*'
- - 'daisy4nfv-verify-test-.*'
+ - '{alias}-verify-deploy-.*'
block-level: 'NODE'
scm:
- - git-scm-gerrit
+ - git-scm
wrappers:
- ssh-agent-wrapper
@@ -179,44 +152,29 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- - 'daisy4nfv-verify-defaults':
+ - '{alias}-verify-defaults':
gs-pathname: '{gs-pathname}'
builders:
- description-setter:
description: "Built on $NODE_NAME"
- '{project}-verify-{phase}-macro'
+
#####################################
# builder macros
#####################################
- builder:
- name: 'daisy-verify-basic-macro'
+ name: 'daisy-verify-build-macro'
builders:
- shell:
!include-raw: ./daisy4nfv-basic.sh
-
-- builder:
- name: 'daisy-verify-build-macro'
- builders:
- shell:
!include-raw: ./daisy4nfv-build.sh
-
-- builder:
- name: 'daisy-verify-deploy-virtual-macro'
- builders:
- shell:
- !include-raw: ./daisy4nfv-virtual-deploy.sh
-
-- builder:
- name: 'daisy-verify-smoke-test-macro'
- builders:
- - shell: |
- #!/bin/bash
+ !include-raw: ./daisy4nfv-workspace-cleanup.sh
- echo "Not activated!"
#####################################
# parameter macros
#####################################
diff --git a/jjb/daisy4nfv/daisy4nfv-virtual-deploy.sh b/jjb/daisy4nfv/daisy4nfv-virtual-deploy.sh
deleted file mode 100755
index 4aa7b0bd5..000000000
--- a/jjb/daisy4nfv/daisy4nfv-virtual-deploy.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-
-echo "--------------------------------------------------------"
-echo "This is diasy4nfv virtual deploy job!"
-echo "--------------------------------------------------------"
-
-cd $WORKSPACE
-
-if [[ "$NODE_NAME" =~ "-virtual" ]]; then
- export NETWORK_CONF=./deploy/config/vm_environment/$NODE_NAME/network.yml
- export DHA_CONF=./deploy/config/vm_environment/$NODE_NAME/deploy.yml
-else
- # TODO: For the time being, we need to pass this script to let contributors merge their work.
- echo "No support for non-virtual node"
- exit 0
-fi
-
-./ci/deploy/deploy.sh ${DHA_CONF} ${NETWORK_CONF}
-
-if [ $? -ne 0 ]; then
- echo "depolyment failed!"
- deploy_ret=1
-fi
-
-echo
-echo "--------------------------------------------------------"
-echo "Done!"
-
-exit $deploy_ret
diff --git a/jjb/doctor/doctor.yml b/jjb/doctor/doctor.yml
index 62f89e686..28888d673 100644
--- a/jjb/doctor/doctor.yml
+++ b/jjb/doctor/doctor.yml
@@ -7,7 +7,7 @@
- master:
branch: '{stream}'
gs-pathname: ''
- docker-tag: 'master'
+ docker-tag: 'latest'
disabled: false
- danube:
branch: 'stable/{stream}'
@@ -19,6 +19,12 @@
- apex:
slave-label: 'ool-virtual1'
pod: 'ool-virtual1'
+ - fuel:
+ slave-label: 'ool-virtual2'
+ pod: 'ool-virtual2'
+ #- joid:
+ # slave-label: 'ool-virtual3'
+ # pod: 'ool-virtual3'
inspector:
- 'sample'
@@ -34,7 +40,7 @@
jobs:
- 'doctor-verify-{stream}'
- - 'doctor-{task}-{installer}-{inspector}-{stream}':
+ - 'doctor-{task}-{installer}-{inspector}-{stream}'
- job-template:
name: 'doctor-verify-{stream}'
@@ -44,7 +50,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -85,17 +90,13 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: OS_CREDS
default: /home/jenkins/openstack.creds
description: 'OpenStack credentials'
- '{slave-label}-defaults'
- - string:
- name: INSTALLER_TYPE
- default: '{installer}'
- description: 'Installer used for deploying OPNFV on this POD'
+ - '{installer}-defaults'
- string:
name: DOCKER_TAG
default: '{docker-tag}'
@@ -143,6 +144,7 @@
branch: '{branch}'
builders:
+ - 'clean-workspace-log'
- 'functest-suite-builder'
- shell: |
functest_log="$HOME/opnfv/functest/results/{stream}/{project}.log"
diff --git a/jjb/domino/domino.yml b/jjb/domino/domino.yml
index 532fce687..5fd9db3f1 100644
--- a/jjb/domino/domino.yml
+++ b/jjb/domino/domino.yml
@@ -24,7 +24,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/dovetail/dovetail-artifacts-upload.yml b/jjb/dovetail/dovetail-artifacts-upload.yml
index dc2ae5aa2..3d9af5ed7 100644
--- a/jjb/dovetail/dovetail-artifacts-upload.yml
+++ b/jjb/dovetail/dovetail-artifacts-upload.yml
@@ -33,6 +33,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 1
@@ -42,7 +43,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- dovetail-parameter:
diff --git a/jjb/dovetail/dovetail-ci-jobs.yml b/jjb/dovetail/dovetail-ci-jobs.yml
index 08eb5a5f1..e2a334d40 100644
--- a/jjb/dovetail/dovetail-ci-jobs.yml
+++ b/jjb/dovetail/dovetail-ci-jobs.yml
@@ -126,8 +126,8 @@
#--------------------------------
# None-CI PODs
#--------------------------------
- - huawei-pod5:
- slave-label: '{pod}'
+ - baremetal-centos:
+ slave-label: 'intel-pod8'
SUT: compass
auto-trigger-name: 'daily-trigger-disabled'
<<: *master
@@ -161,6 +161,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-per-node: 1
@@ -179,8 +180,7 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
- branch: '{branch}'
+ branch: '{dovetail-branch}'
- '{SUT}-defaults'
- '{slave-label}-defaults'
- string:
diff --git a/jjb/dovetail/dovetail-project-jobs.yml b/jjb/dovetail/dovetail-project-jobs.yml
index 904841396..9dc4808b4 100644
--- a/jjb/dovetail/dovetail-project-jobs.yml
+++ b/jjb/dovetail/dovetail-project-jobs.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -65,7 +64,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/dovetail/dovetail-weekly-jobs.yml b/jjb/dovetail/dovetail-weekly-jobs.yml
new file mode 100644
index 000000000..8edce4246
--- /dev/null
+++ b/jjb/dovetail/dovetail-weekly-jobs.yml
@@ -0,0 +1,135 @@
+- project:
+ name: dovetail-weekly-jobs
+ project: dovetail
+#--------------------------------
+# BRANCH ANCHORS
+#--------------------------------
+ master: &master
+ stream: master
+ branch: '{stream}'
+ dovetail-branch: '{stream}'
+ gs-pathname: ''
+ docker-tag: 'latest'
+ colorado: &colorado
+ stream: colorado
+ branch: 'stable/{stream}'
+ dovetail-branch: master
+ gs-pathname: '/{stream}'
+ docker-tag: 'latest'
+
+#--------------------------------
+# POD, INSTALLER, AND BRANCH MAPPING
+#--------------------------------
+# Installers using labels
+# CI PODs
+# This section should only contain the installers
+# that have been switched using labels for slaves
+#--------------------------------
+ pod:
+# - baremetal:
+# slave-label: apex-baremetal
+# sut: apex
+# <<: *colorado
+ - baremetal:
+ slave-label: compass-baremetal
+ sut: compass
+ <<: *colorado
+# - baremetal:
+# slave-label: fuel-baremetal
+# sut: fuel
+# <<: *master
+# - baremetal:
+# slave-label: joid-baremetal
+# sut: joid
+# <<: *colorado
+
+ testsuite:
+ - 'debug'
+ - 'proposed_tests'
+ - 'compliance_set'
+
+ loop:
+ - 'weekly':
+ job-timeout: 60
+
+ jobs:
+ - 'dovetail-{sut}-{pod}-{testsuite}-{loop}-{stream}'
+
+################################
+# job template
+################################
+- job-template:
+ name: 'dovetail-{sut}-{pod}-{testsuite}-{loop}-{stream}'
+
+ disabled: false
+
+ concurrent: true
+
+ properties:
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-per-node: 1
+ option: 'project'
+
+ wrappers:
+ - build-name:
+ name: '$BUILD_NUMBER Scenario: $DEPLOY_SCENARIO'
+ - timeout:
+ timeout: '{job-timeout}'
+ abort: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{dovetail-branch}'
+ - '{sut}-defaults'
+ - '{slave-label}-defaults'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-nosdn-nofeature-ha'
+ - string:
+ name: DOCKER_TAG
+ default: '{docker-tag}'
+ description: 'Tag to pull dovetail docker image'
+ - string:
+ name: CI_DEBUG
+ default: 'true'
+ description: "Show debug output information"
+ - string:
+ name: TESTSUITE
+ default: '{testsuite}'
+ description: "dovetail testsuite to run"
+ - string:
+ name: DOVETAIL_REPO_DIR
+ default: "/home/opnfv/dovetail"
+ description: "Directory where the dovetail repository is cloned"
+
+ scm:
+ - git-scm
+
+ builders:
+ - description-setter:
+ description: "POD: $NODE_NAME"
+ - 'dovetail-cleanup'
+ - 'dovetail-run'
+
+ publishers:
+ - archive:
+ artifacts: 'results/**/*'
+ allow-empty: true
+ fingerprint: true
+
+########################
+# builder macros
+########################
+- builder:
+ name: dovetail-run-weekly
+ builders:
+ - shell:
+ !include-raw: ./dovetail-run.sh
+- builder:
+ name: dovetail-cleanup-weekly
+ builders:
+ - shell:
+ !include-raw: ./dovetail-cleanup.sh
diff --git a/jjb/dpacc/dpacc.yml b/jjb/dpacc/dpacc.yml
index 27e663507..bc61d7447 100644
--- a/jjb/dpacc/dpacc.yml
+++ b/jjb/dpacc/dpacc.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/escalator/escalator.yml b/jjb/escalator/escalator.yml
index 4149ee93c..2265dafce 100644
--- a/jjb/escalator/escalator.yml
+++ b/jjb/escalator/escalator.yml
@@ -39,6 +39,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -80,7 +81,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-defaults'
- 'escalator-defaults':
@@ -96,7 +96,7 @@
- name: 'escalator-verify-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -110,7 +110,7 @@
- name: 'escalator-verify-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -137,7 +137,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- 'escalator-defaults':
@@ -158,6 +157,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -193,7 +193,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-defaults'
- 'escalator-defaults':
@@ -209,7 +208,7 @@
- name: 'escalator-merge-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -223,7 +222,7 @@
- name: 'escalator-merge-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -239,7 +238,7 @@
concurrent: true
scm:
- - git-scm-gerrit
+ - git-scm
wrappers:
- ssh-agent-wrapper
@@ -250,7 +249,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- 'escalator-defaults':
diff --git a/jjb/fuel/fuel-daily-jobs.yml b/jjb/fuel/fuel-daily-jobs.yml
index cd22c1ac2..237855236 100644
--- a/jjb/fuel/fuel-daily-jobs.yml
+++ b/jjb/fuel/fuel-daily-jobs.yml
@@ -81,6 +81,10 @@
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-kvm_ovs-ha':
auto-trigger-name: 'daily-trigger-disabled'
+ - 'os-nosdn-kvm_ovs_dpdk-ha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
+ - 'os-nosdn-kvm_ovs_dpdk_bar-ha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
# NOHA scenarios
- 'os-nosdn-nofeature-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
@@ -100,6 +104,10 @@
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-ovs-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
+ - 'os-nosdn-kvm_ovs_dpdk-noha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
+ - 'os-nosdn-kvm_ovs_dpdk_bar-noha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
jobs:
- 'fuel-{scenario}-{pod}-daily-{stream}'
@@ -116,6 +124,7 @@
concurrent: false
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -137,6 +146,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
installer: '{installer}'
@@ -191,6 +201,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -206,7 +217,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
@@ -238,7 +248,7 @@
publishers:
- email:
- recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com peter.barabas@ericsson.com fzhadaev@mirantis.com
+ recipients: peter.barabas@ericsson.com fzhadaev@mirantis.com
########################
# parameter macros
@@ -272,11 +282,15 @@
- trigger:
name: 'fuel-os-odl_l2-nofeature-ha-baremetal-daily-master-trigger'
triggers:
- - timed: '' # '5 23 * * *'
+ - timed: '5 23 * * *'
- trigger:
name: 'fuel-os-odl_l3-nofeature-ha-baremetal-daily-master-trigger'
triggers:
- - timed: '' # '5 2 * * *'
+ - timed: '5 2 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-master-trigger'
+ triggers:
+ - timed: '5 5 * * *'
- trigger:
name: 'fuel-os-onos-sfc-ha-baremetal-daily-master-trigger'
triggers:
@@ -288,20 +302,23 @@
- trigger:
name: 'fuel-os-odl_l2-sfc-ha-baremetal-daily-master-trigger'
triggers:
- - timed: '' # '5 11 * * *'
+ - timed: '5 11 * * *'
- trigger:
name: 'fuel-os-odl_l2-bgpvpn-ha-baremetal-daily-master-trigger'
triggers:
- - timed: '' # '5 14 * * *'
+ - timed: '5 14 * * *'
- trigger:
name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-master-trigger'
triggers:
- - timed: '' # '5 17 * * *'
+ - timed: '5 17 * * *'
- trigger:
- name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-master-trigger'
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-master-trigger'
triggers:
- - timed: '5 20 * * *'
-
+ - timed: '30 12 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-master-trigger'
+ triggers:
+ - timed: '30 8 * * *'
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-master-trigger'
@@ -339,6 +356,14 @@
name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-master-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# Triggers for job running on fuel-baremetal against danube branch
#-----------------------------------------------
@@ -379,7 +404,14 @@
name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-danube-trigger'
triggers:
- timed: '0 20 * * *'
-
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-danube-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-danube-trigger'
@@ -417,6 +449,14 @@
name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-danube-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# Triggers for job running on fuel-virtual against master branch
#-----------------------------------------------
@@ -456,6 +496,14 @@
name: 'fuel-os-nosdn-ovs-ha-virtual-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-master-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-master-trigger'
@@ -472,11 +520,11 @@
- trigger:
name: 'fuel-os-onos-sfc-noha-virtual-daily-master-trigger'
triggers:
- - timed: '35 20 * * *'
+ - timed: '' # '35 20 * * *'
- trigger:
name: 'fuel-os-onos-nofeature-noha-virtual-daily-master-trigger'
triggers:
- - timed: '5 23 * * *'
+ - timed: '' # '5 23 * * *'
- trigger:
name: 'fuel-os-odl_l2-sfc-noha-virtual-daily-master-trigger'
triggers:
@@ -493,6 +541,14 @@
name: 'fuel-os-nosdn-ovs-noha-virtual-daily-master-trigger'
triggers:
- timed: '5 9 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-master-trigger'
+ triggers:
+ - timed: '30 16 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-virtual-daily-master-trigger'
+ triggers:
+ - timed: '30 20 * * *'
#-----------------------------------------------
# Triggers for job running on fuel-virtual against danube branch
#-----------------------------------------------
@@ -532,6 +588,14 @@
name: 'fuel-os-nosdn-ovs-ha-virtual-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-danube-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-danube-trigger'
@@ -569,6 +633,14 @@
name: 'fuel-os-nosdn-ovs-noha-virtual-daily-danube-trigger'
triggers:
- timed: '0 9 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-virtual-daily-danube-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD1 Triggers running against master branch
#-----------------------------------------------
@@ -608,6 +680,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod1-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod1-daily-master-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod1-daily-master-trigger'
@@ -645,6 +725,14 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod1-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod1-daily-master-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD2 Triggers running against master branch
@@ -685,6 +773,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod2-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod2-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod2-daily-master-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod2-daily-master-trigger'
@@ -722,6 +818,14 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod2-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod2-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod2-daily-master-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD3 Triggers running against master branch
#-----------------------------------------------
@@ -761,6 +865,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod3-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod3-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod3-daily-master-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod3-daily-master-trigger'
@@ -798,6 +910,14 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod3-daily-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod3-daily-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod3-daily-master-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD1 Triggers running against danube branch
#-----------------------------------------------
@@ -837,6 +957,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod1-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod1-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod1-daily-danube-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod1-daily-danube-trigger'
@@ -874,6 +1002,14 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod1-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod1-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod1-daily-danube-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD2 Triggers running against danube branch
@@ -914,6 +1050,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod2-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod2-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod2-daily-danube-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod2-daily-danube-trigger'
@@ -951,6 +1095,14 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod2-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod2-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod2-daily-danube-trigger'
+ triggers:
+ - timed: ''
#-----------------------------------------------
# ZTE POD3 Triggers running against danube branch
#-----------------------------------------------
@@ -990,6 +1142,14 @@
name: 'fuel-os-nosdn-ovs-ha-zte-pod3-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod3-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod3-daily-danube-trigger'
+ triggers:
+ - timed: ''
# NOHA Scenarios
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-zte-pod3-daily-danube-trigger'
@@ -1027,3 +1187,11 @@
name: 'fuel-os-nosdn-ovs-noha-zte-pod3-daily-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod3-daily-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod3-daily-danube-trigger'
+ triggers:
+ - timed: ''
diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh
index 48b1dac2f..4efccd611 100755
--- a/jjb/fuel/fuel-deploy.sh
+++ b/jjb/fuel/fuel-deploy.sh
@@ -57,9 +57,9 @@ chmod a+x $TMPDIR
# clone the securedlab repo
cd $WORKSPACE
-echo "Cloning securedlab repo ${GIT_BRANCH##origin/}"
+echo "Cloning securedlab repo $BRANCH"
git clone ssh://jenkins-ericsson@gerrit.opnfv.org:29418/securedlab --quiet \
- --branch ${GIT_BRANCH##origin/}
+ --branch $BRANCH
# log file name
FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz"
diff --git a/jjb/fuel/fuel-download-artifact.sh b/jjb/fuel/fuel-download-artifact.sh
index 2a0f09a3f..8cc552e8d 100755
--- a/jjb/fuel/fuel-download-artifact.sh
+++ b/jjb/fuel/fuel-download-artifact.sh
@@ -36,7 +36,7 @@ echo "Using $OPNFV_ARTIFACT for deployment"
# using ISOs for verify & merge jobs from local storage will be enabled later
if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
# check if we already have the ISO to avoid redownload
- ISOSTORE="/iso_mount/opnfv_ci/${GIT_BRANCH##*/}"
+ ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}"
if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then
echo "ISO exists locally. Skipping the download and using the file from ISO store"
ln -s $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso
diff --git a/jjb/fuel/fuel-project-jobs.yml b/jjb/fuel/fuel-project-jobs.yml
index 731b9bd0d..32ad8907e 100644
--- a/jjb/fuel/fuel-project-jobs.yml
+++ b/jjb/fuel/fuel-project-jobs.yml
@@ -35,6 +35,7 @@
concurrent: false
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 1
@@ -44,7 +45,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- '{installer}-defaults'
@@ -78,7 +78,7 @@
publishers:
- email:
- recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com fzhadaev@mirantis.com
+ recipients: fzhadaev@mirantis.com
- job-template:
name: 'fuel-merge-build-{stream}'
@@ -90,7 +90,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- '{installer}-defaults'
@@ -146,6 +145,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 2
@@ -161,7 +161,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'fuel-virtual-defaults':
installer: '{installer}'
@@ -209,7 +208,7 @@
publishers:
- email:
- recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com fzhadaev@mirantis.com
+ recipients: fzhadaev@mirantis.com
- job-template:
name: 'fuel-deploy-generic-daily-{stream}'
@@ -219,6 +218,7 @@
disabled: '{obj:disabled}'
properties:
+ - logrotate-default
- throttle:
enabled: true
max-per-node: 1
@@ -233,7 +233,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- string:
diff --git a/jjb/fuel/fuel-upload-artifact.sh b/jjb/fuel/fuel-upload-artifact.sh
index ca4ba00b0..d1ac3509b 100755
--- a/jjb/fuel/fuel-upload-artifact.sh
+++ b/jjb/fuel/fuel-upload-artifact.sh
@@ -23,7 +23,7 @@ nfsstore () {
# storing ISOs for verify & merge jobs will be done once we get the disk array
if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
# store ISO locally on NFS first
- ISOSTORE="/iso_mount/opnfv_ci/${GIT_BRANCH##*/}"
+ ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}"
if [[ -d "$ISOSTORE" ]]; then
# remove all but most recent 5 ISOs first to keep iso_mount clean & tidy
cd $ISOSTORE
diff --git a/jjb/fuel/fuel-verify-jobs-experimental.yml b/jjb/fuel/fuel-verify-jobs-experimental.yml
index 3aa85b22d..ae6458021 100644
--- a/jjb/fuel/fuel-verify-jobs-experimental.yml
+++ b/jjb/fuel/fuel-verify-jobs-experimental.yml
@@ -52,6 +52,7 @@
concurrent: false
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -100,7 +101,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-defaults'
- 'fuel-verify-defaults-exp':
@@ -116,7 +116,7 @@
- name: 'fuel-verify-basic-{stream-exp}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -130,7 +130,7 @@
- name: 'fuel-verify-build-{stream-exp}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -144,7 +144,7 @@
- name: 'fuel-verify-deploy-virtual-{stream-exp}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -158,7 +158,7 @@
- name: 'fuel-verify-smoke-test-{stream-exp}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -174,6 +174,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 6
@@ -196,7 +197,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- '{installer}-defaults'
diff --git a/jjb/fuel/fuel-verify-jobs.yml b/jjb/fuel/fuel-verify-jobs.yml
index c5f913e49..7f9eff04d 100644
--- a/jjb/fuel/fuel-verify-jobs.yml
+++ b/jjb/fuel/fuel-verify-jobs.yml
@@ -47,6 +47,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -95,7 +96,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- 'fuel-verify-defaults':
@@ -111,7 +111,7 @@
- name: 'fuel-verify-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -125,7 +125,7 @@
- name: 'fuel-verify-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -139,7 +139,7 @@
- name: 'fuel-verify-deploy-virtual-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -153,7 +153,7 @@
- name: 'fuel-verify-smoke-test-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -169,6 +169,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 6
@@ -191,7 +192,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- '{installer}-defaults'
diff --git a/jjb/functest/functest-ci-jobs.yml b/jjb/functest/functest-ci-jobs.yml
index 4920bffea..49901bea2 100644
--- a/jjb/functest/functest-ci-jobs.yml
+++ b/jjb/functest/functest-ci-jobs.yml
@@ -133,8 +133,8 @@
slave-label: '{pod}'
installer: joid
<<: *master
- - huawei-pod5:
- slave-label: '{pod}'
+ - baremetal-centos:
+ slave-label: 'intel-pod8'
installer: compass
<<: *master
- nokia-pod1:
@@ -204,6 +204,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-per-node: 1
@@ -219,7 +220,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults'
@@ -234,7 +234,7 @@
- string:
name: CLEAN_DOCKER_IMAGES
default: 'false'
- description: 'Remove downloaded docker images (opnfv/functest:*)'
+ description: 'Remove downloaded docker images (opnfv/functest*:*)'
- functest-parameter:
gs-pathname: '{gs-pathname}'
@@ -347,6 +347,8 @@
- 'functest-cleanup'
- 'set-functest-env'
- 'functest-suite'
+ - 'functest-store-results'
+ - 'functest-exit'
- builder:
name: functest-daily
diff --git a/jjb/functest/functest-cleanup.sh b/jjb/functest/functest-cleanup.sh
index b03d4778d..fc277b9ed 100755
--- a/jjb/functest/functest-cleanup.sh
+++ b/jjb/functest/functest-cleanup.sh
@@ -3,14 +3,22 @@
[[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
echo "Cleaning up docker containers/images..."
+HOST_ARCH=$(uname -m)
FUNCTEST_IMAGE=opnfv/functest
-# Remove containers along with image opnfv/functest:<none>
+if [ "$HOST_ARCH" = "aarch64" ]; then
+ FUNCTEST_IMAGE="${FUNCTEST_IMAGE}_${HOST_ARCH}"
+fi
+
+# Remove containers along with image opnfv/functest*:<none>
dangling_images=($(docker images -f "dangling=true" | grep $FUNCTEST_IMAGE | awk '{print $3}'))
if [[ -n ${dangling_images} ]]; then
echo " Removing $FUNCTEST_IMAGE:<none> images and their containers..."
for image_id in "${dangling_images[@]}"; do
echo " Removing image_id: $image_id and its containers"
- docker ps -a | grep $image_id | awk '{print $1}'| xargs docker rm -f >${redirect}
+ containers=$(docker ps -a | grep $image_id | awk '{print $1}')
+ if [[ -n "$containers" ]];then
+ docker rm -f $containers >${redirect}
+ fi
docker rmi $image_id >${redirect}
done
fi
diff --git a/jjb/functest/functest-exit.sh b/jjb/functest/functest-exit.sh
index 10edab005..925a3cfbb 100644
--- a/jjb/functest/functest-exit.sh
+++ b/jjb/functest/functest-exit.sh
@@ -1,7 +1,6 @@
#!/bin/bash
-branch=${GIT_BRANCH##*/}
-ret_val_file="${HOME}/opnfv/functest/results/${branch}/return_value"
+ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
if [ ! -f ${ret_val_file} ]; then
echo "Return value not found!"
exit -1
@@ -9,4 +8,4 @@ fi
ret_val=`cat ${ret_val_file}`
-exit ${ret_val} \ No newline at end of file
+exit ${ret_val}
diff --git a/jjb/functest/functest-loop.sh b/jjb/functest/functest-loop.sh
index 4528c00d1..893c428a2 100755
--- a/jjb/functest/functest-loop.sh
+++ b/jjb/functest/functest-loop.sh
@@ -3,9 +3,9 @@ set +e
branch=${GIT_BRANCH##*/}
[[ "$PUSH_RESULTS_TO_DB" == "true" ]] && flags+="-r"
-if [[ ${branch} == *"brahmaputra"* ]]; then
+if [[ "$BRANCH" =~ 'brahmaputra' ]]; then
cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh -s ${flags}"
-elif [[ ${branch} == *"colorado"* ]]; then
+elif [[ "$BRANCH" =~ 'colorado' ]]; then
cmd="python ${FUNCTEST_REPO_DIR}/ci/run_tests.py -t all ${flags}"
else
cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/run_tests.py -t all ${flags}"
@@ -14,7 +14,7 @@ container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
docker exec $container_id $cmd
ret_value=$?
-ret_val_file="${HOME}/opnfv/functest/results/${branch}/return_value"
+ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
echo ${ret_value}>${ret_val_file}
exit 0
diff --git a/jjb/functest/functest-project-jobs.yml b/jjb/functest/functest-project-jobs.yml
index 6a0768c9c..42c19a777 100644
--- a/jjb/functest/functest-project-jobs.yml
+++ b/jjb/functest/functest-project-jobs.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/functest/functest-suite.sh b/jjb/functest/functest-suite.sh
index 9dc8deca0..f28d3d037 100755
--- a/jjb/functest/functest-suite.sh
+++ b/jjb/functest/functest-suite.sh
@@ -1,11 +1,10 @@
#!/bin/bash
set -e
-branch=${GIT_BRANCH##*/}
-echo "Functest: run $FUNCTEST_SUITE_NAME on branch ${branch}"
-if [[ ${branch} == *"brahmaputra"* ]]; then
+echo "Functest: run $FUNCTEST_SUITE_NAME on branch $BRANCH"
+if [[ "$BRANCH" =~ 'brahmaputra' ]]; then
cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test $FUNCTEST_SUITE_NAME"
-elif [[ ${branch} == *"colorado"* ]]; then
+elif [[ "$BRANCH" =~ 'colorado' ]]; then
cmd="python ${FUNCTEST_REPO_DIR}/ci/run_tests.py -t $FUNCTEST_SUITE_NAME"
else
cmd="functest testcase run $FUNCTEST_SUITE_NAME"
@@ -14,5 +13,7 @@ container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
docker exec $container_id $cmd
ret_value=$?
+ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
+echo ${ret_value}>${ret_val_file}
-exit $ret_value
+exit 0
diff --git a/jjb/functest/set-functest-env.sh b/jjb/functest/set-functest-env.sh
index 583ce8041..05e3d5792 100755
--- a/jjb/functest/set-functest-env.sh
+++ b/jjb/functest/set-functest-env.sh
@@ -14,34 +14,37 @@ if [[ ${INSTALLER_TYPE} == 'joid' ]]; then
fi
if [[ ${RC_FILE_PATH} != '' ]] && [[ -f ${RC_FILE_PATH} ]] ; then
+ echo "Credentials file detected: ${RC_FILE_PATH}"
# volume if credentials file path is given to Functest
- rc_file_vol="-v $RC_FILE_PATH:/home/opnfv/functest/conf/openstack.creds"
+ rc_file_vol="-v ${RC_FILE_PATH}:/home/opnfv/functest/conf/openstack.creds"
+ RC_FLAG=1
fi
if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
- if sudo virsh list | grep instack; then
- instack_mac=$(sudo virsh domiflist instack | grep default | \
- grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+")
- elif sudo virsh list | grep undercloud; then
- instack_mac=$(sudo virsh domiflist undercloud | grep default | \
+ if sudo virsh list | grep undercloud; then
+ echo "Installer VM detected"
+ undercloud_mac=$(sudo virsh domiflist undercloud | grep default | \
grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+")
+ INSTALLER_IP=$(/usr/sbin/arp -e | grep ${undercloud_mac} | awk {'print $1'})
+ sshkey_vol="-v /root/.ssh/id_rsa:/root/.ssh/id_rsa"
+ sudo scp $ssh_options root@${INSTALLER_IP}:/home/stack/stackrc ${HOME}/stackrc
+ stackrc_vol="-v ${HOME}/stackrc:/home/opnfv/functest/conf/stackrc"
+
+ if sudo iptables -C FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable 2> ${redirect}; then
+ sudo iptables -D FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
+ fi
+ if sudo iptables -C FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable 2> ${redirect}; then
+ sudo iptables -D FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
+ fi
+ elif [[ "$RC_FLAG" == 1 ]]; then
+ echo "No available installer VM, but credentials provided...continuing"
else
- echo "No available installer VM exists...exiting"
+ echo "No available installer VM exists and no credentials provided...exiting"
exit 1
fi
- INSTALLER_IP=$(/usr/sbin/arp -e | grep ${instack_mac} | awk {'print $1'})
- sshkey_vol="-v /root/.ssh/id_rsa:/root/.ssh/id_rsa"
- sudo scp $ssh_options root@${INSTALLER_IP}:/home/stack/stackrc ${HOME}/stackrc
- stackrc_vol="-v ${HOME}/stackrc:/home/opnfv/functest/conf/stackrc"
- if sudo iptables -C FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable 2> ${redirect}; then
- sudo iptables -D FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
- fi
- if sudo iptables -C FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable 2> ${redirect}; then
- sudo iptables -D FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
- fi
fi
@@ -56,8 +59,7 @@ DEPLOY_TYPE=baremetal
echo "Functest: Start Docker and prepare environment"
-branch=${GIT_BRANCH##*/}
-dir_result="${HOME}/opnfv/functest/results/${branch}"
+dir_result="${HOME}/opnfv/functest/results/${BRANCH##*/}"
mkdir -p ${dir_result}
sudo rm -rf ${dir_result}/*
results_vol="-v ${dir_result}:/home/opnfv/functest/results"
@@ -71,17 +73,22 @@ envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
volumes="${results_vol} ${sshkey_vol} ${stackrc_vol} ${rc_file_vol}"
+HOST_ARCH=$(uname -m)
+FUNCTEST_IMAGE="opnfv/functest"
+if [ "$HOST_ARCH" = "aarch64" ]; then
+ FUNCTEST_IMAGE="${FUNCTEST_IMAGE}_${HOST_ARCH}"
+fi
-echo "Functest: Pulling image opnfv/functest:${DOCKER_TAG}"
-docker pull opnfv/functest:$DOCKER_TAG >/dev/null
+echo "Functest: Pulling image ${FUNCTEST_IMAGE}:${DOCKER_TAG}"
+docker pull ${FUNCTEST_IMAGE}:$DOCKER_TAG >/dev/null
cmd="sudo docker run --privileged=true -id ${envs} ${volumes} \
${custom_params} ${TESTCASE_OPTIONS} \
- opnfv/functest:${DOCKER_TAG} /bin/bash"
+ ${FUNCTEST_IMAGE}:${DOCKER_TAG} /bin/bash"
echo "Functest: Running docker run command: ${cmd}"
${cmd} >${redirect}
sleep 5
-container_id=$(docker ps | grep "opnfv/functest:${DOCKER_TAG}" | awk '{print $1}' | head -1)
+container_id=$(docker ps | grep "${FUNCTEST_IMAGE}:${DOCKER_TAG}" | awk '{print $1}' | head -1)
echo "Container ID=${container_id}"
if [ -z ${container_id} ]; then
echo "Cannot find opnfv/functest container ID ${container_id}. Please check if it is existing."
@@ -92,13 +99,13 @@ echo "Starting the container: docker start ${container_id}"
docker start ${container_id}
sleep 5
docker ps >${redirect}
-if [ $(docker ps | grep "opnfv/functest:${DOCKER_TAG}" | wc -l) == 0 ]; then
- echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..."
+if [ $(docker ps | grep "${FUNCTEST_IMAGE}:${DOCKER_TAG}" | wc -l) == 0 ]; then
+ echo "The container ${FUNCTEST_IMAGE} with ID=${container_id} has not been properly started. Exiting..."
exit 1
fi
-if [[ ${branch} == *"brahmaputra"* ]]; then
+if [[ "$BRANCH" =~ 'brahmaputra' ]]; then
cmd="${FUNCTEST_REPO_DIR}/docker/prepare_env.sh"
-elif [[ ${branch} == *"colorado"* ]]; then
+elif [[ "$BRANCH" =~ 'colorado' ]]; then
cmd="python ${FUNCTEST_REPO_DIR}/ci/prepare_env.py start"
else
cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/prepare_env.py start"
diff --git a/jjb/global/installer-params.yml b/jjb/global/installer-params.yml
index 4a50a5906..fc9f34a48 100644
--- a/jjb/global/installer-params.yml
+++ b/jjb/global/installer-params.yml
@@ -10,10 +10,6 @@
default: apex
description: 'Installer used for deploying OPNFV on this POD'
- string:
- name: DEPLOY_SCENARIO
- default: 'none'
- description: 'Scenario to deploy and test'
- - string:
name: EXTERNAL_NETWORK
default: 'external'
description: 'external network for test'
@@ -66,6 +62,10 @@
default: joid
description: 'Installer used for deploying OPNFV on this POD'
- string:
+ name: MODEL
+ default: 'os'
+ description: 'Model to deploy (os|k8)'
+ - string:
name: OS_RELEASE
default: 'newton'
description: 'OpenStack release (mitaka|newton)'
@@ -89,6 +89,19 @@
name: CPU_ARCHITECTURE
default: 'amd64'
description: "CPU Architecture to use for Ubuntu distro "
+
+- parameter:
+ name: 'daisy-defaults'
+ parameters:
+ - string:
+ name: INSTALLER_IP
+ default: '10.20.0.2'
+ description: 'IP of the installer'
+ - string:
+ name: INSTALLER_TYPE
+ default: daisy
+ description: 'Installer used for deploying OPNFV on this POD'
+
- parameter:
name: 'infra-defaults'
parameters:
@@ -109,13 +122,9 @@
description: 'IP of the installer'
- string:
name: INSTALLER_TYPE
- default: netvirt
+ default: apex
description: 'Installer used for deploying OPNFV on this POD'
- string:
- name: DEPLOY_SCENARIO
- default: 'os-odl_l2-bgpvpn-noha'
- description: 'Scenario to deploy and test'
- - string:
name: EXTERNAL_NETWORK
default: 'external'
description: 'external network for test'
diff --git a/jjb/global/releng-defaults.yml b/jjb/global/releng-defaults.yml
index 5003a8f48..283888603 100644
--- a/jjb/global/releng-defaults.yml
+++ b/jjb/global/releng-defaults.yml
@@ -3,15 +3,12 @@
- defaults:
name: global
- logrotate:
- daysToKeep: 60
- numToKeep: 200
- artifactDaysToKeep: 30
- artifactNumToKeep: 100
-
wrappers:
- ssh-agent-wrapper
project-type: freestyle
node: master
+
+ properties:
+ - logrotate-default
diff --git a/jjb/global/releng-macros.yml b/jjb/global/releng-macros.yml
index 404c3dd69..d5eb0c974 100644
--- a/jjb/global/releng-macros.yml
+++ b/jjb/global/releng-macros.yml
@@ -26,14 +26,23 @@
name: GS_BASE_PROXY
default: build.opnfv.org/artifacts.opnfv.org/$PROJECT
description: "URL to Google Storage proxy"
-
-- parameter:
- name: gerrit-parameter
- parameters:
+ - string:
+ name: BRANCH
+ default: '{branch}'
+ description: "JJB configured BRANCH parameter (e.g. master, stable/danube)"
- string:
name: GERRIT_BRANCH
default: '{branch}'
- description: "JJB configured GERRIT_BRANCH parameter"
+ description: "JJB configured GERRIT_BRANCH parameter (deprecated)"
+
+- property:
+ name: logrotate-default
+ properties:
+ - build-discarder:
+ days-to-keep: 60
+ num-to-keep: 200
+ artifact-days-to-keep: 60
+ artifact-num-to-keep: 200
- scm:
name: git-scm
@@ -42,7 +51,7 @@
credentials-id: '$SSH_CREDENTIAL_ID'
url: '$GIT_BASE'
branches:
- - 'origin/$GERRIT_BRANCH'
+ - 'origin/$BRANCH'
timeout: 15
- scm:
@@ -52,15 +61,33 @@
choosing-strategy: 'gerrit'
refspec: '$GERRIT_REFSPEC'
<<: *git-scm-defaults
-
+- scm:
+ name: git-scm-with-submodules
+ scm:
+ - git:
+ credentials-id: '$SSH_CREDENTIAL_ID'
+ url: '$GIT_BASE'
+ refspec: ''
+ branches:
+ - 'refs/heads/{branch}'
+ skip-tag: true
+ wipe-workspace: true
+ submodule:
+ recursive: true
+ timeout: 20
+ shallow-clone: true
- trigger:
name: 'daily-trigger-disabled'
triggers:
- timed: ''
-# NOTE: unused macro, but we may use this for some jobs.
- trigger:
- name: gerrit-trigger-patch-submitted
+ name: 'weekly-trigger-disabled'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: gerrit-trigger-patchset-created
triggers:
- gerrit:
server-name: 'gerrit.opnfv.org'
@@ -72,16 +99,25 @@
- 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: '{name}'
+ project-pattern: '{project}'
branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
+ file-paths:
+ - compare-type: 'ANT'
+ pattern: '{files}'
+ skip-vote:
+ successful: true
+ failed: true
+ unstable: true
+ notbuilt: true
-# NOTE: unused macro, but we may use this for some jobs.
- trigger:
- name: gerrit-trigger-patch-merged
+ name: gerrit-trigger-change-merged
triggers:
- gerrit:
server-name: 'gerrit.opnfv.org'
@@ -91,7 +127,7 @@
comment-contains-value: 'remerge'
projects:
- project-compare-type: 'ANT'
- project-pattern: '{name}'
+ project-pattern: '{project}'
branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
@@ -118,7 +154,6 @@
failed: true
unstable: true
notbuilt: true
- silent-start: true
- wrapper:
name: ssh-agent-wrapper
@@ -410,6 +445,12 @@
sed -r -i '4,$s/^/ /g' lint.log
fi
+- builder:
+ name: clean-workspace-log
+ builders:
+ - shell: |
+ find $WORKSPACE -type f -name '*.log' | xargs rm -f
+
- publisher:
name: archive-artifacts
publishers:
diff --git a/jjb/global/slave-params.yml b/jjb/global/slave-params.yml
index 9d08487a3..4b3eaaabf 100644
--- a/jjb/global/slave-params.yml
+++ b/jjb/global/slave-params.yml
@@ -178,6 +178,23 @@
name: EXTERNAL_NETWORK
default: ext-net
description: "External network floating ips"
+- parameter:
+ name: 'daisy-baremetal-defaults'
+ parameters:
+ - node:
+ name: SLAVE_NAME
+ description: 'Slave name on Jenkins'
+ allowed-slaves:
+ - zte-pod2
+ default-slaves:
+ - zte-pod2
+ - label:
+ name: SLAVE_LABEL
+ default: 'daisy-baremetal'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
#####################################################
# Parameters for CI virtual PODs
#####################################################
@@ -239,15 +256,33 @@
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
+- parameter:
+ name: 'daisy-virtual-defaults'
+ parameters:
+ - node:
+ name: SLAVE_NAME
+ description: 'Slave name on Jenkins'
+ allowed-slaves:
+ - zte-virtual1
+ - zte-virtual2
+ default-slaves:
+ - zte-virtual1
+ - label:
+ name: SLAVE_LABEL
+ default: 'daisy-virtual'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
#####################################################
# Parameters for build slaves
#####################################################
- parameter:
- name: 'opnfv-build-arm-defaults'
+ name: 'opnfv-build-enea-defaults'
parameters:
- label:
name: SLAVE_LABEL
- default: 'opnfv-build-arm'
+ default: 'opnfv-build-enea'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -314,6 +349,21 @@
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
+- parameter:
+ name: 'opnfv-build-ubuntu-arm-defaults'
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'opnfv-build-ubuntu-arm'
+ description: 'Slave label on Jenkins'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+ - string:
+ name: BUILD_DIRECTORY
+ default: $WORKSPACE/build_output
+ description: "Directory where the build artifact will be located upon the completion of the build."
#####################################################
# Parameters for none-CI PODs
#####################################################
@@ -332,6 +382,20 @@
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
- parameter:
+ name: 'cengn-pod1-defaults'
+ parameters:
+ - node:
+ name: SLAVE_NAME
+ description: 'Slave name on Jenkins'
+ allowed-slaves:
+ - cengn-pod1
+ default-slaves:
+ - cengn-pod1
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+- parameter:
name: 'intel-pod1-defaults'
parameters:
- node:
@@ -378,15 +442,29 @@
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
- parameter:
- name: 'intel-pod3-defaults'
+ name: 'intel-pod10-defaults'
parameters:
- node:
name: SLAVE_NAME
description: 'Slave name on Jenkins'
allowed-slaves:
- - intel-pod3
+ - intel-pod10
default-slaves:
- - intel-pod3
+ - intel-pod10
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+- parameter:
+ name: 'intel-pod12-defaults'
+ parameters:
+ - node:
+ name: SLAVE_NAME
+ description: 'Slave name on Jenkins'
+ allowed-slaves:
+ - intel-pod12
+ default-slaves:
+ - intel-pod12
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -426,15 +504,28 @@
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
- parameter:
- name: 'huawei-pod5-defaults'
+ name: 'intel-pod8-defaults'
+ parameters:
+ - node:
+ name: SLAVE_NAME
+ description: 'Slave name on Jenkins'
+ allowed-slaves:
+ - intel-pod8
+ default-slaves:
+ - intel-pod8
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+- parameter:
+ name: 'huawei-virtual7-defaults'
parameters:
- node:
name: SLAVE_NAME
description: 'Slave name on Jenkins'
allowed-slaves:
- - huawei-pod5
+ - huawei-virtual7
default-slaves:
- - huawei-pod5
+ - huawei-virtual7
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -670,15 +761,17 @@
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
- parameter:
- name: 'ool-virtual1-defaults'
+ name: 'ool-defaults'
parameters:
- node:
name: SLAVE_NAME
description: 'Slave name on Jenkins'
allowed-slaves:
- ool-virtual1
+ - ool-virtual2
+ - ool-virtual3
default-slaves:
- - ool-virtual1
+ - '{default-slave}'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -688,6 +781,21 @@
default: /root/.ssh/id_rsa
description: 'SSH key to be used'
- parameter:
+ name: 'ool-virtual1-defaults'
+ parameters:
+ - 'ool-defaults':
+ default-slave: 'ool-virtual1'
+- parameter:
+ name: 'ool-virtual2-defaults'
+ parameters:
+ - 'ool-defaults':
+ default-slave: 'ool-virtual2'
+- parameter:
+ name: 'ool-virtual3-defaults'
+ parameters:
+ - 'ool-defaults':
+ default-slave: 'ool-virtual3'
+- parameter:
name: 'multisite-virtual-defaults'
parameters:
- label:
@@ -708,6 +816,26 @@
default: https://git.opendaylight.org/gerrit/p/$PROJECT.git
description: 'Git URL to use on this Jenkins Slave'
- parameter:
+ name: 'ericsson-virtual12-defaults'
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'ericsson-virtual12'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+- parameter:
+ name: 'ericsson-virtual13-defaults'
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'ericsson-virtual13'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+- parameter:
name: 'odl-netvirt-virtual-defaults'
parameters:
- label:
diff --git a/jjb/infra/bifrost-verify-jobs.yml b/jjb/infra/bifrost-verify-jobs.yml
index 8184b6343..d595d4bef 100644
--- a/jjb/infra/bifrost-verify-jobs.yml
+++ b/jjb/infra/bifrost-verify-jobs.yml
@@ -38,9 +38,6 @@
dib-os-element: 'opensuse-minimal'
dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl'
extra-dib-elements: 'openssh-server'
- vm-disk: '30'
- vm-memory: '4096'
- vm-cpu: '2'
#--------------------------------
# type
#--------------------------------
@@ -57,9 +54,10 @@
#--------------------------------
- defaults:
name: vm_defaults
- vm-disk: '100'
- vm-memory: '8192'
- vm-cpu: '4'
+ vm-disk: '30'
+ vm-disk-cache: 'unsafe'
+ vm-memory: '4096'
+ vm-cpu: '2'
#--------------------------------
# job templates
@@ -74,6 +72,7 @@
concurrent: false
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
blocking-jobs:
@@ -109,6 +108,9 @@
name: VM_DISK
default: '{vm-disk}'
- string:
+ name: VM_DISK_CACHE
+ default: '{vm-disk-cache}'
+ - string:
name: VM_MEMORY
default: '{vm-memory}'
- string:
@@ -129,7 +131,7 @@
url: '$PROJECT_REPO'
refspec: '$GERRIT_REFSPEC'
branches:
- - 'origin/$GERRIT_BRANCH'
+ - 'origin/$BRANCH'
skip-tag: true
choosing-strategy: 'gerrit'
timeout: 10
@@ -145,7 +147,7 @@
publishers:
- email:
- recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com zhang.jun3g@zte.com.cn
+ recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com julienjut@gmail.com
#--------------------------------
# trigger macros
#--------------------------------
@@ -201,8 +203,6 @@
file-paths:
- compare-type: ANT
pattern: 'prototypes/bifrost/**'
- - compare-type: ANT
- pattern: 'jjb/infra/**'
readable-message: true
#---------------------------
diff --git a/jjb/infra/bifrost-verify.sh b/jjb/infra/bifrost-verify.sh
index dbe39762c..4115ffcc4 100755
--- a/jjb/infra/bifrost-verify.sh
+++ b/jjb/infra/bifrost-verify.sh
@@ -17,44 +17,56 @@ function upload_logs() {
BIFROST_CONSOLE_LOG="${BUILD_URL}/consoleText"
BIFROST_GS_URL=${BIFROST_LOG_URL/http:/gs:}
- echo "Uploading build logs to ${BIFROST_LOG_URL}"
-
- echo "Uploading console output"
- curl -s -L ${BIFROST_CONSOLE_LOG} > ${WORKSPACE}/build_log.txt
- gsutil -q cp -Z ${WORKSPACE}/build_log.txt ${BIFROST_GS_URL}/build_log.txt
- rm ${WORKSPACE}/build_log.txt
-
- [[ ! -d ${WORKSPACE}/logs ]] && exit 0
-
- pushd ${WORKSPACE}/logs/ &> /dev/null
- for x in *.log; do
- echo "Compressing and uploading $x"
- gsutil -q cp -Z ${x} ${BIFROST_GS_URL}/${x}
- done
+ # Make sure the old landing page is gone in case
+ # we break later on. We don't want to publish
+ # stale information.
+ # TODO: Maybe cleanup the entire $BIFROST_GS_URL directory
+ # before we upload the new data.
+ gsutil -q rm ${BIFROST_GS_URL}/index.html || true
+
+ echo "Uploading collected bifrost build logs to ${BIFROST_LOG_URL}"
+
+ if [[ -d ${WORKSPACE}/logs ]]; then
+ pushd ${WORKSPACE}/logs &> /dev/null
+ for x in *.log; do
+ echo "Compressing and uploading $x"
+ gsutil -q cp -Z ${x} ${BIFROST_GS_URL}/${x}
+ done
+ popd &> /dev/null
+ fi
- echo "Generating the landing page"
- cat > index.html <<EOF
+ echo "Generating the ${BIFROST_LOG_URL}/index.html landing page"
+ cat > ${WORKSPACE}/index.html <<EOF
<html>
<h1>Build results for <a href=https://$GERRIT_NAME/#/c/$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER>$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER</a></h1>
-<h2>Job: $JOB_NAME</h2>
+<h2>Job: <a href=${BUILD_URL}>$JOB_NAME</a></h2>
<ul>
<li><a href=${BIFROST_LOG_URL}/build_log.txt>build_log.txt</a></li>
EOF
- for x in *.log; do
- echo "<li><a href=${BIFROST_LOG_URL}/${x}>${x}</a></li>" >> index.html
- done
+ if [[ -d ${WORKSPACE}/logs ]]; then
+ pushd ${WORKSPACE}/logs &> /dev/null
+ for x in *.log; do
+ echo "<li><a href=${BIFROST_LOG_URL}/${x}>${x}</a></li>" >> ${WORKSPACE}/index.html
+ done
+ popd &> /dev/null
+ fi
- cat >> index.html << EOF
+ cat >> ${WORKSPACE}/index.html << EOF
</ul>
</html>
EOF
- gsutil -q cp index.html ${BIFROST_GS_URL}/index.html
-
- rm index.html
+ # Finally, download and upload the entire build log so we can retain
+ # as much build information as possible
+ echo "Uploading the final console output"
+ curl -s -L ${BIFROST_CONSOLE_LOG} > ${WORKSPACE}/build_log.txt
+ gsutil -q cp -Z ${WORKSPACE}/build_log.txt ${BIFROST_GS_URL}/build_log.txt
+ rm ${WORKSPACE}/build_log.txt
- popd &> /dev/null
+ # Upload landing page
+ gsutil -q cp ${WORKSPACE}/index.html ${BIFROST_GS_URL}/index.html
+ rm ${WORKSPACE}/index.html
}
function fix_ownership() {
diff --git a/jjb/ipv6/ipv6.yml b/jjb/ipv6/ipv6.yml
index da54c521e..a6745cd99 100644
--- a/jjb/ipv6/ipv6.yml
+++ b/jjb/ipv6/ipv6.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/joid/joid-daily-jobs.yml b/jjb/joid/joid-daily-jobs.yml
index 91fcc8814..88269d3c5 100644
--- a/jjb/joid/joid-daily-jobs.yml
+++ b/jjb/joid/joid-daily-jobs.yml
@@ -46,6 +46,9 @@
- orange-pod1:
slave-label: orange-pod1
<<: *master
+ - cengn-pod1:
+ slave-label: cengn-pod1
+ <<: *master
#--------------------------------
# scenarios
#--------------------------------
@@ -72,6 +75,10 @@
auto-trigger-name: 'daily-trigger-disabled'
- 'os-ocl-nofeature-noha':
auto-trigger-name: 'daily-trigger-disabled'
+ - 'k8-nosdn-nofeature-noha':
+ auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
+ - 'k8-nosdn-lb-noha':
+ auto-trigger-name: 'daily-trigger-disabled'
jobs:
- 'joid-{scenario}-{pod}-daily-{stream}'
@@ -88,6 +95,7 @@
concurrent: false
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -109,6 +117,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
installer: '{installer}'
@@ -157,6 +166,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -178,7 +188,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults':
@@ -226,6 +235,10 @@
name: 'joid-os-nosdn-nofeature-ha-orange-pod1-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-nosdn-nofeature-ha-cengn-pod1-master-trigger'
+ triggers:
+ - timed: '5 2 * * *'
# os-nosdn-nofeature-ha trigger - branch: danube
- trigger:
name: 'joid-os-nosdn-nofeature-ha-baremetal-danube-trigger'
@@ -239,6 +252,10 @@
name: 'joid-os-nosdn-nofeature-ha-orange-pod1-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-nosdn-nofeature-ha-cengn-pod1-danube-trigger'
+ triggers:
+ - timed: ''
# os-odl_l2-nofeature-ha trigger - branch: master
- trigger:
name: 'joid-os-odl_l2-nofeature-ha-baremetal-master-trigger'
@@ -252,6 +269,10 @@
name: 'joid-os-odl_l2-nofeature-ha-orange-pod1-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-odl_l2-nofeature-ha-cengn-pod1-master-trigger'
+ triggers:
+ - timed: '5 7 * * *'
# os-odl_l2-nofeature-ha trigger - branch: danube
- trigger:
name: 'joid-os-odl_l2-nofeature-ha-baremetal-danube-trigger'
@@ -265,6 +286,10 @@
name: 'joid-os-odl_l2-nofeature-ha-orange-pod1-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-odl_l2-nofeature-ha-cengn-pod1-danube-trigger'
+ triggers:
+ - timed: ''
# os-onos-nofeature-ha trigger - branch: master
- trigger:
name: 'joid-os-onos-nofeature-ha-baremetal-master-trigger'
@@ -278,6 +303,10 @@
name: 'joid-os-onos-nofeature-ha-orange-pod1-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-onos-nofeature-ha-cengn-pod1-master-trigger'
+ triggers:
+ - timed: '5 12 * * *'
# os-onos-nofeature-ha trigger - branch: danube
- trigger:
name: 'joid-os-onos-nofeature-ha-baremetal-danube-trigger'
@@ -291,6 +320,10 @@
name: 'joid-os-onos-nofeature-ha-orange-pod1-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-onos-nofeature-ha-cengn-pod1-danube-trigger'
+ triggers:
+ - timed: ''
# os-onos-sfc-ha trigger - branch: master
- trigger:
name: 'joid-os-onos-sfc-ha-baremetal-master-trigger'
@@ -304,6 +337,10 @@
name: 'joid-os-onos-sfc-ha-orange-pod1-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-onos-sfc-ha-cengn-pod1-master-trigger'
+ triggers:
+ - timed: '5 17 * * *'
# os-onos-sfc-ha trigger - branch: danube
- trigger:
name: 'joid-os-onos-sfc-ha-baremetal-danube-trigger'
@@ -317,6 +354,10 @@
name: 'joid-os-onos-sfc-ha-orange-pod1-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-onos-sfc-ha-cengn-pod1-danube-trigger'
+ triggers:
+ - timed: ''
# os-nosdn-lxd-noha trigger - branch: master
- trigger:
name: 'joid-os-nosdn-lxd-noha-baremetal-master-trigger'
@@ -330,6 +371,10 @@
name: 'joid-os-nosdn-lxd-noha-orange-pod1-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-nosdn-lxd-noha-cengn-pod1-master-trigger'
+ triggers:
+ - timed: '5 22 * * *'
# os-nosdn-lxd-noha trigger - branch: danube
- trigger:
name: 'joid-os-nosdn-lxd-noha-baremetal-danube-trigger'
@@ -343,6 +388,10 @@
name: 'joid-os-nosdn-lxd-noha-orange-pod1-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-nosdn-lxd-noha-cengn-pod1-danube-trigger'
+ triggers:
+ - timed: ''
# os-nosdn-lxd-ha trigger - branch: master
- trigger:
name: 'joid-os-nosdn-lxd-ha-baremetal-master-trigger'
@@ -356,6 +405,10 @@
name: 'joid-os-nosdn-lxd-ha-orange-pod1-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-nosdn-lxd-ha-cengn-pod1-master-trigger'
+ triggers:
+ - timed: '5 10 * * *'
# os-nosdn-lxd-ha trigger - branch: danube
- trigger:
name: 'joid-os-nosdn-lxd-ha-baremetal-danube-trigger'
@@ -369,6 +422,10 @@
name: 'joid-os-nosdn-lxd-ha-orange-pod1-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-nosdn-lxd-ha-cengn-pod1-danube-trigger'
+ triggers:
+ - timed: ''
# os-nosdn-nofeature-noha trigger - branch: master
- trigger:
name: 'joid-os-nosdn-nofeature-noha-baremetal-master-trigger'
@@ -382,6 +439,10 @@
name: 'joid-os-nosdn-nofeature-noha-orange-pod1-master-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-nosdn-nofeature-noha-cengn-pod1-master-trigger'
+ triggers:
+ - timed: '5 4 * * *'
# os-nosdn-nofeature-noha trigger - branch: danube
- trigger:
name: 'joid-os-nosdn-nofeature-noha-baremetal-danube-trigger'
@@ -395,3 +456,75 @@
name: 'joid-os-nosdn-nofeature-noha-orange-pod1-danube-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-os-nosdn-nofeature-noha-cengn-pod1-danube-trigger'
+ triggers:
+ - timed: ''
+# k8-nosdn-nofeature-noha trigger - branch: master
+- trigger:
+ name: 'joid-k8-nosdn-nofeature-noha-baremetal-master-trigger'
+ triggers:
+ - timed: '5 15 * * *'
+- trigger:
+ name: 'joid-k8-nosdn-nofeature-noha-virtual-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'joid-k8-nosdn-nofeature-noha-orange-pod1-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'joid-k8-nosdn-nofeature-noha-cengn-pod1-master-trigger'
+ triggers:
+ - timed: '5 15 * * *'
+# k8-nosdn-nofeature-noha trigger - branch: danube
+- trigger:
+ name: 'joid-k8-nosdn-nofeature-noha-baremetal-danube-trigger'
+ triggers:
+ - timed: '0 15 * * *'
+- trigger:
+ name: 'joid-k8-nosdn-nofeature-noha-virtual-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'joid-k8-nosdn-nofeature-noha-orange-pod1-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'joid-k8-nosdn-nofeature-noha-cengn-pod1-danube-trigger'
+ triggers:
+ - timed: ''
+# k8-nosdn-lb-noha trigger - branch: master
+- trigger:
+ name: 'joid-k8-nosdn-lb-noha-baremetal-master-trigger'
+ triggers:
+ - timed: '5 20 * * *'
+- trigger:
+ name: 'joid-k8-nosdn-lb-noha-virtual-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'joid-k8-nosdn-lb-noha-orange-pod1-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'joid-k8-nosdn-lb-noha-cengn-pod1-master-trigger'
+ triggers:
+ - timed: '5 20 * * *'
+# k8-nosdn-lb-noha trigger - branch: danube
+- trigger:
+ name: 'joid-k8-nosdn-lb-noha-baremetal-danube-trigger'
+ triggers:
+ - timed: '0 20 * * *'
+- trigger:
+ name: 'joid-k8-nosdn-lb-noha-virtual-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'joid-k8-nosdn-lb-noha-orange-pod1-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'joid-k8-nosdn-lb-noha-cengn-pod1-danube-trigger'
+ triggers:
+ - timed: ''
diff --git a/jjb/joid/joid-deploy.sh b/jjb/joid/joid-deploy.sh
index 05c2de1fc..e197dbd8c 100644
--- a/jjb/joid/joid-deploy.sh
+++ b/jjb/joid/joid-deploy.sh
@@ -45,17 +45,24 @@ export POD_NAME=${POD/-}
##
cd $WORKSPACE/ci
-if [ -e "$LAB_CONFIG/environments.yaml" ] && [ "$MAAS_REINSTALL" == "false" ]; then
+
+if [ -e "$LAB_CONFIG/deployconfig.yaml" ] && [ "$MAAS_REINSTALL" == "false" ]; then
echo "------ Recover Juju environment to use MAAS ------"
- cp $LAB_CONFIG/environments.yaml .
- cp $LAB_CONFIG/deployment.yaml .
- if [ -e $LAB_CONFIG/deployconfig.yaml ]; then
+ if [ ! -e deployconfig.yaml ]; then
cp $LAB_CONFIG/deployconfig.yaml .
+ cp $LAB_CONFIG/deployment.yaml .
+ cp $LAB_CONFIG/labconfig.yaml .
fi
else
- echo "------ Redeploy MAAS ------"
- ./00-maasdeploy.sh $POD_NAME
- exit_on_error $? "MAAS Deploy FAILED"
+ if ["$NODE_NAME" == "default" ]; then
+ echo "------ Redeploy MAAS ------"
+ ./03-maasdeploy.sh default
+ exit_on_error $? "MAAS Deploy FAILED"
+ else
+ echo "------ Redeploy MAAS ------"
+ ./03-maasdeploy.sh custom $LAB_CONFIG/labconfig.yaml
+ exit_on_error $? "MAAS Deploy FAILED"
+ fi
fi
##
@@ -64,8 +71,9 @@ fi
# Based on scenario naming we can get joid options
# naming convention:
-# os-<controller>-<nfvfeature>-<mode>[-<extrastuff>]
+# <model>-<controller>-<nfvfeature>-<mode>[-<extrastuff>]
# With parameters:
+# model=(os|k8)
# controller=(nosdn|odl_l3|odl_l2|onos|ocl)
# No odl_l3 today
# nfvfeature=(kvm|ovs|dpdk|nofeature)
@@ -77,6 +85,7 @@ fi
IFS='-' read -r -a DEPLOY_OPTIONS <<< "${DEPLOY_SCENARIO}--"
#last -- need to avoid nounset error
+JOID_MODEL=${DEPLOY_OPTIONS[0]}
SDN_CONTROLLER=${DEPLOY_OPTIONS[1]}
NFV_FEATURES=${DEPLOY_OPTIONS[2]}
HA_MODE=${DEPLOY_OPTIONS[3]}
@@ -103,49 +112,47 @@ fi
## Configure Joid deployment
##
-echo "------ Deploy with juju ------"
-echo "Execute: ./deploy.sh -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME -d $UBUNTU_DISTRO -f $NFV_FEATURES"
+if [ "$JOID_MODEL" == 'k8' ]; then
+ echo "------ Deploy with juju ------"
+ echo "Execute: ./deploy.sh -m $JOID_MODEL -s $SDN_CONTROLLER -l $POD_NAME -d $UBUNTU_DISTRO -f $NFV_FEATURES"
-./deploy.sh -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME -d $UBUNTU_DISTRO -f $NFV_FEATURES
-exit_on_error $? "Main deploy FAILED"
+ ./deploy.sh -m kubernetes -s $SDN_CONTROLLER -l $POD_NAME -d $UBUNTU_DISTRO -f $NFV_FEATURES
+ exit_on_error $? "Main deploy FAILED"
+fi
##
## Set Admin RC
##
-JOID_ADMIN_OPENRC=$LAB_CONFIG/admin-openrc
-echo "------ Create OpenRC file [$JOID_ADMIN_OPENRC] ------"
-
-# get controller IP
-case "$SDN_CONTROLLER" in
- "odl")
- SDN_CONTROLLER_IP=$(juju status odl-controller/0 |grep public-address|sed -- 's/.*\: //')
- ;;
- "onos")
- SDN_CONTROLLER_IP=$(juju status onos-controller/0 |grep public-address|sed -- 's/.*\: //')
- ;;
- *)
- SDN_CONTROLLER_IP='none'
- ;;
-esac
-SDN_PASSWORD='admin'
-
-# export the openrc file by getting the one generated by joid and add SDN
-# controller for Functest
-cp ./cloud/admin-openrc $JOID_ADMIN_OPENRC
-cat << EOF >> $JOID_ADMIN_OPENRC
-export SDN_CONTROLLER=$SDN_CONTROLLER_IP
-export SDN_PASSWORD=$SDN_PASSWORD
-EOF
-
-##
-## Backup local juju env
-##
+if [ "$JOID_MODEL" == 'os' ]; then
+ echo "------ Deploy with juju ------"
+ echo "Execute: ./deploy.sh -m $JOID_MODEL -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME -d $UBUNTU_DISTRO -f $NFV_FEATURES"
+
+ ./deploy.sh -m openstack -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME -d $UBUNTU_DISTRO -f $NFV_FEATURES
+ exit_on_error $? "Main deploy FAILED"
+
+ JOID_ADMIN_OPENRC=$LAB_CONFIG/admin-openrc
+ echo "------ Create OpenRC file [$JOID_ADMIN_OPENRC] ------"
+
+ # get controller IP
+ case "$SDN_CONTROLLER" in
+ "odl")
+ SDN_CONTROLLER_IP=$(juju status odl-controller/0 |grep public-address|sed -- 's/.*\: //')
+ ;;
+ "onos")
+ SDN_CONTROLLER_IP=$(juju status onos-controller/0 |grep public-address|sed -- 's/.*\: //')
+ ;;
+ *)
+ SDN_CONTROLLER_IP='none'
+ ;;
+ esac
+ SDN_PASSWORD='admin'
+
+ # export the openrc file by getting the one generated by joid and add SDN
+ # controller for Functest
+ # cp ./cloud/admin-openrc $JOID_ADMIN_OPENRC
+ echo export SDN_CONTROLLER=$SDN_CONTROLLER_IP >> $JOID_ADMIN_OPENRC
+ echo export SDN_PASSWORD=$SDN_PASSWORD >> $JOID_ADMIN_OPENRC
-echo "------ Backup Juju environment ------"
-cp environments.yaml $LAB_CONFIG/
-cp deployment.yaml $LAB_CONFIG/
-if [ -e deployconfig.yaml ]; then
- cp deployconfig.yaml $LAB_CONFIG
fi
##
diff --git a/jjb/joid/joid-verify-jobs.yml b/jjb/joid/joid-verify-jobs.yml
index 6e821a502..7b8ce7701 100644
--- a/jjb/joid/joid-verify-jobs.yml
+++ b/jjb/joid/joid-verify-jobs.yml
@@ -45,6 +45,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -93,7 +94,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'joid-virtual-defaults'
@@ -107,7 +107,7 @@
- name: 'joid-verify-basic-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -120,7 +120,7 @@
- name: 'joid-verify-deploy-virtual-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -134,7 +134,7 @@
- name: 'joid-verify-smoke-test-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
@@ -150,6 +150,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 4
@@ -174,7 +175,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults'
diff --git a/jjb/kvmfornfv/kvmfornfv-upload-artifact.sh b/jjb/kvmfornfv/kvmfornfv-upload-artifact.sh
index 6f8fff3ff..56fb4f9c1 100755
--- a/jjb/kvmfornfv/kvmfornfv-upload-artifact.sh
+++ b/jjb/kvmfornfv/kvmfornfv-upload-artifact.sh
@@ -11,16 +11,17 @@ fi
case "$JOB_TYPE" in
verify)
- OPNFV_ARTIFACT_VERSION="gerrit-$GERRIT_CHANGE_NUMBER"
- GS_UPLOAD_LOCATION="gs://artifacts.opnfv.org/$PROJECT/review/$GERRIT_CHANGE_NUMBER"
- echo "Removing outdated artifacts produced for the previous patch for the change $GERRIT_CHANGE_NUMBER"
- gsutil ls $GS_UPLOAD_LOCATION > /dev/null 2>&1 && gsutil rm -r $GS_UPLOAD_LOCATION
- echo "Uploading artifacts for the change $GERRIT_CHANGE_NUMBER. This could take some time..."
- ;;
+ OPNFV_ARTIFACT_VERSION="gerrit-$GERRIT_CHANGE_NUMBER"
+ GS_UPLOAD_LOCATION="gs://artifacts.opnfv.org/$PROJECT/review/$GERRIT_CHANGE_NUMBER"
+ echo "Removing outdated artifacts produced for the previous patch for the change $GERRIT_CHANGE_NUMBER"
+ gsutil ls $GS_UPLOAD_LOCATION > /dev/null 2>&1 && gsutil rm -r $GS_UPLOAD_LOCATION
+ echo "Uploading artifacts for the change $GERRIT_CHANGE_NUMBER. This could take some time..."
+ ;;
daily)
echo "Uploading daily artifacts This could take some time..."
OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
GS_UPLOAD_LOCATION="gs://$GS_URL/$OPNFV_ARTIFACT_VERSION"
+ GS_LOG_LOCATION="gs://$GS_URL/logs-$(date -u +"%Y-%m-%d")"/
;;
*)
echo "Artifact upload is not enabled for $JOB_TYPE jobs"
@@ -38,10 +39,23 @@ esac
source $WORKSPACE/opnfv.properties
# upload artifacts
-gsutil cp -r $WORKSPACE/build_output/* $GS_UPLOAD_LOCATION > $WORKSPACE/gsutil.log 2>&1
-gsutil -m setmeta -r \
- -h "Cache-Control:private, max-age=0, no-transform" \
- $GS_UPLOAD_LOCATION > /dev/null 2>&1
+if [[ "$PHASE" == "build" ]]; then
+ gsutil cp -r $WORKSPACE/build_output/* $GS_UPLOAD_LOCATION > $WORKSPACE/gsutil.log 2>&1
+ gsutil -m setmeta -r \
+ -h "Cache-Control:private, max-age=0, no-transform" \
+ $GS_UPLOAD_LOCATION > /dev/null 2>&1
+else
+ if [[ "$JOB_TYPE" == "daily" ]]; then
+ log_dir=$WORKSPACE/build_output/log
+ if [[ -d "$log_dir" ]]; then
+ #Uploading logs to artifacts
+ echo "Uploading artifacts for future debugging needs...."
+ gsutil cp -r $WORKSPACE/build_output/log-*.tar.gz $GS_LOG_LOCATION > $WORKSPACE/gsutil.log 2>&1
+ else
+ echo "No test logs/artifacts available for uploading"
+ fi
+ fi
+fi
# upload metadata file for the artifacts built by daily job
if [[ "$JOB_TYPE" == "daily" ]]; then
diff --git a/jjb/kvmfornfv/kvmfornfv.yml b/jjb/kvmfornfv/kvmfornfv.yml
index 60f8de8c4..a782ee0fa 100644
--- a/jjb/kvmfornfv/kvmfornfv.yml
+++ b/jjb/kvmfornfv/kvmfornfv.yml
@@ -19,7 +19,7 @@
- 'build':
slave-label: 'opnfv-build-ubuntu'
- 'test':
- slave-label: 'intel-pod1'
+ slave-label: 'intel-pod10'
#####################################
# patch verification phases
#####################################
@@ -48,6 +48,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 3
@@ -56,7 +57,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -90,25 +90,25 @@
- name: 'kvmfornfv-verify-build-{stream}'
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
+ BRANCH=$BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ node-parameters: false
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: test
+ condition: SUCCESSFUL
+ projects:
+ - name: 'kvmfornfv-verify-test-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
node-parameters: false
kill-phase-on: FAILURE
abort-all-job: true
-# - multijob:
-# name: test
-# condition: SUCCESSFUL
-# projects:
-# - name: 'kvmfornfv-verify-test-{stream}'
-# current-parameters: false
-# predefined-parameters: |
-# GERRIT_BRANCH=$GERRIT_BRANCH
-# GERRIT_REFSPEC=$GERRIT_REFSPEC
-# GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
-# node-parameters: false
-# kill-phase-on: FAILURE
-# abort-all-job: true
- job-template:
name: 'kvmfornfv-verify-{phase}-{stream}'
@@ -127,11 +127,14 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- 'kvmfornfv-defaults':
gs-pathname: '{gs-pathname}'
+ - string:
+ name: PHASE
+ default: '{phase}'
+ description: "Execution of kvmfornfv daily '{phase}' job ."
builders:
- description-setter:
@@ -146,7 +149,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- 'kvmfornfv-defaults':
@@ -185,7 +187,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- 'kvmfornfv-defaults':
@@ -194,8 +195,8 @@
scm:
- git-scm
-# triggers:
-# - timed: '@midnight'
+ triggers:
+ - timed: '@midnight'
builders:
- description-setter:
@@ -259,7 +260,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
- 'kvmfornfv-defaults':
@@ -268,6 +268,10 @@
name: TEST_NAME
default: '{testname}'
description: "Daily job to execute kvmfornfv '{testname}' testcase."
+ - string:
+ name: PHASE
+ default: '{phase}'
+ description: "Execution of kvmfornfv daily '{phase}' job ."
builders:
- description-setter:
@@ -304,6 +308,8 @@
!include-raw: ./kvmfornfv-download-artifact.sh
- shell:
!include-raw: ./kvmfornfv-test.sh
+ - shell:
+ !include-raw: ./kvmfornfv-upload-artifact.sh
- builder:
name: 'kvmfornfv-packet_forward-daily-build-macro'
builders:
diff --git a/jjb/models/models.yml b/jjb/models/models.yml
new file mode 100644
index 000000000..f419c8821
--- /dev/null
+++ b/jjb/models/models.yml
@@ -0,0 +1,67 @@
+###################################################
+# All the jobs except verify have been removed!
+# They will only be enabled on request by projects!
+###################################################
+- project:
+ name: models
+
+ project: '{name}'
+
+ jobs:
+ - 'models-verify-{stream}'
+
+ stream:
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+
+- job-template:
+ name: 'models-verify-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
+
+ scm:
+ - git-scm-gerrit
+
+ triggers:
+ - gerrit:
+ server-name: 'gerrit.opnfv.org'
+ 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}'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**|.gitignore'
+
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ shellcheck -f tty tests/*.sh
diff --git a/jjb/moon/moon.yml b/jjb/moon/moon.yml
index 15c3ddec8..a318bc54d 100644
--- a/jjb/moon/moon.yml
+++ b/jjb/moon/moon.yml
@@ -17,7 +17,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/multisite/fuel-deploy-for-multisite.sh b/jjb/multisite/fuel-deploy-for-multisite.sh
new file mode 100755
index 000000000..d8b40517c
--- /dev/null
+++ b/jjb/multisite/fuel-deploy-for-multisite.sh
@@ -0,0 +1,121 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2016 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 nounset
+set -o pipefail
+
+# do not continue with the deployment if FRESH_INSTALL is not requested
+if [[ "$FRESH_INSTALL" == "true" ]]; then
+ echo "Fresh install requested. Proceeding with the installation."
+else
+ echo "Fresh install is not requested. Skipping the installation."
+ exit 0
+fi
+
+export TERM="vt220"
+
+# get the latest successful job console log and extract the properties filename
+FUEL_DEPLOY_BUILD_URL="https://build.opnfv.org/ci/job/fuel-deploy-virtual-daily-master/lastSuccessfulBuild/consoleText"
+FUEL_PROPERTIES_FILE=$(curl -s -L ${FUEL_DEPLOY_BUILD_URL} | grep 'ISO:' | awk '{print $2}' | sed 's/iso/properties/g')
+if [[ -z "FUEL_PROPERTIES_FILE" ]]; then
+ echo "Unable to extract the url to Fuel ISO properties from ${FUEL_DEPLOY_URL}"
+ exit 1
+fi
+curl -L -s -o $WORKSPACE/latest.properties http://artifacts.opnfv.org/fuel/$FUEL_PROPERTIES_FILE
+
+# source the file so we get OPNFV vars
+source latest.properties
+
+# echo the info about artifact that is used during the deployment
+echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment"
+
+# download the iso
+echo "Downloading the ISO using the link http://$OPNFV_ARTIFACT_URL"
+curl -L -s -o $WORKSPACE/opnfv.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
+
+
+# set deployment parameters
+DEPLOY_SCENARIO="os-nosdn-nofeature-noha"
+export TMPDIR=$HOME/tmpdir
+BRIDGE=${BRIDGE:-pxebr}
+LAB_NAME=${NODE_NAME/-*}
+POD_NAME=${NODE_NAME/*-}
+
+if [[ "$NODE_NAME" =~ "virtual" ]]; then
+ POD_NAME="virtual_kvm"
+fi
+
+# we currently support ericsson, intel, lf and zte labs
+if [[ ! "$LAB_NAME" =~ (ericsson|intel|lf|zte) ]]; then
+ echo "Unsupported/unidentified lab $LAB_NAME. Cannot continue!"
+ exit 1
+else
+ echo "Using configuration for $LAB_NAME"
+fi
+
+# create TMPDIR if it doesn't exist
+export TMPDIR=$HOME/tmpdir
+mkdir -p $TMPDIR
+
+# change permissions down to TMPDIR
+chmod a+x $HOME
+chmod a+x $TMPDIR
+
+# clone fuel repo and checkout the sha1 that corresponds to the ISO
+echo "Cloning fuel repo"
+git clone https://gerrit.opnfv.org/gerrit/p/fuel.git fuel
+cd $WORKSPACE/fuel
+echo "Checking out $OPNFV_GIT_SHA1"
+git checkout $OPNFV_GIT_SHA1 --quiet
+
+# clone the securedlab repo
+cd $WORKSPACE
+echo "Cloning securedlab repo ${GIT_BRANCH##origin/}"
+git clone ssh://jenkins-ericsson@gerrit.opnfv.org:29418/securedlab --quiet \
+ --branch ${GIT_BRANCH##origin/}
+
+# log file name
+FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz"
+
+# construct the command
+DEPLOY_COMMAND="sudo $WORKSPACE/fuel/ci/deploy.sh -b file://$WORKSPACE/securedlab \
+ -l $LAB_NAME -p $POD_NAME -s $DEPLOY_SCENARIO -i file://$WORKSPACE/opnfv.iso \
+ -H -B $BRIDGE -S $TMPDIR -L $WORKSPACE/$FUEL_LOG_FILENAME"
+
+# log info to console
+echo "Deployment parameters"
+echo "--------------------------------------------------------"
+echo "Scenario: $DEPLOY_SCENARIO"
+echo "Lab: $LAB_NAME"
+echo "POD: $POD_NAME"
+echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}"
+echo
+echo "Starting the deployment using $INSTALLER_TYPE. This could take some time..."
+echo "--------------------------------------------------------"
+echo
+
+# start the deployment
+echo "Issuing command"
+echo "$DEPLOY_COMMAND"
+echo
+
+$DEPLOY_COMMAND
+exit_code=$?
+
+echo
+echo "--------------------------------------------------------"
+echo "Deployment is done!"
+
+if [[ $exit_code -ne 0 ]]; then
+ echo "Deployment failed!"
+ exit $exit_code
+else
+ echo "Deployment is successful!"
+ exit 0
+fi
diff --git a/jjb/multisite/multisite-daily-jobs.yml b/jjb/multisite/multisite-daily-jobs.yml
index cfb40a1fa..6b022fd75 100644
--- a/jjb/multisite/multisite-daily-jobs.yml
+++ b/jjb/multisite/multisite-daily-jobs.yml
@@ -8,19 +8,23 @@
- 'multisite-{phase}-{stream}'
phase:
- - 'fuel-deploy-regionone-virtual'
- - 'fuel-deploy-regiontwo-virtual'
- - 'register-endpoints'
- - 'update-auth'
- - 'kingbird-deploy-virtual'
- - 'kingbird-functest'
+ - 'fuel-deploy-regionone-virtual':
+ slave-label: ericsson-virtual12
+ - 'fuel-deploy-regiontwo-virtual':
+ slave-label: ericsson-virtual13
+ - 'register-endpoints':
+ slave-label: ericsson-virtual12
+ - 'update-auth':
+ slave-label: ericsson-virtual13
+ - 'kingbird-deploy-virtual':
+ slave-label: ericsson-virtual12
stream:
- master:
branch: '{stream}'
gs-pathname: ''
disabled: false
- timed: '#@midnight'
+ timed: '@midnight'
- job-template:
name: 'multisite-kingbird-virtual-daily-{stream}'
@@ -34,13 +38,16 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
+ - choice:
+ name: FRESH_INSTALL
+ choices:
+ - 'true'
+ - 'false'
- string:
name: KINGBIRD_LOG_FILE
default: $WORKSPACE/kingbird.log
- - 'multisite-virtual-defaults'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-multisite-noha'
+ - 'opnfv-build-defaults'
triggers:
- timed: '{timed}'
@@ -56,26 +63,28 @@
current-parameters: false
predefined-parameters: |
FUEL_VERSION=latest
- DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+ DEPLOY_SCENARIO=os-nosdn-nofeature-noha
OS_REGION=RegionOne
- REGIONONE_IP=10.2.117.79
- REGIONTWO_IP=10.2.117.181
+ REGIONONE_IP=100.64.209.10
+ REGIONTWO_IP=100.64.209.11
+ FRESH_INSTALL=$FRESH_INSTALL
node-parameters: false
node-label-name: SLAVE_LABEL
- node-label: intel-virtual2
+ node-label: ericsson-virtual12
kill-phase-on: FAILURE
abort-all-job: true
- name: 'multisite-fuel-deploy-regiontwo-virtual-{stream}'
current-parameters: false
predefined-parameters: |
FUEL_VERSION=latest
- DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+ DEPLOY_SCENARIO=os-nosdn-nofeature-noha
OS_REGION=RegionTwo
- REGIONONE_IP=10.2.117.79
- REGIONTWO_IP=10.2.117.181
+ REGIONONE_IP=100.64.209.10
+ REGIONTWO_IP=100.64.209.11
+ FRESH_INSTALL=$FRESH_INSTALL
node-parameters: false
node-label-name: SLAVE_LABEL
- node-label: intel-virtual6
+ node-label: ericsson-virtual13
kill-phase-on: FAILURE
abort-all-job: true
- multijob:
@@ -86,22 +95,24 @@
current-parameters: false
predefined-parameters: |
OS_REGION=RegionOne
- REGIONONE_IP=10.2.117.79
- REGIONTWO_IP=10.2.117.181
+ REGIONONE_IP=100.64.209.10
+ REGIONTWO_IP=100.64.209.11
+ FRESH_INSTALL=$FRESH_INSTALL
node-parameters: false
node-label-name: SLAVE_LABEL
- node-label: intel-virtual2
+ node-label: ericsson-virtual12
kill-phase-on: FAILURE
abort-all-job: true
- name: 'multisite-update-auth-{stream}'
current-parameters: false
predefined-parameters: |
OS_REGION=RegionTwo
- REGIONONE_IP=10.2.117.79
- REGIONTWO_IP=10.2.117.181
+ REGIONONE_IP=100.64.209.10
+ REGIONTWO_IP=100.64.209.11
+ FRESH_INSTALL=$FRESH_INSTALL
node-parameters: false
node-label-name: SLAVE_LABEL
- node-label: intel-virtual6
+ node-label: ericsson-virtual13
kill-phase-on: FAILURE
abort-all-job: true
- multijob:
@@ -112,26 +123,30 @@
current-parameters: false
predefined-parameters: |
OS_REGION=RegionOne
- REGIONONE_IP=10.2.117.79
- REGIONTWO_IP=10.2.117.181
+ REGIONONE_IP=100.64.209.10
+ REGIONTWO_IP=100.64.209.11
+ FRESH_INSTALL=$FRESH_INSTALL
node-parameters: false
node-label-name: SLAVE_LABEL
- node-label: intel-virtual2
+ node-label: ericsson-virtual12
kill-phase-on: FAILURE
abort-all-job: true
- multijob:
name: kingbird-functest
condition: SUCCESSFUL
projects:
- - name: 'multisite-kingbird-functest-{stream}'
+ - name: 'functest-fuel-virtual-suite-{stream}'
current-parameters: false
predefined-parameters: |
+ DEPLOY_SCENARIO='os-nosdn-multisite-noha'
+ FUNCTEST_SUITE_NAME='multisite'
OS_REGION=RegionOne
- REGIONONE_IP=10.2.117.79
- REGIONTWO_IP=10.2.117.181
+ REGIONONE_IP=100.64.209.10
+ REGIONTWO_IP=100.64.209.11
+ FRESH_INSTALL=$FRESH_INSTALL
node-parameters: false
node-label-name: SLAVE_LABEL
- node-label: intel-virtual2
+ node-label: ericsson-virtual12
kill-phase-on: NEVER
abort-all-job: false
@@ -140,6 +155,28 @@
concurrent: false
+ disabled: '{obj:disabled}'
+
+ concurrent: false
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: KINGBIRD_LOG_FILE
+ default: $WORKSPACE/kingbird.log
+ - 'fuel-defaults'
+ - '{slave-label}-defaults'
+ - choice:
+ name: FRESH_INSTALL
+ choices:
+ - 'true'
+ - 'false'
+
+ scm:
+ - git-scm
+
builders:
- description-setter:
description: "Built on $NODE_NAME"
@@ -155,39 +192,57 @@
- builder:
name: 'multisite-fuel-deploy-regionone-virtual-builder'
builders:
+ - shell:
+ !include-raw-escape: ./fuel-deploy-for-multisite.sh
- shell: |
#!/bin/bash
echo "This is where we deploy fuel, extract passwords and save into file"
+
+ cd $WORKSPACE/tools/keystone/
+ ./run.sh -t controller -r fetchpass.sh -o servicepass.ini
+
- builder:
name: 'multisite-fuel-deploy-regiontwo-virtual-builder'
builders:
+ - shell:
+ !include-raw-escape: ./fuel-deploy-for-multisite.sh
- shell: |
#!/bin/bash
echo "This is where we deploy fuel, extract publicUrl, privateUrl, and adminUrl and save into file"
+
+ cd $WORKSPACE/tools/keystone/
+ ./run.sh -t controller -r endpoint.sh -o endpoints.ini
- builder:
name: 'multisite-register-endpoints-builder'
builders:
- copyartifact:
project: 'multisite-fuel-deploy-regiontwo-virtual-{stream}'
which-build: multijob-build
- filter: "RegionTwo-Endpoints.txt"
+ filter: "endpoints.ini"
- shell: |
#!/bin/bash
- echo "This is where we register RegionTwo in RegionOne keystone"
+ echo "This is where we register RegionTwo in RegionOne keystone using endpoints.ini"
+
+ cd $WORKSPACE/tools/keystone/
+ ./run.sh -t controller -r region.sh -d $WORKSPACE/endpoints.ini
- builder:
name: 'multisite-update-auth-builder'
builders:
- copyartifact:
project: 'multisite-fuel-deploy-regionone-virtual-{stream}'
which-build: multijob-build
- filter: "RegionOne-Passwords.txt"
+ filter: "servicepass.ini"
- shell: |
#!/bin/bash
- echo "This is where we read passwords from RegionOne-passwords.txt and replace passwords in RegionTwo"
+ echo "This is where we read passwords from servicepass.ini and replace passwords in RegionTwo"
+
+ cd $WORKSPACE/tools/keystone/
+ ./run.sh -t controller -r writepass.sh -d $WORKSPACE/servicepass.ini
+ ./run.sh -t compute -r writepass.sh -d $WORKSPACE/servicepass.ini
- builder:
name: 'multisite-kingbird-deploy-virtual-builder'
builders:
@@ -195,13 +250,8 @@
#!/bin/bash
echo "This is where we install kingbird"
-- builder:
- name: 'multisite-kingbird-functest-builder'
- builders:
- - shell: |
- #!/bin/bash
-
- echo "This is where we run kingbird-functest"
+ cd $WORKSPACE/tools/kingbird
+ ./deploy.sh
########################
# publisher macros
########################
@@ -209,7 +259,7 @@
name: 'multisite-fuel-deploy-regionone-virtual-publisher'
publishers:
- archive:
- artifacts: '/root/servicepass.ini'
+ artifacts: 'servicepass.ini'
allow-empty: false
only-if-success: true
fingerprint: true
@@ -217,7 +267,7 @@
name: 'multisite-fuel-deploy-regiontwo-virtual-publisher'
publishers:
- archive:
- artifacts: '/root/endpoints.ini'
+ artifacts: 'endpoints.ini'
allow-empty: false
only-if-success: true
fingerprint: true
diff --git a/jjb/multisite/multisite-verify-jobs.yml b/jjb/multisite/multisite-verify-jobs.yml
new file mode 100644
index 000000000..5ecfafb55
--- /dev/null
+++ b/jjb/multisite/multisite-verify-jobs.yml
@@ -0,0 +1,68 @@
+###################################################
+# All the jobs except verify have been removed!
+# They will only be enabled on request by projects!
+###################################################
+- project:
+ name: multisite
+
+ project: '{name}'
+
+ jobs:
+ - 'multisite-verify-{stream}'
+
+ stream:
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ timed: '@midnight'
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: true
+ timed: ''
+
+- job-template:
+ name: 'multisite-verify-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ concurrent: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
+
+ scm:
+ - git-scm-gerrit
+
+ triggers:
+ - gerrit:
+ server-name: 'gerrit.opnfv.org'
+ 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}'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**|.gitignore'
+
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ echo "Hello World"
diff --git a/jjb/multisite/multisite.yml b/jjb/multisite/multisite.yml
deleted file mode 100644
index 6b6406983..000000000
--- a/jjb/multisite/multisite.yml
+++ /dev/null
@@ -1,149 +0,0 @@
-###################################################
-# All the jobs except verify have been removed!
-# They will only be enabled on request by projects!
-###################################################
-- project:
- name: multisite
-
- project: '{name}'
-
- jobs:
- - 'multisite-verify-{stream}'
- - 'multisite-kingbird-daily-{stream}'
- - 'multisite-kingbird-deploy-{stream}'
-
- stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
- timed: '@midnight'
- - danube:
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- disabled: false
- timed: ''
-
-- job-template:
- name: 'multisite-verify-{stream}'
-
- disabled: '{obj:disabled}'
-
- concurrent: true
-
- parameters:
- - project-parameter:
- project: '{project}'
- - gerrit-parameter:
- branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
-
- scm:
- - git-scm-gerrit
-
- triggers:
- - gerrit:
- server-name: 'gerrit.opnfv.org'
- 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}'
- forbidden-file-paths:
- - compare-type: ANT
- pattern: 'docs/**|.gitignore'
-
- builders:
- - shell: |
- #!/bin/bash
-
- echo "Hello World"
-
-- job-template:
- name: 'multisite-kingbird-daily-{stream}'
-
- project-type: freestyle
-
- disabled: '{obj:disabled}'
-
- concurrent: false
-
- parameters:
- - project-parameter:
- project: '{project}'
- - gerrit-parameter:
- branch: '{branch}'
- - string:
- name: KINGBIRD_LOG_FILE
- default: $WORKSPACE/kingbird.log
- - 'intel-virtual6-defaults'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-multisite-ha'
-
- scm:
- - git-scm
-
- triggers:
- - timed: '{timed}'
-
- builders:
- - trigger-builds:
- - project: 'multisite-kingbird-deploy-{stream}'
- current-parameters: true
- same-node: true
- block: true
- - trigger-builds:
- - project: 'functest-fuel-virtual-suite-{stream}'
- current-parameters: true
- predefined-parameters:
- FUNCTEST_SUITE_NAME=multisite
- same-node: true
- block: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
-
-- job-template:
- name: 'multisite-kingbird-deploy-{stream}'
-
- concurrent: false
-
- scm:
- - git-scm-gerrit
-
- builders:
- - 'multisite-kingbird-deploy'
- - 'multisite-kingbird-log-upload'
-
-########################
-# builder macros
-########################
-- builder:
- name: 'multisite-kingbird-deploy'
- builders:
- - shell: |
- #!/bin/bash
-
- $WORKSPACE/tools/kingbird/deploy.sh
-- builder:
- name: 'multisite-kingbird-log-upload'
- builders:
- - shell: |
- #!/bin/bash
-
- echo "Here is where we upload kingbird logs to artifact repo"
- echo "We just check the existence of log file"
- ls -al $KINGBIRD_LOG_FILE
diff --git a/jjb/netready/netready.yml b/jjb/netready/netready.yml
index 3d043f9e3..382434ae6 100644
--- a/jjb/netready/netready.yml
+++ b/jjb/netready/netready.yml
@@ -21,7 +21,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
scm:
- git-scm-gerrit
@@ -65,7 +64,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- 'netready-parameter':
diff --git a/jjb/octopus/octopus.yml b/jjb/octopus/octopus.yml
index b820ecb0e..cb66112fe 100644
--- a/jjb/octopus/octopus.yml
+++ b/jjb/octopus/octopus.yml
@@ -27,7 +27,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/onosfw/onosfw.yml b/jjb/onosfw/onosfw.yml
index d3a845403..13c96718c 100644
--- a/jjb/onosfw/onosfw.yml
+++ b/jjb/onosfw/onosfw.yml
@@ -31,7 +31,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -72,7 +71,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -96,7 +94,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- string:
diff --git a/jjb/openretriever/openretriever-project.yml b/jjb/openretriever/openretriever-project.yml
new file mode 100644
index 000000000..3d53f9b2e
--- /dev/null
+++ b/jjb/openretriever/openretriever-project.yml
@@ -0,0 +1,62 @@
+###################################################
+# All the jobs except verify have been removed!
+# They will only be enabled on request by projects!
+###################################################
+- project:
+ name: openretriever
+
+ project: '{name}'
+
+ jobs:
+ - 'openretriever-verify-{stream}'
+
+ stream:
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+
+- job-template:
+ name: 'openretriever-verify-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
+
+ scm:
+ - git-scm-gerrit
+
+ triggers:
+ - gerrit:
+ server-name: 'gerrit.opnfv.org'
+ 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}'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**|.gitignore'
+
+ builders:
+ - shell: |
+ echo "Nothing to verify!"
diff --git a/jjb/opera/opera-daily-jobs.yml b/jjb/opera/opera-daily-jobs.yml
index 556d59fcb..d49caf1a6 100644
--- a/jjb/opera/opera-daily-jobs.yml
+++ b/jjb/opera/opera-daily-jobs.yml
@@ -38,6 +38,7 @@
concurrent: false
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 1
@@ -51,7 +52,7 @@
- ssh-agent-wrapper
- timeout:
- timeout: 120
+ timeout: 240
fail: true
triggers:
@@ -60,9 +61,8 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- - 'huawei-pod7-defaults'
+ - 'huawei-virtual7-defaults'
builders:
- description-setter:
@@ -80,8 +80,11 @@
name: deploy
condition: SUCCESSFUL
projects:
- - name: 'opera-daily-deploy-{stream}'
- current-parameters: true
+ - name: 'compass-deploy-virtual-daily-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-nosdn-openo-noha
+ COMPASS_OS_VERSION=xenial
node-parameters: true
kill-phase-on: FAILURE
abort-all-job: true
@@ -90,7 +93,7 @@
# condition: SUCCESSFUL
# projects:
# - name: 'functest-compass-baremetal-suite-{stream}'
-# current-parameters: true
+# current-parameters: false
# predefined-parameters:
# FUNCTEST_SUITE_NAME=opera
# node-parameters: true
@@ -105,6 +108,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-per-node: 1
diff --git a/jjb/opera/opera-project-jobs.yml b/jjb/opera/opera-project-jobs.yml
index 19f066b5f..38efbc159 100644
--- a/jjb/opera/opera-project-jobs.yml
+++ b/jjb/opera/opera-project-jobs.yml
@@ -21,6 +21,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 1
@@ -30,9 +31,8 @@
parameters:
- project-parameter:
project: '{project}'
- - 'opnfv-build-ubuntu-defaults'
- - gerrit-parameter:
branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
scm:
- git-scm
diff --git a/jjb/opera/opera-verify-jobs.yml b/jjb/opera/opera-verify-jobs.yml
index 0e9dba01d..b7b5cb3c9 100644
--- a/jjb/opera/opera-verify-jobs.yml
+++ b/jjb/opera/opera-verify-jobs.yml
@@ -38,6 +38,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-total: 1
@@ -83,7 +84,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'huawei-pod7-defaults'
@@ -117,6 +117,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-per-node: 1
diff --git a/jjb/opnfvdocs/docs-post-rtd.sh b/jjb/opnfvdocs/docs-post-rtd.sh
new file mode 100644
index 000000000..7faa26f38
--- /dev/null
+++ b/jjb/opnfvdocs/docs-post-rtd.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+if [ $GERRIT_BRANCH == "master" ]; then
+ RTD_BUILD_VERSION=latest
+else
+ RTD_BUILD_VERSION=${{GERRIT_BRANCH/\//-}}
+fi
+curl -X POST --data "version_slug=$RTD_BUILD_VERSION" https://readthedocs.org/build/{rtdproject}
diff --git a/jjb/opnfvdocs/docs-rtd.yaml b/jjb/opnfvdocs/docs-rtd.yaml
new file mode 100644
index 000000000..151b53550
--- /dev/null
+++ b/jjb/opnfvdocs/docs-rtd.yaml
@@ -0,0 +1,85 @@
+- project:
+ name: docs-rtd
+ jobs:
+ - 'docs-merge-rtd-{stream}'
+ - 'docs-verify-rtd-{stream}'
+
+ stream:
+ - master:
+ branch: 'master'
+
+ project: 'opnfvdocs'
+ rtdproject: 'opnfv'
+ # TODO: Archive Artifacts
+
+- job-template:
+ name: 'docs-merge-rtd-{stream}'
+
+ project-type: freestyle
+
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'lf-build1'
+ description: 'Slave label on Jenkins'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/releng
+ description: 'Git URL to use on this Jenkins Slave'
+ scm:
+ - git-scm
+
+ triggers:
+ - gerrit-trigger-change-merged
+
+ builders:
+ - shell: !include-raw: docs-post-rtd.sh
+
+- job-template:
+ name: 'docs-verify-rtd-{stream}'
+
+ project-type: freestyle
+
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'lf-build1'
+ description: 'Slave label on Jenkins'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/opnfvdocs
+ description: 'Git URL to use on this Jenkins Slave'
+ scm:
+ - git-scm-with-submodules:
+ branch: '{branch}'
+
+ triggers:
+ - gerrit-trigger-patchset-created:
+ server: 'gerrit.opnfv.org'
+ project: '**'
+ branch: '{branch}'
+ files: 'docs/**/*.rst'
+ - timed: 'H H * * *'
+
+ builders:
+ - shell: |
+ if [ "$GERRIT_PROJECT" != "opnfvdocs" ]; then
+ cd docs/submodules/$GERRIT_PROJECT
+ git fetch origin $GERRIT_REFSPEC && git checkout FETCH_HEAD
+ else
+ git fetch origin $GERRIT_REFSPEC && git checkout FETCH_HEAD
+ fi
+ - shell: |
+ sudo pip install virtualenv
+ virtualenv $WORKSPACE/venv
+ source $WORKSPACE/venv/bin/activate
+ pip install --upgrade pip
+ pip freeze
+ pip install tox
+ tox -edocs
diff --git a/jjb/opnfvdocs/opnfvdocs.yml b/jjb/opnfvdocs/opnfvdocs.yml
index 0d4c46199..12950338d 100644
--- a/jjb/opnfvdocs/opnfvdocs.yml
+++ b/jjb/opnfvdocs/opnfvdocs.yml
@@ -34,7 +34,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_CLONE_BASE
@@ -75,7 +74,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_CLONE_BASE
@@ -87,7 +85,7 @@
description: "Directory where the build artifact will be located upon the completion of the build."
scm:
- - git-scm-gerrit
+ - git-scm
triggers:
- gerrit:
@@ -114,6 +112,7 @@
parameters:
- project-parameter:
project: '{project}'
+ branch: '{branch}'
- string:
name: GS_URL
default: '$GS_BASE{gs-pathname}'
@@ -122,10 +121,6 @@
name: GIT_CLONE_BASE
default: ssh://gerrit.opnfv.org:29418
description: "Used for overriding the GIT URL coming from parameters macro."
- - string:
- name: GERRIT_BRANCH
- default: '{branch}'
- description: 'Specify the branch in this way in order to be able to use build-opnfv-composite-docs builder.'
scm:
- git-scm
@@ -136,4 +131,3 @@
builders:
- build-html-and-pdf-docs-output
# - upload-generated-docs-to-opnfv-artifacts
-
diff --git a/jjb/opnfvdocs/project.cfg b/jjb/opnfvdocs/project.cfg
index 186e0ea74..1ea05c1d4 100644
--- a/jjb/opnfvdocs/project.cfg
+++ b/jjb/opnfvdocs/project.cfg
@@ -24,6 +24,7 @@ movie
multisite
octopus
onosfw
+openretriever
ovno
ovsnfv
parser
diff --git a/jjb/ovsnfv/ovsnfv.yml b/jjb/ovsnfv/ovsnfv.yml
index 9b2adf3a8..937a367fb 100644
--- a/jjb/ovsnfv/ovsnfv.yml
+++ b/jjb/ovsnfv/ovsnfv.yml
@@ -26,7 +26,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-centos-defaults'
- string:
@@ -73,7 +72,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-centos-defaults'
- string:
@@ -119,7 +117,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-centos-defaults'
- string:
diff --git a/jjb/parser/parser.yml b/jjb/parser/parser.yml
index de5587ed8..69fcefc20 100644
--- a/jjb/parser/parser.yml
+++ b/jjb/parser/parser.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/pharos/pharos.yml b/jjb/pharos/pharos.yml
index dbf1b92a4..6dae9f33c 100644
--- a/jjb/pharos/pharos.yml
+++ b/jjb/pharos/pharos.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/prediction/prediction.yml b/jjb/prediction/prediction.yml
index fba5741ac..b380d8c86 100644
--- a/jjb/prediction/prediction.yml
+++ b/jjb/prediction/prediction.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/promise/promise.yml b/jjb/promise/promise.yml
index a0af6f41e..a5aa302c7 100644
--- a/jjb/promise/promise.yml
+++ b/jjb/promise/promise.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/qtip/qtip-cleanup.sh b/jjb/qtip/helpers/cleanup-deploy.sh
index 95babb318..95babb318 100644
--- a/jjb/qtip/qtip-cleanup.sh
+++ b/jjb/qtip/helpers/cleanup-deploy.sh
diff --git a/jjb/qtip/qtip-daily-ci.sh b/jjb/qtip/helpers/validate-deploy.sh
index 4fdc04345..16455371f 100644
--- a/jjb/qtip/qtip-daily-ci.sh
+++ b/jjb/qtip/helpers/validate-deploy.sh
@@ -27,12 +27,7 @@ if [ $(docker ps | grep 'opnfv/qtip' | wc -l) == 0 ]; then
else
echo "The container ID is: ${container_id}"
QTIP_REPO=/home/opnfv/repos/qtip
-
- echo "Run Qtip test"
- docker exec -t ${container_id} $QTIP_REPO/docker/run_qtip.sh
-
- echo "Pushing available results to DB"
- docker exec -t ${container_id} $QTIP_REPO/docker/push_db.sh
+# TODO(yujunz): execute benchmark plan for compute-qpi
fi
echo "Qtip done!"
diff --git a/jjb/qtip/helpers/validate-setup.sh b/jjb/qtip/helpers/validate-setup.sh
new file mode 100644
index 000000000..8d84e120c
--- /dev/null
+++ b/jjb/qtip/helpers/validate-setup.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+##############################################################################
+# Copyright (c) 2017 ZTE 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 -e
+
+# setup virtualenv
+sudo pip install -u virtualenv virtualenvwrapper
+export WORKON_HOME=$HOME/.virtualenvs
+source /usr/local/bin/virtualenvwrapper.sh
+mkvirtualenv qtip
+workon qtip
+
+# setup qtip
+sudo pip install $HOME/repos/qtip
+
+# testing
+qtip --version
+qtip --help
diff --git a/jjb/qtip/qtip-ci-jobs.yml b/jjb/qtip/qtip-ci-jobs.yml
deleted file mode 100644
index 69cb32b41..000000000
--- a/jjb/qtip/qtip-ci-jobs.yml
+++ /dev/null
@@ -1,101 +0,0 @@
-####################################
-# job configuration for qtip
-####################################
-- project:
- name: qtip
-
- project: 'qtip'
-
-#--------------------------------
-# BRANCH ANCHORS
-#--------------------------------
- master: &master
- stream: master
- branch: '{stream}'
- gs-pathname: ''
- docker-tag: 'latest'
-#--------------------------------
-# POD, INSTALLER, AND BRANCH MAPPING
-#--------------------------------
-# master
-#--------------------------------
- pod:
- - zte-pod2:
- installer: fuel
- auto-trigger-name: 'qtip-daily-zte-pod2-trigger'
- <<: *master
- - zte-pod3:
- installer: fuel
- auto-trigger-name: 'qtip-daily-zte-pod3-trigger'
- <<: *master
-
-#--------------------------------
- jobs:
- - 'qtip-{installer}-{pod}-daily-{stream}'
-
-################################
-# job templates
-################################
-- job-template:
- name: 'qtip-{installer}-{pod}-daily-{stream}'
-
- disabled: true
-
- parameters:
- - project-parameter:
- project: '{project}'
- - gerrit-parameter:
- branch: '{branch}'
- - '{installer}-defaults'
- - '{pod}-defaults'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-nofeature-ha'
- - string:
- name: DOCKER_TAG
- default: '{docker-tag}'
- description: 'Tag to pull docker image'
-
- scm:
- - git-scm
-
- triggers:
- - '{auto-trigger-name}'
-
- builders:
- - description-setter:
- description: "POD: $NODE_NAME"
- - 'qtip-cleanup'
- - 'qtip-daily-ci'
-
- publishers:
- - email:
- recipients: wu.zhihui1@zte.com.cn, zhang.yujunz@zte.com.cn
-
-###########################
-#biuilder macros
-###########################
-- builder:
- name: qtip-daily-ci
- builders:
- - shell:
- !include-raw: ./qtip-daily-ci.sh
-
-- builder:
- name: qtip-cleanup
- builders:
- - shell:
- !include-raw: ./qtip-cleanup.sh
-
-#################
-#trigger macros
-#################
-- trigger:
- name: 'qtip-daily-zte-pod2-trigger'
- triggers:
- - timed: '0 7 * * *'
-
-- trigger:
- name: 'qtip-daily-zte-pod3-trigger'
- triggers:
- - timed: '0 1 * * *'
diff --git a/jjb/qtip/qtip-validate-jobs.yml b/jjb/qtip/qtip-validate-jobs.yml
new file mode 100644
index 000000000..98f7ab90a
--- /dev/null
+++ b/jjb/qtip/qtip-validate-jobs.yml
@@ -0,0 +1,141 @@
+#######################
+# validate after MERGE
+#######################
+- project:
+ name: qtip
+ project: qtip
+
+#--------------------------------
+# BRANCH ANCHORS
+#--------------------------------
+ master: &master
+ stream: master
+ branch: '{stream}'
+ gs-pathname: ''
+ docker-tag: latest
+
+#--------------------------------
+# JOB VARIABLES
+#--------------------------------
+ pod:
+ - zte-pod2:
+ installer: fuel
+ <<: *master
+ - zte-pod3:
+ installer: fuel
+ <<: *master
+ task:
+ - daily:
+ auto-builder-name: qtip-validate-deploy
+ auto-trigger-name: 'qtip-daily-{pod}-trigger'
+ - validate:
+ auto-builder-name: qtip-validate-setup
+ auto-trigger-name: qtip-validate-trigger
+ - experimental:
+ auto-builder-name: qtip-validate-setup
+ auto-trigger-name: experimental
+
+#--------------------------------
+# JOB LIST
+#--------------------------------
+ jobs:
+ - 'qtip-{task}-{installer}-{pod}-{stream}'
+
+################################
+# job templates
+################################
+- job-template:
+ name: 'qtip-{task}-{installer}-{pod}-{stream}'
+ disabled: false
+ parameters:
+ - qtip-common-parameters:
+ project: '{project}'
+ <<: *master
+ - '{installer}-defaults'
+ - '{pod}-defaults'
+ scm:
+ - git-scm
+ triggers:
+ - '{auto-trigger-name}'
+ builders:
+ - qtip-common-builders
+ - '{auto-builder-name}'
+ publishers:
+ - qtip-common-publishers
+
+################
+# MARCOS
+################
+
+#---------
+# builder
+#---------
+
+- builder:
+ name: qtip-common-builders
+ builders:
+ - description-setter:
+ description: "POD: $NODE_NAME"
+
+- builder:
+ name: qtip-validate-deploy
+ builders:
+ - shell:
+ !include-raw: ./helpers/validate-deploy.sh
+ - shell:
+ !include-raw: ./helpers/cleanup-deploy.sh
+
+- builder:
+ name: qtip-validate-setup
+ builders:
+ - shell:
+ !include-raw: ./helpers/validate-setup.sh
+
+#-----------
+# parameter
+#-----------
+
+- parameter:
+ name: qtip-common-parameters
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-nosdn-nofeature-ha'
+ - string:
+ name: DOCKER_TAG
+ default: '{docker-tag}'
+ description: 'Tag to pull docker image'
+
+#-----------
+# publisher
+#-----------
+
+- publisher:
+ name: qtip-common-publishers
+ publishers:
+ - email:
+ recipients: wu.zhihui1@zte.com.cn, zhang.yujunz@zte.com.cn
+
+#---------
+# trigger
+#---------
+
+- trigger:
+ name: qtip-daily-zte-pod2-trigger
+ triggers:
+ - timed: '0 7 * * *'
+
+- trigger:
+ name: qtip-daily-zte-pod3-trigger
+ triggers:
+ - timed: '0 1 * * *'
+
+- trigger:
+ name: qtip-validate-trigger
+ triggers:
+ - gerrit-trigger-change-merged:
+ project: '{project}'
+ branch: '{branch}'
diff --git a/jjb/qtip/qtip-project-jobs.yml b/jjb/qtip/qtip-verify-jobs.yml
index a9c8251fc..d1fc34d11 100644
--- a/jjb/qtip/qtip-project-jobs.yml
+++ b/jjb/qtip/qtip-verify-jobs.yml
@@ -1,11 +1,12 @@
-- project:
- name: qtip-project-jobs
-
- project: 'qtip'
+######################
+# verify before MERGE
+######################
+- project:
+ name: qtip-verify-jobs
+ project: qtip
jobs:
- 'qtip-verify-{stream}'
-
stream:
- master:
branch: '{stream}'
@@ -23,7 +24,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
diff --git a/jjb/releng/artifact-cleanup.yml b/jjb/releng/artifact-cleanup.yml
index e10d5defb..2d0205660 100644
--- a/jjb/releng/artifact-cleanup.yml
+++ b/jjb/releng/artifact-cleanup.yml
@@ -27,7 +27,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
scm:
diff --git a/jjb/releng/opnfv-docker-arm.yml b/jjb/releng/opnfv-docker-arm.yml
new file mode 100644
index 000000000..09c9f335e
--- /dev/null
+++ b/jjb/releng/opnfv-docker-arm.yml
@@ -0,0 +1,77 @@
+##############################################
+# job configuration for docker build and push
+##############################################
+
+- project:
+
+ name: opnfv-docker-arm
+
+ master: &master
+ stream: master
+ branch: '{stream}'
+ disabled: false
+ danube: &danube
+ stream: danube
+ branch: 'stable/{stream}'
+ disabled: true
+ functest-arm-receivers: &functest-arm-receivers
+ receivers: >
+ cristina.pauna@enea.com
+ alexandru.avadanii@enea.com
+ other-receivers: &other-receivers
+ receivers: ''
+
+ project:
+ # projects with jobs for master
+ - 'functest':
+ <<: *master
+ <<: *functest-arm-receivers
+ # projects with jobs for stable
+
+ jobs:
+ - '{project}-docker-build-arm-push-{stream}'
+
+########################
+# job templates
+########################
+- job-template:
+ name: '{project}-docker-build-arm-push-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ parameters: &parameters
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-arm-defaults'
+ - string:
+ name: PUSH_IMAGE
+ default: "true"
+ description: "To enable/disable pushing the image to Dockerhub."
+ - string:
+ name: DOCKER_REPO_NAME
+ default: "opnfv/{project}_aarch64"
+ description: "Dockerhub repo to be pushed to."
+ - string:
+ name: RELEASE_VERSION
+ default: ""
+ description: "Release version, e.g. 1.0, 2.0, 3.0"
+ - string:
+ name: DOCKERFILE
+ default: "Dockerfile.aarch64"
+ description: "Dockerfile to use for creating the image."
+
+ scm:
+ - git-scm
+
+ builders: &builders
+ - shell:
+ !include-raw-escape: ./opnfv-docker.sh
+
+ triggers:
+ - pollscm:
+ cron: "*/30 * * * *"
+
+ publishers:
+ - email:
+ recipients: '{receivers}'
diff --git a/jjb/releng/opnfv-docker.sh b/jjb/releng/opnfv-docker.sh
index e26727abf..7b93d50bf 100644
--- a/jjb/releng/opnfv-docker.sh
+++ b/jjb/releng/opnfv-docker.sh
@@ -12,6 +12,7 @@ set -o nounset
set -o pipefail
+
echo "Starting opnfv-docker for $DOCKER_REPO_NAME ..."
echo "--------------------------------------------------------"
echo
@@ -42,32 +43,29 @@ fi
if [[ -n "$(docker images | grep $DOCKER_REPO_NAME)" ]]; then
echo "Docker images to remove:"
docker images | head -1 && docker images | grep $DOCKER_REPO_NAME
- image_tags=($(docker images | grep $DOCKER_REPO_NAME | awk '{print $2}'))
- for tag in "${image_tags[@]}"; do
- if [[ -n "$(docker images|grep $DOCKER_REPO_NAME|grep $tag)" ]]; then
- echo "Removing docker image $DOCKER_REPO_NAME:$tag..."
- docker rmi -f $DOCKER_REPO_NAME:$tag
+ image_ids=($(docker images | grep $DOCKER_REPO_NAME | awk '{print $3}'))
+ for id in "${image_ids[@]}"; do
+ if [[ -n "$(docker images|grep $DOCKER_REPO_NAME|grep $id)" ]]; then
+ echo "Removing docker image $DOCKER_REPO_NAME:$id..."
+ docker rmi -f $id
fi
done
fi
-
-# cd to directory where Dockerfile is located
cd $WORKSPACE/docker
-if [ ! -f ./Dockerfile ]; then
+if [ ! -f ${DOCKERFILE} ]; then
echo "ERROR: Dockerfile not found."
exit 1
fi
# Get tag version
-branch="${GIT_BRANCH##origin/}"
-echo "Current branch: $branch"
+echo "Current branch: $BRANCH"
-if [[ "$branch" == "master" ]]; then
+if [[ "$BRANCH" == "master" ]]; then
DOCKER_TAG="latest"
else
if [[ "$RELEASE_VERSION" != "" ]]; then
- release=$(echo $branch|sed 's/.*\///')
+ release=${BRANCH##*/}
DOCKER_TAG=${release}.${RELEASE_VERSION}
# e.g. colorado.1.0, colorado.2.0, colorado.3.0
else
@@ -79,7 +77,8 @@ fi
echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG"
echo "--------------------------------------------------------"
echo
-cmd="docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG --build-arg BRANCH=$branch ."
+cmd="docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG --build-arg BRANCH=$BRANCH
+ -f $DOCKERFILE ."
echo ${cmd}
${cmd}
diff --git a/jjb/releng/opnfv-docker.yml b/jjb/releng/opnfv-docker.yml
index 02dfb7560..90a91f802 100644
--- a/jjb/releng/opnfv-docker.yml
+++ b/jjb/releng/opnfv-docker.yml
@@ -14,32 +14,51 @@
stream: danube
branch: 'stable/{stream}'
disabled: true
+ functest-receivers: &functest-receivers
+ receivers: >
+ jose.lausuch@ericsson.com morgan.richomme@orange.com
+ cedric.ollivier@orange.com feng.xiaowei@zte.com.cn
+ yaohelan@huawei.com helanyao@gmail.com
+ juha.kosonen@nokia.com
+ other-receivers: &other-receivers
+ receivers: ''
project:
# projects with jobs for master
- 'bottlenecks':
<<: *master
+ <<: *other-receivers
- 'cperf':
<<: *master
+ <<: *other-receivers
- 'dovetail':
<<: *master
+ <<: *other-receivers
- 'functest':
<<: *master
+ <<: *functest-receivers
- 'qtip':
<<: *master
+ <<: *other-receivers
- 'storperf':
<<: *master
+ <<: *other-receivers
- 'yardstick':
<<: *master
+ <<: *other-receivers
# projects with jobs for stable
- 'bottlenecks':
<<: *danube
+ <<: *other-receivers
- 'functest':
<<: *danube
+ <<: *functest-receivers
- 'storperf':
<<: *danube
+ <<: *other-receivers
- 'yardstick':
<<: *danube
+ <<: *other-receivers
jobs:
- '{project}-docker-build-push-{stream}'
@@ -53,6 +72,8 @@
# projects with jobs for master
- 'daisy':
<<: *master
+ - 'escalator':
+ <<: *master
jobs:
- '{project}-docker-build-push-monitor-{stream}'
@@ -68,7 +89,6 @@
parameters: &parameters
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- string:
@@ -83,6 +103,10 @@
name: RELEASE_VERSION
default: ""
description: "Release version, e.g. 1.0, 2.0, 3.0"
+ - string:
+ name: DOCKERFILE
+ default: "Dockerfile"
+ description: "Dockerfile to use for creating the image."
scm:
- git-scm
@@ -95,6 +119,10 @@
- pollscm:
cron: "*/30 * * * *"
+ publishers:
+ - email:
+ recipients: '{receivers}'
+
- job-template:
name: '{project}-docker-build-push-monitor-{stream}'
disabled: '{obj:disabled}'
diff --git a/jjb/releng/opnfv-docs.yml b/jjb/releng/opnfv-docs.yml
index f6092eee0..f4b25017e 100644
--- a/jjb/releng/opnfv-docs.yml
+++ b/jjb/releng/opnfv-docs.yml
@@ -35,7 +35,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
scm:
@@ -77,7 +76,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GS_URL
@@ -89,7 +87,7 @@
description: "JJB configured GERRIT_REFSPEC parameter"
scm:
- - git-scm-gerrit
+ - git-scm
triggers:
- gerrit:
diff --git a/jjb/releng/opnfv-lint.yml b/jjb/releng/opnfv-lint.yml
index 590790f89..37cdef28f 100644
--- a/jjb/releng/opnfv-lint.yml
+++ b/jjb/releng/opnfv-lint.yml
@@ -33,7 +33,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
scm:
@@ -54,7 +53,7 @@
comment-contains-value: 'reverify'
projects:
- project-compare-type: 'REG_EXP'
- project-pattern: 'functest|sdnvpn|qtip|daisy|sfc|escalator'
+ project-pattern: 'functest|sdnvpn|qtip|daisy|sfc|escalator|releng'
branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
@@ -76,7 +75,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
- node:
name: SLAVE_NAME
diff --git a/jjb/releng/releng-ci-jobs.yml b/jjb/releng/releng-ci-jobs.yml
index 626daffbd..ecc87303f 100644
--- a/jjb/releng/releng-ci-jobs.yml
+++ b/jjb/releng/releng-ci-jobs.yml
@@ -13,7 +13,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: 'master'
scm:
- git-scm-gerrit
@@ -64,7 +63,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: 'master'
scm:
@@ -104,7 +102,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: 'master'
scm:
diff --git a/jjb/releng/testapi-automate.yml b/jjb/releng/testapi-automate.yml
index c03835279..dd76538a3 100644
--- a/jjb/releng/testapi-automate.yml
+++ b/jjb/releng/testapi-automate.yml
@@ -4,24 +4,56 @@
- master:
branch: '{stream}'
gs-pathname: ''
+
+ phase:
+ - 'docker-update'
+ - 'docker-deploy':
+ slave-label: 'testresults'
+ - 'generate-doc'
+
jobs:
- 'testapi-automate-{stream}'
+ - 'testapi-automate-{phase}-{stream}'
- 'testapi-verify-{stream}'
project: 'releng'
+- job:
+ name: 'testapi-mongodb-backup'
+
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'testresults'
+ description: 'Slave label on Jenkins'
+ - project-parameter:
+ project: 'releng'
+ branch: 'master'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/releng
+ description: 'Git URL to use on this Jenkins Slave'
+
+ scm:
+ - git-scm
+
+ triggers:
+ - timed: '@weekly'
+
+ builders:
+ - mongodb-backup
+
- job-template:
name: 'testapi-verify-{stream}'
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
scm:
- - git-scm
+ - git-scm-gerrit
triggers:
- gerrit:
@@ -44,18 +76,45 @@
branch-pattern: '**/{branch}'
file-paths:
- compare-type: 'ANT'
- pattern: 'utils/**'
+ pattern: 'utils/test/testapi/**'
builders:
- run-unit-tests
+ publishers:
+ - junit:
+ results: nosetests.xml
+ - cobertura:
+ report-file: "coverage.xml"
+ only-stable: "true"
+ health-auto-update: "false"
+ stability-auto-update: "false"
+ zoom-coverage-chart: "true"
+ targets:
+ - files:
+ healthy: 10
+ unhealthy: 20
+ failing: 30
+ - method:
+ healthy: 50
+ unhealthy: 40
+ failing: 30
+
- job-template:
name: 'testapi-automate-{stream}'
+ project-type: multijob
+
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+ option: 'project'
+
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: DOCKER_TAG
@@ -66,6 +125,12 @@
scm:
- git-scm
+ wrappers:
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 360
+ fail: true
+
triggers:
- gerrit:
server-name: 'gerrit.opnfv.org'
@@ -81,51 +146,128 @@
branch-pattern: '**/{branch}'
file-paths:
- compare-type: 'ANT'
- pattern: 'utils/**'
+ pattern: 'utils/test/testapi/**'
builders:
- - docker-update
- - start-testapi-server
- - testapi-doc-build
- - upload-doc-artifact
- - clean-testapi-server
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: docker-update
+ condition: SUCCESSFUL
+ projects:
+ - name: 'testapi-automate-docker-update-{stream}'
+ current-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: docker-deploy
+ condition: SUCCESSFUL
+ projects:
+ - name: 'testapi-automate-docker-deploy-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ GIT_BASE=$GIT_BASE
+ node-label-name: SLAVE_LABEL
+ node-label: testresults
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: generate-doc
+ condition: SUCCESSFUL
+ projects:
+ - name: 'testapi-automate-generate-doc-{stream}'
+ current-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+
+ publishers:
+ - 'email-publisher'
+
+- job-template:
+ name: 'testapi-automate-{phase}-{stream}'
+
+ properties:
+ - throttle:
+ enabled: true
+ max-per-node: 1
+ option: 'project'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: DOCKER_TAG
+ default: "latest"
+ description: "Tag name for testapi docker image"
+
+ wrappers:
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 120
+ fail: true
+
+ scm:
+ - git-scm
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - 'testapi-automate-{phase}-macro'
################################
# job builders
################################
+- builder:
+ name: mongodb-backup
+ builders:
+ - shell: |
+ bash ./jjb/releng/testapi-backup-mongodb.sh
- builder:
- name: run-unit-tests
+ name: 'run-unit-tests'
builders:
- shell: |
- bash ./jjb/releng/testapi-run-tests.sh
+ bash ./utils/test/testapi/run_test.sh
- builder:
- name: docker-update
+ name: 'testapi-automate-docker-update-macro'
builders:
- shell: |
bash ./jjb/releng/testapi-docker-update.sh
- builder:
- name: start-testapi-server
+ name: 'testapi-automate-generate-doc-macro'
builders:
- - shell: |
- bash ./utils/test/testapi/htmlize/prepare.sh
+ - 'testapi-doc-build'
+ - 'upload-doc-artifact'
- builder:
- name: testapi-doc-build
+ name: 'testapi-doc-build'
builders:
- shell: |
bash ./utils/test/testapi/htmlize/doc-build.sh
- builder:
- name: upload-doc-artifact
+ name: 'upload-doc-artifact'
builders:
- shell: |
bash ./utils/test/testapi/htmlize/push-doc-artifact.sh
- builder:
- name: clean-testapi-server
+ name: 'testapi-automate-docker-deploy-macro'
builders:
- shell: |
- bash ./utils/test/testapi/htmlize/finish.sh
+ bash ./jjb/releng/testapi-docker-deploy.sh
+
+################################
+# job publishers
+################################
+
+- publisher:
+ name: 'email-publisher'
+ publishers:
+ - email:
+ recipients: rohitsakala@gmail.com feng.xiaowei@zte.com.cn
+ notify-every-unstable-build: false
+ send-to-individuals: true
diff --git a/jjb/releng/testapi-backup-mongodb.sh b/jjb/releng/testapi-backup-mongodb.sh
new file mode 100644
index 000000000..795e479d9
--- /dev/null
+++ b/jjb/releng/testapi-backup-mongodb.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+set -e
+
+# Run MongoDB backup
+python $WORKSPACE/utils/test/testapi/update/templates/backup_mongodb.py -o $WORKSPACE/
+
+# Compressing the dump
+now=$(date +"%m_%d_%Y_%H_%M_%S")
+echo $now
+
+file_name="testapi_mongodb_"$now".tar.gz"
+echo $file_name
+
+tar cvfz "$file_name" test_results_collection*
+
+rm -rf test_results_collection*
+
+artifact_dir="testapibackup"
+workspace="$WORKSPACE"
+
+set +e
+/usr/local/bin/gsutil &>/dev/null
+if [ $? != 0 ]; then
+ echo "Not possible to push results to artifact: gsutil not installed"
+ exit 1
+else
+ echo "Uploading mongodump to artifact $artifact_dir"
+ /usr/local/bin/gsutil cp -r "$workspace"/"$file_name" gs://artifacts.opnfv.org/"$artifact_dir"/
+ echo "MongoDump can be found at http://artifacts.opnfv.org/$artifact_dir.html"
+fi
diff --git a/jjb/releng/testapi-docker-deploy.sh b/jjb/releng/testapi-docker-deploy.sh
new file mode 100644
index 000000000..b4e60b09a
--- /dev/null
+++ b/jjb/releng/testapi-docker-deploy.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+
+function check() {
+
+ # Verify hosted
+ sleep 5
+ cmd=`curl -s --head --request GET http://testresults.opnfv.org/test/swagger/spec | grep '200 OK' > /dev/null`
+ rc=$?
+ echo $rc
+
+ if [[ $rc == 0 ]]
+ then
+ return 0
+ else
+ return 1
+ fi
+
+}
+
+echo "Getting contianer Id of the currently running one"
+contId=$(sudo docker ps | grep "opnfv/testapi:latest" | awk '{print $1}')
+
+echo "Pulling the latest image"
+sudo docker pull opnfv/testapi:latest
+
+echo "Deleting old containers of opnfv/testapi:old"
+sudo docker ps -a | grep "opnfv/testapi" | grep "old" | awk '{print $1}' | xargs -r sudo docker rm -f
+
+echo "Deleting old images of opnfv/testapi:latest"
+sudo docker images | grep "opnfv/testapi" | grep "old" | awk '{print $3}' | xargs -r sudo docker rmi -f
+
+
+if [[ -z "$contId" ]]
+then
+ echo "No running testapi container"
+
+ echo "Removing stopped testapi containers in the previous iterations"
+ sudo docker ps -f status=exited | grep "opnfv_testapi" | awk '{print $1}' | xargs -r sudo docker rm -f
+else
+ echo $contId
+
+ echo "Get the image id of the currently running conatiner"
+ currImgId=$(sudo docker ps | grep "$contId" | awk '{print $2}')
+ echo $currImgId
+
+ if [[ -z "$currImgId" ]]
+ then
+ echo "No image id found for the container id"
+ exit 1
+ fi
+
+ echo "Changing current image tag to old"
+ sudo docker tag "$currImgId" opnfv/testapi:old
+
+ echo "Removing stopped testapi containers in the previous iteration"
+ sudo docker ps -f status=exited | grep "opnfv_testapi" | awk '{print $1}' | xargs -r sudo docker rm -f
+
+ echo "Renaming the running container name to opnfv_testapi as to identify it."
+ sudo docker rename $contId opnfv_testapi
+
+ echo "Stop the currently running container"
+ sudo docker stop $contId
+fi
+
+echo "Running a container with the new image"
+sudo docker run -dti -p "8082:8000" -e "mongodb_url=mongodb://172.17.0.1:27017" -e "swagger_url=http://testresults.opnfv.org/test" opnfv/testapi:latest
+
+if check; then
+ echo "TestResults Hosted."
+else
+ echo "TestResults Hosting Failed"
+ if [[ $(sudo docker images | grep "opnfv/testapi" | grep "old" | awk '{print $3}') ]]; then
+ echo "Running old Image"
+ sudo docker run -dti -p "8082:8000" -e "mongodb_url=mongodb://172.17.0.1:27017" -e "swagger_url=http://testresults.opnfv.org/test" opnfv/testapi:old
+ exit 1
+ fi
+fi
+
+# Echo Images and Containers
+sudo docker images
+sudo docker ps -a
diff --git a/jjb/releng/testapi-run-tests.sh b/jjb/releng/testapi-run-tests.sh
deleted file mode 100644
index 47691ed04..000000000
--- a/jjb/releng/testapi-run-tests.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-set -o errexit
-
-echo "Running unit tests..."
-
-# Creating virtual environment
-virtualenv $WORKSPACE/testapi_test_venv
-source $WORKSPACE/testapi_test_venv/bin/activate
-
-cd $WORKSPACE/utils/test/testapi/
-
-# Install requirements
-pip install -r requirements.txt
-pip install -r test-requirements.txt
-
-# Run unit tests
-bash run_test.sh
diff --git a/jjb/securityaudit/opnfv-security-audit.yml b/jjb/securityaudit/opnfv-security-audit.yml
index 680be20d2..732df8925 100644
--- a/jjb/securityaudit/opnfv-security-audit.yml
+++ b/jjb/securityaudit/opnfv-security-audit.yml
@@ -27,7 +27,6 @@
parameters:
- project-parameter:
project: $GERRIT_PROJECT
- - gerrit-parameter:
branch: '{branch}'
scm:
diff --git a/jjb/storperf/storperf.yml b/jjb/storperf/storperf.yml
index 8f42f8c06..a04a9f4b4 100644
--- a/jjb/storperf/storperf.yml
+++ b/jjb/storperf/storperf.yml
@@ -28,7 +28,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- string:
name: GIT_BASE
@@ -89,8 +88,7 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
- branch: 'master'
+ branch: '{branch}'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -149,7 +147,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'intel-pod9-defaults'
diff --git a/jjb/ves/ves.yml b/jjb/ves/ves.yml
new file mode 100644
index 000000000..5f0da3320
--- /dev/null
+++ b/jjb/ves/ves.yml
@@ -0,0 +1,68 @@
+###################################################
+# All the jobs except verify have been removed!
+# They will only be enabled on request by projects!
+###################################################
+- project:
+ name: ves
+
+ project: '{name}'
+
+ jobs:
+ - 'ves-verify-{stream}'
+
+ stream:
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+
+- job-template:
+ name: 'ves-verify-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
+
+ scm:
+ - git-scm-gerrit
+
+ triggers:
+ - gerrit:
+ server-name: 'gerrit.opnfv.org'
+ 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}'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**|.gitignore'
+
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ shellcheck -f tty tests/*.sh
+ shellcheck -f tty utils/*.sh
diff --git a/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml b/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
index c129f4937..450599eaf 100644
--- a/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
+++ b/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
@@ -24,7 +24,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
scm:
- git-scm-gerrit
diff --git a/jjb/vswitchperf/vswitchperf.yml b/jjb/vswitchperf/vswitchperf.yml
index 4cfe5d98f..ef0e90a76 100644
--- a/jjb/vswitchperf/vswitchperf.yml
+++ b/jjb/vswitchperf/vswitchperf.yml
@@ -19,7 +19,7 @@
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: true
- slave-label: 'intel-pod3'
+ slave-label: 'intel-pod12'
- job-template:
@@ -30,9 +30,8 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- - 'intel-pod3-defaults'
+ - 'intel-pod12-defaults'
scm:
- git-scm
@@ -62,6 +61,7 @@
concurrent: true
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
blocking-jobs:
@@ -72,7 +72,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
@@ -123,6 +122,7 @@
concurrent: true
properties:
+ - logrotate-default
- build-blocker:
use-build-blocker: true
blocking-jobs:
@@ -133,7 +133,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{slave-label}-defaults'
diff --git a/jjb/yardstick/yardstick-ci-jobs.yml b/jjb/yardstick/yardstick-ci-jobs.yml
index ed2dccab8..604eaed25 100644
--- a/jjb/yardstick/yardstick-ci-jobs.yml
+++ b/jjb/yardstick/yardstick-ci-jobs.yml
@@ -197,8 +197,8 @@
installer: compass
auto-trigger-name: 'yardstick-daily-huawei-pod4-trigger'
<<: *master
- - huawei-pod5:
- slave-label: '{pod}'
+ - baremetal-centos:
+ slave-label: 'intel-pod8'
installer: compass
auto-trigger-name: 'daily-trigger-disabled'
<<: *master
@@ -220,6 +220,7 @@
concurrent: true
properties:
+ - logrotate-default
- throttle:
enabled: true
max-per-node: 1
@@ -238,7 +239,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- '{installer}-defaults'
- '{slave-label}-defaults'
@@ -381,15 +381,6 @@
name: YARDSTICK_DB_BACKEND
default: '-i 104.197.68.199:8086'
description: 'Arguments to use in order to choose the backend DB'
-
-- parameter:
- name: 'yardstick-params-huawei-pod5'
- parameters:
- - string:
- name: YARDSTICK_DB_BACKEND
- default: '-i 104.197.68.199:8086'
- description: 'Arguments to use in order to choose the backend DB'
-
- parameter:
name: 'yardstick-params-zte-pod1'
parameters:
diff --git a/jjb/yardstick/yardstick-daily.sh b/jjb/yardstick/yardstick-daily.sh
index da9042bbc..f769e9cdd 100755
--- a/jjb/yardstick/yardstick-daily.sh
+++ b/jjb/yardstick/yardstick-daily.sh
@@ -31,14 +31,14 @@ fi
opts="--privileged=true --rm"
envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
-e NODE_NAME=${NODE_NAME} -e EXTERNAL_NETWORK=${EXTERNAL_NETWORK} \
- -e YARDSTICK_BRANCH=${GIT_BRANCH##origin/} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO}"
+ -e YARDSTICK_BRANCH=${BRANCH} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO}"
# Pull the image with correct tag
echo "Yardstick: Pulling image opnfv/yardstick:${DOCKER_TAG}"
docker pull opnfv/yardstick:$DOCKER_TAG >$redirect
# map log directory
-branch=${GIT_BRANCH##*/}
+branch=${BRANCH##*/}
dir_result="${HOME}/opnfv/yardstick/results/${branch}"
mkdir -p ${dir_result}
sudo rm -rf ${dir_result}/*
diff --git a/jjb/yardstick/yardstick-project-jobs.yml b/jjb/yardstick/yardstick-project-jobs.yml
index a54750ef7..bbfa152a2 100644
--- a/jjb/yardstick/yardstick-project-jobs.yml
+++ b/jjb/yardstick/yardstick-project-jobs.yml
@@ -33,7 +33,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
@@ -70,7 +69,6 @@
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
branch: '{branch}'
- 'opnfv-build-ubuntu-defaults'
- string:
@@ -110,18 +108,8 @@
set -o errexit
set -o pipefail
+ sudo apt-get install -y build-essential python-dev python3-dev
+
echo "Running unit tests..."
cd $WORKSPACE
- virtualenv $WORKSPACE/yardstick_venv
- source $WORKSPACE/yardstick_venv/bin/activate
-
- # install python packages
- easy_install -U setuptools
- easy_install -U pip
- pip install -r requirements.txt || pip install -r tests/ci/requirements.txt
- pip install -e .
-
- # unit tests
- ./run_tests.sh
-
- deactivate
+ tox