summaryrefslogtreecommitdiffstats
path: root/jjb
diff options
context:
space:
mode:
authorMarkos Chandras <mchandras@suse.de>2017-10-04 15:58:38 +0100
committerMarkos Chandras <mchandras@suse.de>2017-10-04 18:10:36 +0100
commitd1dc394b83c8f19a7936e629c5b651dfac7eaf44 (patch)
tree3770e7c5fcfaaa7bd9c909a86be656be5cd7aed5 /jjb
parentb9a211ba6da5bb9fde2425bc2f77ca0a779ed3c7 (diff)
jjb: xci: Refactor bifrost jobs to use the XCI clean VM
We no longer run opnfv/bifrost jobs so drop all the references from the configuration file. Moreover, make use of the releng-xci XCI clean VM virtual machine to run the tests on a clean environment. Finally, we drop the support for uploading logs to the artifacts.opnfv.org. This needs to be done for XCI as well so we will bring it back when we develop a universal solution. Change-Id: I9bad17508ab8ee6594aec444ab864b99331b616d Signed-off-by: Markos Chandras <mchandras@suse.de>
Diffstat (limited to 'jjb')
-rw-r--r--jjb/xci/bifrost-verify-jobs.yml58
-rwxr-xr-xjjb/xci/bifrost-verify.sh109
2 files changed, 17 insertions, 150 deletions
diff --git a/jjb/xci/bifrost-verify-jobs.yml b/jjb/xci/bifrost-verify-jobs.yml
index 137787d7a..5f0b6572a 100644
--- a/jjb/xci/bifrost-verify-jobs.yml
+++ b/jjb/xci/bifrost-verify-jobs.yml
@@ -8,16 +8,6 @@
- master:
branch: '{stream}'
# -------------------------------
- # projects
- # -------------------------------
- project:
- - 'openstack':
- project-repo: 'https://git.openstack.org/openstack/bifrost'
- clone-location: '$WORKSPACE/bifrost'
- - 'opnfv':
- project-repo: 'https://gerrit.opnfv.org/gerrit/releng-xci'
- clone-location: '$WORKSPACE/releng-xci'
- # -------------------------------
# distros
# -------------------------------
distro:
@@ -48,7 +38,7 @@
# jobs
# -------------------------------
jobs:
- - '{project}-bifrost-verify-{distro}-{type}-{stream}'
+ - 'openstack-bifrost-verify-{distro}-{type}-{stream}'
# -------------------------------
# VM defaults
@@ -67,7 +57,7 @@
# job templates
# -------------------------------
- job-template:
- name: '{project}-bifrost-verify-{distro}-{type}-{stream}'
+ name: 'openstack-bifrost-verify-{distro}-{type}-{stream}'
disabled: '{obj:disabled}'
@@ -85,14 +75,11 @@
parameters:
- string:
- name: PROJECT
- default: '{project}'
- - string:
name: PROJECT_REPO
- default: '{project-repo}'
+ default: 'https://git.openstack.org/openstack/bifrost'
- string:
name: CLONE_LOCATION
- default: '{clone-location}'
+ default: '$WORKSPACE/bifrost'
- string:
name: DISTRO
default: '{distro}'
@@ -134,12 +121,7 @@
default: 'true'
- label:
name: SLAVE_LABEL
- default: 'infra-{type}-{distro}'
- # yamllint disable rule:line-length
- - string:
- name: BIFROST_LOG_URL
- default: 'http://artifacts.opnfv.org/cross-community-ci/openstack/bifrost/$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER/$JOB_NAME'
- # yamllint enable rule:line-length
+ default: 'xci-virtual'
- string:
name: XCI_LOOP
default: 'verify'
@@ -156,7 +138,7 @@
wipe-workspace: true
triggers:
- - '{project}-gerrit-trigger':
+ - 'openstack-gerrit-trigger':
branch: '{branch}'
builders:
@@ -190,7 +172,6 @@
exclude-no-code-change: 'false'
- comment-added-contains-event:
comment-contains-value: 'recheck'
- custom-url: '* $JOB_NAME $BIFROST_LOG_URL/index.html'
silent-start: true
projects:
- project-compare-type: 'PLAIN'
@@ -206,33 +187,6 @@
pattern: 'releasenotes/**'
readable-message: true
-- trigger:
- name: 'opnfv-gerrit-trigger'
- 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'
- custom-url: '* $JOB_NAME $BIFROST_LOG_URL/index.html'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: 'releng-xci'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- file-paths:
- - compare-type: ANT
- pattern: 'bifrost/**'
- readable-message: true
-
# --------------------------
# builder macros
# --------------------------
diff --git a/jjb/xci/bifrost-verify.sh b/jjb/xci/bifrost-verify.sh
index 03d9afccd..ef0730938 100755
--- a/jjb/xci/bifrost-verify.sh
+++ b/jjb/xci/bifrost-verify.sh
@@ -11,100 +11,6 @@ set -o errexit
set -o nounset
set -o pipefail
-trap cleanup_and_upload EXIT
-
-function upload_logs() {
- BIFROST_CONSOLE_LOG="${BUILD_URL}/consoleText"
- BIFROST_GS_URL=${BIFROST_LOG_URL/http:/gs:}
-
- # 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 ${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: <a href=${BUILD_URL}>$JOB_NAME</a></h2>
-<ul>
-<li><a href=${BIFROST_LOG_URL}/build_log.txt>build_log.txt</a></li>
-EOF
-
- 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 >> ${WORKSPACE}/index.html << EOF
-</ul>
-</html>
-EOF
-
- # Upload landing page
- echo "Uploading the landing page"
- gsutil -q cp ${WORKSPACE}/index.html ${BIFROST_GS_URL}/index.html
- rm -f ${WORKSPACE}/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 -f ${WORKSPACE}/build_log.txt
-}
-
-function fix_ownership() {
- if [ -z "${JOB_URL+x}" ]; then
- echo "Not running as part of Jenkins. Handle the logs manually."
- else
- # Make sure cache exists
- [[ ! -d ${HOME}/.cache ]] && mkdir ${HOME}/.cache
-
- sudo chown -R jenkins:jenkins $WORKSPACE
- sudo chown -R jenkins:jenkins ${HOME}/.cache
- fi
-}
-
-function cleanup_and_upload() {
- original_exit=$?
- echo "Job exit code: $original_exit"
- # Turn off errexit
- set +o errexit
- fix_ownership
- upload_logs
- exit $original_exit
-}
-
-# check distro to see if we support it
-if [[ ! "$DISTRO" =~ (xenial|centos7|suse) ]]; then
- echo "Distro $DISTRO is not supported!"
- exit 1
-fi
-
-# remove previously cloned repos
-/bin/rm -rf $WORKSPACE/bifrost $WORKSPACE/releng-xci
-
-# Fix up permissions
-fix_ownership
-
-# clone all the repos first and checkout the patch afterwards
git clone https://git.openstack.org/openstack/bifrost $WORKSPACE/bifrost
git clone https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE/releng-xci
@@ -115,10 +21,9 @@ git fetch $PROJECT_REPO $GERRIT_REFSPEC && sudo git checkout FETCH_HEAD
# combine opnfv and upstream scripts/playbooks
/bin/cp -rf $WORKSPACE/releng-xci/bifrost/* $WORKSPACE/bifrost/
-# cleanup remnants of previous deployment
-cd $WORKSPACE/bifrost
-sudo -H -E ./scripts/destroy-env.sh
-
+cd $WORKSPACE/releng-xci
+cat > bifrost_test.sh<<EOF
+cd ~/bifrost
# provision 3 VMs; xcimaster, controller, and compute
cd $WORKSPACE/bifrost
./scripts/bifrost-provision.sh
@@ -128,3 +33,11 @@ cd $WORKSPACE/bifrost
source env-vars
ironic node-list
sudo -H -E virsh list
+EOF
+chmod a+x bifrost_test.sh
+
+./xci/scripts/vm/start-new-vm.sh $DISTRO
+
+rsync -a $WORKSPACE/bifrost ${DISTRO,,}_xci_vm:~/bifrost
+
+ssh ${DISTRO,,}_xci_vm "cd ~/bifrost && ./bifrost_test.sh"