From d1dc394b83c8f19a7936e629c5b651dfac7eaf44 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Wed, 4 Oct 2017 15:58:38 +0100 Subject: [PATCH] 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 --- jjb/xci/bifrost-verify-jobs.yml | 58 +++------------------ jjb/xci/bifrost-verify.sh | 109 ++++------------------------------------ 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}' @@ -84,15 +74,12 @@ 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}' @@ -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 < -

Build results for $GERRIT_NAME/$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER

-

Job: $JOB_NAME

-
    -
  • build_log.txt
  • -EOF - - if [[ -d ${WORKSPACE}/logs ]]; then - pushd ${WORKSPACE}/logs &> /dev/null - for x in *.log; do - echo "
  • ${x}
  • " >> ${WORKSPACE}/index.html - done - popd &> /dev/null - fi - - cat >> ${WORKSPACE}/index.html << EOF -
- -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<