jjb: xci: Refactor bifrost jobs to use the XCI clean VM 27/44227/3
authorMarkos Chandras <mchandras@suse.de>
Wed, 4 Oct 2017 14:58:38 +0000 (15:58 +0100)
committerMarkos Chandras <mchandras@suse.de>
Wed, 4 Oct 2017 17:10:36 +0000 (18:10 +0100)
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>
jjb/xci/bifrost-verify-jobs.yml
jjb/xci/bifrost-verify.sh

index 137787d..5f0b657 100644 (file)
@@ -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}'
 
           block-level: 'NODE'
 
     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}'
           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'
           wipe-workspace: true
 
     triggers:
-      - '{project}-gerrit-trigger':
+      - 'openstack-gerrit-trigger':
           branch: '{branch}'
 
     builders:
                 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'
                   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
 # --------------------------
index 03d9afc..ef07309 100755 (executable)
@@ -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"