summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xjjb/apex/apex-deploy.sh2
-rw-r--r--jjb/armband/armband-ci-jobs.yml14
-rwxr-xr-xjjb/armband/armband-deploy.sh4
-rw-r--r--jjb/compass4nfv/compass-verify-jobs.yml2
-rwxr-xr-xjjb/escalator/escalator-basic.sh5
-rwxr-xr-xjjb/escalator/escalator-build.sh33
-rwxr-xr-xjjb/escalator/escalator-upload-artifact.sh89
-rw-r--r--jjb/escalator/escalator.yml326
-rw-r--r--jjb/infra/bifrost-verify-jobs.yml43
-rw-r--r--jjb/opnfv/opnfv-docker.sh52
-rw-r--r--jjb/opnfv/opnfv-docker.yml153
-rw-r--r--jjb/opnfv/opnfv-lint.yml2
-rw-r--r--jjb/qtip/qtip-project-jobs.yml7
-rw-r--r--prototypes/bifrost/playbooks/test-bifrost-infracloud.yaml3
-rwxr-xr-xprototypes/bifrost/scripts/test-bifrost-deployment.sh3
-rwxr-xr-xutils/calculate_version.sh136
-rwxr-xr-xutils/jenkins-jnlp-connect.sh50
-rwxr-xr-xutils/test/reporting/functest/reporting-status.py8
18 files changed, 586 insertions, 346 deletions
diff --git a/jjb/apex/apex-deploy.sh b/jjb/apex/apex-deploy.sh
index e21387ac6..bbceb4b88 100755
--- a/jjb/apex/apex-deploy.sh
+++ b/jjb/apex/apex-deploy.sh
@@ -176,6 +176,8 @@ 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
diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml
index 2122959a9..b1cd9bf75 100644
--- a/jjb/armband/armband-ci-jobs.yml
+++ b/jjb/armband/armband-ci-jobs.yml
@@ -303,31 +303,31 @@
- trigger:
name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: '0 2 * * 1'
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: '0 2 * * 2'
- trigger:
name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: '0 2 * * 3'
- trigger:
name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: '0 2 * * 4'
- trigger:
name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: '0 2 * * 5'
- trigger:
name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: '0 2 * * 6'
- trigger:
name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: '0 2 * * 7'
#--------------------------------------------------------------------
# Enea Armband CI Virtual Triggers running against colorado branch
#--------------------------------------------------------------------
diff --git a/jjb/armband/armband-deploy.sh b/jjb/armband/armband-deploy.sh
index c8e58afa8..e0631c424 100755
--- a/jjb/armband/armband-deploy.sh
+++ b/jjb/armband/armband-deploy.sh
@@ -61,6 +61,10 @@ if [[ $LAB_CONFIG_URL =~ ^(git|ssh):// ]]; then
fi
fi
+if [[ "$NODE_NAME" =~ "virtual" ]]; then
+ POD_NAME="virtual_kvm"
+fi
+
# releng wants us to use nothing else but opnfv.iso for now. We comply.
ISO_FILE=$WORKSPACE/opnfv.iso
diff --git a/jjb/compass4nfv/compass-verify-jobs.yml b/jjb/compass4nfv/compass-verify-jobs.yml
index 87c19a9c5..cc04ad3da 100644
--- a/jjb/compass4nfv/compass-verify-jobs.yml
+++ b/jjb/compass4nfv/compass-verify-jobs.yml
@@ -124,7 +124,7 @@
name: basic
condition: SUCCESSFUL
projects:
- - name: 'compass-verify-basic-{stream}'
+ - name: 'opnfv-lint-verify-{stream}'
current-parameters: true
node-parameters: true
kill-phase-on: FAILURE
diff --git a/jjb/escalator/escalator-basic.sh b/jjb/escalator/escalator-basic.sh
new file mode 100755
index 000000000..9c739c422
--- /dev/null
+++ b/jjb/escalator/escalator-basic.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+echo "--------------------------------------------------------"
+echo "This is escalator basic job!"
+echo "--------------------------------------------------------"
+
diff --git a/jjb/escalator/escalator-build.sh b/jjb/escalator/escalator-build.sh
new file mode 100755
index 000000000..0e35c27d9
--- /dev/null
+++ b/jjb/escalator/escalator-build.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+echo "--------------------------------------------------------"
+echo "This is escalator build job!"
+echo "--------------------------------------------------------"
+
+# set OPNFV_ARTIFACT_VERSION
+if [[ "$JOB_NAME" =~ "merge" ]]; then
+ echo "Building Escalator TAR for a merged change"
+ export OPNFV_ARTIFACT_VERSION="gerrit-$GERRIT_CHANGE_NUMBER"
+else
+ export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
+fi
+
+# build output directory
+OUTPUT_DIR=$WORKSPACE/build_output
+mkdir -p $OUTPUT_DIR
+
+# start the build
+cd $WORKSPACE
+./ci/build.sh $OUTPUT_DIR $OPNFV_ARTIFACT_VERSION
+
+# save information regarding artifact into file
+(
+ echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
+ 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.bin"
+ echo "OPNFV_BUILD_URL=$BUILD_URL"
+) > $WORKSPACE/opnfv.properties
+
+echo
+echo "--------------------------------------------------------"
+echo "Done!"
diff --git a/jjb/escalator/escalator-upload-artifact.sh b/jjb/escalator/escalator-upload-artifact.sh
new file mode 100755
index 000000000..781fb3e3e
--- /dev/null
+++ b/jjb/escalator/escalator-upload-artifact.sh
@@ -0,0 +1,89 @@
+#!/bin/bash
+echo "--------------------------------------------------------"
+echo "This is escalator upload job!"
+echo "--------------------------------------------------------"
+
+set -o pipefail
+
+# check if we built something
+if [ -f $WORKSPACE/.noupload ]; then
+ echo "Nothing new to upload. Exiting."
+ /bin/rm -f $WORKSPACE/.noupload
+ exit 0
+fi
+
+# source the opnfv.properties to get ARTIFACT_VERSION
+source $WORKSPACE/opnfv.properties
+
+importkey () {
+# clone releng repository
+echo "Cloning releng repository..."
+[ -d releng ] && rm -rf releng
+git clone https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng/ &> /dev/null
+#this is where we import the siging key
+if [ -f $WORKSPACE/releng/utils/gpg_import_key.sh ]; then
+ source $WORKSPACE/releng/utils/gpg_import_key.sh
+fi
+}
+
+signtar () {
+gpg2 -vvv --batch --yes --no-tty \
+ --default-key opnfv-helpdesk@rt.linuxfoundation.org \
+ --passphrase besteffort \
+ --detach-sig $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz
+
+gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz.sig gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz.sig
+echo "TAR signature Upload Complete!"
+}
+
+uploadtar () {
+# log info to console
+echo "Uploading $INSTALLER_TYPE artifact. This could take some time..."
+echo
+
+cd $WORKSPACE
+# upload artifact and additional files to google storage
+gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz \
+ gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz > gsutil.tar.log 2>&1
+gsutil cp $WORKSPACE/opnfv.properties \
+ gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
+if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
+ gsutil cp $WORKSPACE/opnfv.properties \
+ gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
+elif [[ "$JOB_NAME" =~ "merge" ]]; then
+ echo "Uploaded Escalator TAR for a merged change"
+fi
+
+gsutil -m setmeta \
+ -h "Content-Type:text/html" \
+ -h "Cache-Control:private, max-age=0, no-transform" \
+ gs://$GS_URL/latest.properties \
+ gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > /dev/null 2>&1
+
+gsutil -m setmeta \
+ -h "Cache-Control:private, max-age=0, no-transform" \
+ gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz > /dev/null 2>&1
+
+# disabled errexit due to gsutil setmeta complaints
+# BadRequestException: 400 Invalid argument
+# check if we uploaded the file successfully to see if things are fine
+gsutil ls gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz > /dev/null 2>&1
+if [[ $? -ne 0 ]]; then
+ echo "Problem while uploading artifact!"
+ echo "Check log $WORKSPACE/gsutil.bin.log on the machine where this build is done."
+ exit 1
+fi
+
+echo "Done!"
+echo
+echo "--------------------------------------------------------"
+echo
+echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz"
+echo
+echo "--------------------------------------------------------"
+echo
+}
+
+importkey
+signtar
+uploadtar
diff --git a/jjb/escalator/escalator.yml b/jjb/escalator/escalator.yml
new file mode 100644
index 000000000..dba76f7c2
--- /dev/null
+++ b/jjb/escalator/escalator.yml
@@ -0,0 +1,326 @@
+- project:
+ name: 'escalator'
+
+ project: 'escalator'
+#####################################
+# branch definitions
+#####################################
+ stream:
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+#####################################
+# phases
+#####################################
+ phase:
+ - 'basic':
+ slave-label: 'opnfv-build-centos'
+ - 'build':
+ slave-label: 'opnfv-build-centos'
+#####################################
+# jobs
+#####################################
+ jobs:
+ - 'escalator-verify-{stream}'
+ - 'escalator-verify-{phase}-{stream}'
+ - 'escalator-merge-{stream}'
+ - 'escalator-merge-{phase}-{stream}'
+#####################################
+# job templates
+#####################################
+- job-template:
+ name: 'escalator-verify-{stream}'
+
+ project-type: multijob
+
+ disabled: false
+
+ concurrent: true
+
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 4
+ option: 'project'
+
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - ssh-agent-credentials:
+ users:
+ - '{ssh-credentials}'
+ - timeout:
+ timeout: 360
+ fail: true
+
+ triggers:
+ - gerrit:
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: 'false'
+ exclude-trivial-rebase: 'false'
+ exclude-no-code-change: 'false'
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: 'recheck'
+ - comment-added-contains-event:
+ comment-contains-value: 'reverify'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**|.gitignore'
+ readable-message: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - 'opnfv-build-defaults'
+ - 'escalator-defaults':
+ gs-pathname: '{gs-pathname}'
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: basic
+ condition: SUCCESSFUL
+ projects:
+ - name: 'escalator-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: 'escalator-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
+
+- job-template:
+ name: 'escalator-verify-{phase}-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ concurrent: true
+
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - ssh-agent-credentials:
+ users:
+ - '{ssh-credentials}'
+ - timeout:
+ timeout: 360
+ fail: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - '{slave-label}-defaults'
+ - 'escalator-defaults':
+ gs-pathname: '{gs-pathname}'
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - '{project}-verify-{phase}-macro'
+
+- job-template:
+ name: 'escalator-merge-{stream}'
+
+ project-type: multijob
+
+ disabled: false
+
+ concurrent: true
+
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 4
+ option: 'project'
+
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - ssh-agent-credentials:
+ users:
+ - '{ssh-credentials}'
+ - timeout:
+ timeout: 360
+ fail: true
+
+ triggers:
+ - gerrit:
+ trigger-on:
+ - change-merged-event
+ - 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'
+ readable-message: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - 'opnfv-build-defaults'
+ - 'escalator-defaults':
+ gs-pathname: '{gs-pathname}'
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: basic
+ condition: SUCCESSFUL
+ projects:
+ - name: 'escalator-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: 'escalator-merge-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
+
+- job-template:
+ name: 'escalator-merge-{phase}-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ concurrent: true
+
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - ssh-agent-credentials:
+ users:
+ - '{ssh-credentials}'
+ - timeout:
+ timeout: 360
+ fail: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - '{slave-label}-defaults'
+ - 'escalator-defaults':
+ gs-pathname: '{gs-pathname}'
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - '{project}-merge-{phase}-macro'
+#####################################
+# builder macros
+#####################################
+- builder:
+ name: 'escalator-verify-basic-macro'
+ builders:
+ - shell:
+ !include-raw: ./escalator-basic.sh
+
+- builder:
+ name: 'escalator-verify-build-macro'
+ builders:
+ - shell:
+ !include-raw: ./escalator-build.sh
+
+- builder:
+ name: 'escalator-merge-basic-macro'
+ builders:
+ - shell:
+ !include-raw: ./escalator-basic.sh
+
+- builder:
+ name: 'escalator-merge-build-macro'
+ builders:
+ - shell:
+ !include-raw:
+ - ./escalator-build.sh
+ - ./escalator-upload-artifact.sh
+#####################################
+# parameter macros
+#####################################
+- parameter:
+ name: 'escalator-defaults'
+ 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/infra/bifrost-verify-jobs.yml b/jjb/infra/bifrost-verify-jobs.yml
index 751aa0c4a..be3cf9a0e 100644
--- a/jjb/infra/bifrost-verify-jobs.yml
+++ b/jjb/infra/bifrost-verify-jobs.yml
@@ -24,17 +24,24 @@
disabled: false
dib-os-release: 'trusty'
dib-os-element: 'ubuntu-minimal'
- dib-os-packages: 'openssh-server,vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl'
+ dib-os-packages: 'vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl'
+ extra-dib-elements: 'openssh-server'
- 'centos7':
disabled: false
dib-os-release: '7'
dib-os-element: 'centos7'
- dib-os-packages: 'openssh-server,vim,less,bridge-utils,iputils,rsyslog,curl'
+ dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl'
+ extra-dib-elements: 'openssh-server'
- 'suse':
- disabled: true
- dib-os-release: 'suse'
- dib-os-element: 'suse'
- dib-os-packages: ''
+ disabled: false
+ dib-os-release: '42.2'
+ dib-os-element: 'opensuse-minimal'
+ # python-xml is needed until https://review.openstack.org/#/c/400150/ is merged
+ dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl,python-xml'
+ extra-dib-elements: 'openssh-server'
+ vm-disk: '30'
+ vm-memory: '4096'
+ vm-cpu: '2'
#--------------------------------
# type
#--------------------------------
@@ -45,6 +52,16 @@
#--------------------------------
jobs:
- '{project}-bifrost-verify-{distro}-{type}-{stream}'
+
+#--------------------------------
+# VM defaults
+#--------------------------------
+- defaults:
+ name: vm_defaults
+ vm-disk: '100'
+ vm-memory: '8192'
+ vm-cpu: '4'
+
#--------------------------------
# job templates
#--------------------------------
@@ -53,6 +70,8 @@
disabled: '{obj:disabled}'
+ defaults: vm_defaults
+
concurrent: false
properties:
@@ -82,9 +101,21 @@
name: DIB_OS_ELEMENT
default: '{dib-os-element}'
- string:
+ name: EXTRA_DIB_ELEMENTS
+ default: '{extra-dib-elements}'
+ - string:
name: DIB_OS_PACKAGES
default: '{dib-os-packages}'
- string:
+ name: VM_DISK
+ default: '{vm-disk}'
+ - string:
+ name: VM_MEMORY
+ default: '{vm-memory}'
+ - string:
+ name: VM_CPU
+ default: '{vm-cpu}'
+ - string:
name: CLEAN_DIB_IMAGES
default: 'true'
- label:
diff --git a/jjb/opnfv/opnfv-docker.sh b/jjb/opnfv/opnfv-docker.sh
index e637f7b32..e0fbb7564 100644
--- a/jjb/opnfv/opnfv-docker.sh
+++ b/jjb/opnfv/opnfv-docker.sh
@@ -20,7 +20,7 @@ echo
if [[ -n $(ps -ef|grep 'docker build'|grep -v grep) ]]; then
echo "There is already another build process in progress:"
echo $(ps -ef|grep 'docker build'|grep -v grep)
- # Abort this job since it will colide and might mess up the current one.
+ # Abort this job since it will collide and might mess up the current one.
echo "Aborting..."
exit 1
fi
@@ -51,20 +51,6 @@ if [[ -n "$(docker images | grep $DOCKER_REPO_NAME)" ]]; then
done
fi
-# If we just want to update the latest_stable image
-if [[ "$UPDATE_LATEST_STABLE" == "true" ]]; then
- echo "Pulling $DOCKER_REPO_NAME:$STABLE_TAG ..."
- docker pull $DOCKER_REPO_NAME:$STABLE_TAG
- if [[ $? -ne 0 ]]; then
- echo "ERROR: The image $DOCKER_REPO_NAME with tag $STABLE_TAG does not exist."
- exit 1
- fi
- docker tag $DOCKER_REPO_NAME:$STABLE_TAG $DOCKER_REPO_NAME:latest_stable
- echo "Pushing $DOCKER_REPO_NAME:latest_stable ..."
- docker push $DOCKER_REPO_NAME:latest_stable
- exit 0
-fi
-
# cd to directory where Dockerfile is located
cd $WORKSPACE/docker
@@ -78,35 +64,20 @@ branch="${GIT_BRANCH##origin/}"
echo "Current branch: $branch"
if [[ "$branch" == "master" ]]; then
- DOCKER_TAG="master"
- DOCKER_BRANCH_TAG="latest"
+ DOCKER_TAG="latest"
else
- git clone https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng
-
- DOCKER_TAG=$($WORKSPACE/releng/utils/calculate_version.sh -t docker \
- -n $DOCKER_REPO_NAME)
- DOCKER_BRANCH_TAG="stable"
-
- ret_val=$?
- if [[ $ret_val -ne 0 ]]; then
- echo "Error retrieving the version tag."
- exit 1
- fi
+ DOCKER_TAG="stable"
fi
-echo "Tag version to be build and pushed: $DOCKER_TAG"
-
# Start the build
-echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG"
+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 ."
-if [[ $DOCKER_REPO_NAME == *"functest"* ]]; then
- docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG --build-arg BRANCH=$branch .
-else
- docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG .
-fi
+echo ${cmd}
+${cmd}
-echo "Creating tag '$DOCKER_TAG'..."
-docker tag $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG $DOCKER_REPO_NAME:$DOCKER_TAG
# list the images
echo "Available images are:"
@@ -117,10 +88,5 @@ if [[ "$PUSH_IMAGE" == "true" ]]; then
echo "Pushing $DOCKER_REPO_NAME:$DOCKER_TAG to the docker registry..."
echo "--------------------------------------------------------"
echo
- # Push to the Dockerhub repository
- echo "Pushing $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG ..."
- docker push $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG
-
- echo "Pushing $DOCKER_REPO_NAME:$DOCKER_TAG ..."
docker push $DOCKER_REPO_NAME:$DOCKER_TAG
fi
diff --git a/jjb/opnfv/opnfv-docker.yml b/jjb/opnfv/opnfv-docker.yml
index f313b3b92..0df0ddf6f 100644
--- a/jjb/opnfv/opnfv-docker.yml
+++ b/jjb/opnfv/opnfv-docker.yml
@@ -6,31 +6,44 @@
name: opnfv-docker
+ master: &master
+ stream: master
+ branch: '{stream}'
+ disabled: false
+ colorado: &colorado
+ stream: colorado
+ branch: 'stable/{stream}'
+ disabled: false
+
project:
- - 'bottlenecks'
- - 'cperf'
- - 'functest'
- - 'storperf'
- - 'qtip'
+ # projects with jobs for master
+ - 'bottlenecks':
+ <<: *master
+ - 'cperf':
+ <<: *master
+ - 'dovetail':
+ <<: *master
+ - 'functest':
+ <<: *master
+ - 'qtip':
+ <<: *master
+ - 'storperf':
+ <<: *master
+ - 'yardstick':
+ <<: *master
+ # projects with jobs for stable
+ - 'bottlenecks':
+ <<: *colorado
+ - 'functest':
+ <<: *colorado
+ - 'storperf':
+ <<: *colorado
+ - 'yardstick':
+ <<: *colorado
jobs:
- '{project}-docker-build-push-{stream}'
- - 'yardstick-docker-build-push-{stream}'
- #dovetail not sync with release, an independent job
- #only master by now, will adjust accordingly in future
- - 'dovetail-docker-build-push-{dovetailstream}'
- stream:
- - master:
- branch: '{stream}'
- disabled: false
- - colorado:
- branch: 'stable/{stream}'
- disabled: false
- dovetailstream:
- - master:
- branch: '{dovetailstream}'
- disabled: false
########################
# job templates
@@ -49,20 +62,9 @@
default: "true"
description: "To enable/disable pushing the image to Dockerhub."
- string:
- name: BASE_VERSION
- default: "colorado.0"
- description: "Base version to be used."
- - string:
name: DOCKER_REPO_NAME
default: "opnfv/{project}"
description: "Dockerhub repo to be pushed to."
- - string:
- name: UPDATE_LATEST_STABLE
- default: "false"
- description: "This will update the latest_stable image only."
- - string:
- name: STABLE_TAG
- description: "If above option is true, this is the tag to be pulled."
scm:
- git-scm:
@@ -78,92 +80,3 @@
- pollscm:
cron: "*/30 * * * *"
-- job-template:
- name: 'yardstick-docker-build-push-{stream}'
-
- disabled: '{obj:disabled}'
-
- parameters:
- - project-parameter:
- project: 'yardstick'
- - 'opnfv-build-ubuntu-defaults'
- - string:
- name: PUSH_IMAGE
- default: "true"
- description: "To enable/disable pushing the image to Dockerhub."
- - string:
- name: BASE_VERSION
- default: "colorado.0"
- description: "Base version to be used."
- - string:
- name: DOCKER_REPO_NAME
- default: "opnfv/yardstick"
- description: "Dockerhub repo to be pushed to."
- - string:
- name: UPDATE_LATEST_STABLE
- default: "false"
- description: "This will update the latest_stable image only."
- - string:
- name: STABLE_TAG
- description: "If above option is true, this is the tag to be pulled."
-
- scm:
- - git-scm:
- credentials-id: '{ssh-credentials}'
- refspec: ''
- branch: '{branch}'
-
- builders:
- - shell:
- !include-raw-escape: ./opnfv-docker.sh
-
- triggers:
- - pollscm:
- cron: "*/30 * * * *"
-
-- job-template:
- name: 'dovetail-docker-build-push-{dovetailstream}'
-
- disabled: '{obj:disabled}'
-
- parameters:
- - project-parameter:
- project: 'dovetail'
- - 'opnfv-build-ubuntu-defaults'
- - string:
- name: PUSH_IMAGE
- default: "true"
- description: "To enable/disable pushing the image to Dockerhub."
- #BASE_VERSION parameter is used for version control
- #by now, only master branch is used, this parameter takes no effect
- #once branch control settled, should be adjusted togather with
- #opnfv-docker.sh and caculate_version.sh
- - string:
- name: BASE_VERSION
- default: "1.0"
- description: "Base version to be used."
- - string:
- name: DOCKER_REPO_NAME
- default: "opnfv/dovetail"
- description: "Dockerhub repo to be pushed to."
- - string:
- name: UPDATE_LATEST_STABLE
- default: "false"
- description: "This will update the latest_stable image only."
- - string:
- name: STABLE_TAG
- description: "If above option is true, this is the tag to be pulled."
-
- scm:
- - git-scm:
- credentials-id: '{ssh-credentials}'
- refspec: ''
- branch: '{branch}'
-
- builders:
- - shell:
- !include-raw-escape: ./opnfv-docker.sh
-
- triggers:
- - pollscm:
- cron: "*/30 * * * *"
diff --git a/jjb/opnfv/opnfv-lint.yml b/jjb/opnfv/opnfv-lint.yml
index 6860dd037..652f28292 100644
--- a/jjb/opnfv/opnfv-lint.yml
+++ b/jjb/opnfv/opnfv-lint.yml
@@ -55,7 +55,7 @@
comment-contains-value: 'reverify'
projects:
- project-compare-type: 'REG_EXP'
- project-pattern: 'functest|sdnvpn|qtip|daisy|sfc'
+ project-pattern: 'functest|sdnvpn|qtip|daisy|sfc|escalator'
branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
diff --git a/jjb/qtip/qtip-project-jobs.yml b/jjb/qtip/qtip-project-jobs.yml
index 722a9beb3..f192e8679 100644
--- a/jjb/qtip/qtip-project-jobs.yml
+++ b/jjb/qtip/qtip-project-jobs.yml
@@ -59,4 +59,9 @@
builders:
- shell: |
- echo "Nothing to verify!"
+ #!/bin/bash
+ set -o errexit
+ set -o pipefail
+ set -o xtrace
+
+ tox
diff --git a/prototypes/bifrost/playbooks/test-bifrost-infracloud.yaml b/prototypes/bifrost/playbooks/test-bifrost-infracloud.yaml
index a0bc28506..541a1f7d4 100644
--- a/prototypes/bifrost/playbooks/test-bifrost-infracloud.yaml
+++ b/prototypes/bifrost/playbooks/test-bifrost-infracloud.yaml
@@ -53,7 +53,8 @@
dib_imagename: "{{deploy_image}}"
dib_os_element: "{{ lookup('env','DIB_OS_ELEMENT') }}"
dib_os_release: "{{ lookup('env', 'DIB_OS_RELEASE') }}"
- dib_elements: "vm serial-console simple-init devuser infra-cloud-bridge puppet growroot {{ extra_dib_elements|default('') }}"
+ extra_dib_elements: "{{ lookup('env', 'EXTRA_DIB_ELEMENTS') | default('') }}"
+ dib_elements: "vm serial-console simple-init devuser infra-cloud-bridge puppet growroot {{ extra_dib_elements }}"
dib_packages: "{{ lookup('env', 'DIB_OS_PACKAGES') }}"
when: create_image_via_dib | bool == true and transform_boot_image | bool == false
environment:
diff --git a/prototypes/bifrost/scripts/test-bifrost-deployment.sh b/prototypes/bifrost/scripts/test-bifrost-deployment.sh
index 32a066388..63d851438 100755
--- a/prototypes/bifrost/scripts/test-bifrost-deployment.sh
+++ b/prototypes/bifrost/scripts/test-bifrost-deployment.sh
@@ -65,6 +65,9 @@ export DIB_OS_ELEMENT=${DIB_OS_ELEMENT:-ubuntu-minimal}
# for centos 7: "openssh-server,vim,less,bridge-utils,iputils,rsyslog,curl"
export DIB_OS_PACKAGES=${DIB_OS_PACKAGES:-"openssh-server,vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl"}
+# Additional dib elements
+export EXTRA_DIB_ELEMENTS=${EXTRA_DIB_ELEMENTS:-}
+
# Source Ansible
# NOTE(TheJulia): Ansible stable-1.9 source method tosses an error deep
# under the hood which -x will detect, so for this step, we need to suspend
diff --git a/utils/calculate_version.sh b/utils/calculate_version.sh
deleted file mode 100755
index cf929dd5e..000000000
--- a/utils/calculate_version.sh
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/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
-##############################################################################
-
-# Calculates and generates the version tag for the OPNFV objects:
-# - Docker images
-# - ISOs
-# - Artifacts
-
-info () {
- logger -s -t "Calculate_version.info" "$*"
-}
-
-
-error () {
- logger -s -t "Calculate_version.error" "$*"
- exit 1
-}
-
-
-#Functions which calculate the version
-function docker_version() {
- docker_image=$1
- url_repo="https://registry.hub.docker.com/v2/repositories/${docker_image}/"
- url_tag="https://registry.hub.docker.com/v2/repositories/${docker_image}/tags/"
- status=$(curl -s --head -w %{http_code} ${url_repo} -o /dev/null)
- if [ "${status}" != "200" ]; then
- error "Cannot access ${url_repo}. Does the image ${docker_image} exist?"
- fi
- tag_json=$(curl $url_tag 2>/dev/null | python -mjson.tool | grep ${BASE_VERSION} | head -1)
- #e.g. tag_json= "name": "brahmaputra.0.2",
- #special case, for dovetail, not sync with release, tag_json name not headed with arno, etc
- if [ "${tag_json}" == "" ]; then
- echo ${BASE_VERSION}.0
- else
- tag=$(echo $tag_json | awk '{print $2}' | sed 's/\,//' | sed 's/\"//g')
- #e.g.: tag=brahmaputra.0.2
- #special case, for dovetail, not sync with release
- tag_current_version=$(echo $tag | sed 's/.*\.//')
- tag_new_version=$(($tag_current_version+1))
- #e.g.: tag=brahmaputra.0.3
- echo ${BASE_VERSION}.${tag_new_version}
- fi
-}
-
-
-function artifact_version() {
- # To be done
- error "Not supported yet..."
-}
-
-
-STORAGE_TYPES=(docker artifactrepo)
-TYPE=""
-NAME=""
-
-
-usage="Calculates the version text of one of the following objects.
-
-usage:
- bash $(basename "$0") [-h|--help] -t|--type docker|artifactrepo -n|--name <object_name>
-
-where:
- -h|--help show this help text
- -t|--type specify the storage location
- -n|--name name of the repository/object
-
-examples:
- $(basename "$0") -t docker -n opnfv/functest
- $(basename "$0") -t artifactrepo -n fuel"
-
-
-
-
-# Parse parameters
-while [[ $# > 0 ]]
- do
- key="$1"
- case $key in
- -h|--help)
- echo "$usage"
- exit 0
- shift
- ;;
- -t|--type)
- TYPE="$2"
- shift
- ;;
- -n|--name)
- NAME="$2"
- shift
- ;;
- *)
- error "unknown option $1"
- exit 1
- ;;
- esac
- shift # past argument or value
-done
-
-if [ -z "$BASE_VERSION" ]; then
- error "Base version must be specified as environment variable. Ex.: export BASE_VERSION='brahmaputra.0'"
-fi
-
-if [ "${TYPE}" == "" ]; then
- error "Please specify the type of object to get the version from. $usage"
-fi
-
-if [ "${NAME}" == "" ]; then
- error "Please specify the name for the given storage type. $usage"
-fi
-
-not_in=1
-for i in "${STORAGE_TYPES[@]}"; do
- if [[ "${TYPE}" == "$i" ]]; then
- not_in=0
- fi
-done
-if [ ${not_in} == 1 ]; then
- error "Unknown type: ${TYPE}. Available storage types are: [${STORAGE_TYPES[@]}]"
-fi
-
-
-#info "Calculating version for object '${TYPE}' with arguments '${INFO}'..."
-if [ "${TYPE}" == "docker" ]; then
- docker_version $NAME
-
-elif [ "${TYPE}" == "artifactrepo" ]; then
- artifact_version $NAME
-fi
diff --git a/utils/jenkins-jnlp-connect.sh b/utils/jenkins-jnlp-connect.sh
index 9ef4298ef..8337684ec 100755
--- a/utils/jenkins-jnlp-connect.sh
+++ b/utils/jenkins-jnlp-connect.sh
@@ -30,8 +30,6 @@ EOF
}
main () {
- dir=$(cd $(dirname $0); pwd)
-
#tests
if [[ -z $jenkinsuser || -z $jenkinshome ]]; then
echo "jenkinsuser or home not defined, please edit this file to define it"
@@ -60,17 +58,6 @@ main () {
fi
fi
-
- if [ -d /etc/monit/conf.d ]; then
- monitconfdir="/etc/monit/conf.d/"
- elif [ -d /etc/monit.d ]; then
- monitconfdir="/etc/monit.d"
- else
- echo "Could not determine the location of the monit configuration file."
- echo "Make sure monit is installed."
- exit 1
- fi
-
#make pid dir
pidfile="/var/run/$jenkinsuser/jenkins_jnlp_pid"
if ! [ -d /var/run/$jenkinsuser/ ]; then
@@ -94,29 +81,39 @@ main () {
exit 1
fi
fi
- fi
- makemonit () {
- echo "Writing the following as monit config:"
+ if [ -d /etc/monit/conf.d ]; then
+ monitconfdir="/etc/monit/conf.d/"
+ elif [ -d /etc/monit.d ]; then
+ monitconfdir="/etc/monit.d"
+ else
+ echo "Could not determine the location of the monit configuration file."
+ echo "Make sure monit is installed."
+ exit 1
+ fi
+
+ makemonit () {
+ echo "Writing the following as monit config:"
cat << EOF | tee $monitconfdir/jenkins
check process jenkins with pidfile /var/run/$jenkinsuser/jenkins_jnlp_pid
-start program = "/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $dir; export started_monit=true; $0 $@' with timeout 60 seconds"
+start program = "/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $jenkinshome; export started_monit=true; $0 $@' with timeout 60 seconds"
stop program = "/bin/bash -c '/bin/kill \$(/bin/cat /var/run/$jenkinsuser/jenkins_jnlp_pid)'"
EOF
- }
+ }
- if [[ -f $monitconfdir/jenkins ]]; then
- #test for diff
- if [[ "$(diff $monitconfdir/jenkins <(echo "\
+ if [[ -f $monitconfdir/jenkins ]]; then
+ #test for diff
+ if [[ "$(diff $monitconfdir/jenkins <(echo "\
check process jenkins with pidfile /var/run/$jenkinsuser/jenkins_jnlp_pid
-start program = \"/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $dir; export started_monit=true; $0 $@' with timeout 60 seconds\"
+start program = \"/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $jenkinshome; export started_monit=true; $0 $@' with timeout 60 seconds\"
stop program = \"/bin/bash -c '/bin/kill \$(/bin/cat /var/run/$jenkinsuser/jenkins_jnlp_pid)'\"\
") )" ]]; then
- echo "Updating monit config..."
+ echo "Updating monit config..."
+ makemonit $@
+ fi
+ else
makemonit $@
fi
- else
- makemonit $@
fi
if [[ $started_monit == "true" ]]; then
@@ -167,7 +164,8 @@ usage: $0 [OPTIONS]
-t test the connection string by connecting without monit
-f test firewall
-Example: $0 -j /home/jenkins/ -u jenkins -n lab1 -s 727fdefoofoofoofoofoofoofof800
+Example: $0 -j /home/jenkins -u jenkins -n lab1 -s 727fdefoofoofoofoofoofoofof800
+note: a trailing slash on -j /home/jenkins will break the script
EOF
exit 1
diff --git a/utils/test/reporting/functest/reporting-status.py b/utils/test/reporting/functest/reporting-status.py
index cb13b099c..66bdd57c1 100755
--- a/utils/test/reporting/functest/reporting-status.py
+++ b/utils/test/reporting/functest/reporting-status.py
@@ -55,25 +55,25 @@ logger.info("*******************************************")
# Retrieve test cases of Tier 1 (smoke)
config_tiers = functest_yaml_config.get("tiers")
-# we consider Tier 1 (smoke),2 (sdn suites) and 3 (features)
+# we consider Tier 1 (smoke),2 (features)
# to validate scenarios
# Tier > 4 are not used to validate scenarios but we display the results anyway
# tricky thing for the API as some tests are Functest tests
# other tests are declared directly in the feature projects
for tier in config_tiers:
- if tier['order'] > 0 and tier['order'] < 3:
+ if tier['order'] > 0 and tier['order'] < 2:
for case in tier['testcases']:
if case['name'] not in blacklist:
testValid.append(tc.TestCase(case['name'],
"functest",
case['dependencies']))
- elif tier['order'] == 3:
+ elif tier['order'] == 2:
for case in tier['testcases']:
if case['name'] not in blacklist:
testValid.append(tc.TestCase(case['name'],
case['name'],
case['dependencies']))
- elif tier['order'] > 3:
+ elif tier['order'] > 2:
for case in tier['testcases']:
if case['name'] not in blacklist:
otherTestCases.append(tc.TestCase(case['name'],