diff options
35 files changed, 777 insertions, 591 deletions
diff --git a/docs/etc/conf.py b/docs/etc/conf.py index d10868de5..8540f9997 100644 --- a/docs/etc/conf.py +++ b/docs/etc/conf.py @@ -15,7 +15,10 @@ we encourage you to propose a change in the releng repository. For further guidance see the https://wiki.opnfv.org/documentation/tools page. ''' -extensions = ['sphinxcontrib.httpdomain'] +extensions = ['sphinxcontrib.httpdomain', + 'sphinx.ext.autodoc', + 'sphinx.ext.viewcode', + 'sphinx.ext.napoleon'] needs_sphinx = '1.3' master_doc = 'index' diff --git a/jjb/apex/apex.yml b/jjb/apex/apex.yml index be595d4a3..57825cecd 100644 --- a/jjb/apex/apex.yml +++ b/jjb/apex/apex.yml @@ -14,6 +14,9 @@ - master: branch: 'master' gs-pathname: '' + - brahmaputra: + branch: 'stable/brahmaputra' + gs-pathname: '/brahmaputra' project: 'apex' @@ -25,6 +28,7 @@ parameters: - apex-parameter: gs-pathname: '{gs-pathname}' + ARTIFACT_VERSION: 'dev' - project-parameter: project: '{project}' - gerrit-parameter: @@ -57,7 +61,7 @@ project-pattern: 'apex' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' file-paths: - compare-type: ANT pattern: 'ci/**' @@ -243,7 +247,7 @@ - "apex-verify.*" - "apex-deploy.*" - "apex-build.*" - - "apex-daily.*" + builders: - 'apex-deploy-baremetal' @@ -282,15 +286,16 @@ - "apex-build.*" triggers: - - 'apex-{stream}' + - 'apex-master' builders: - trigger-builds: - project: 'apex-build-{stream}' git-revision: true + current-parameters: true block: true - trigger-builds: - - project: 'apex-deploy-virtual-{stream}' + - project: 'apex-deploy-baremetal-{stream}' git-revision: true block: true - trigger-builds: @@ -300,6 +305,13 @@ build-step-failure-threshold: 'never' failure-threshold: 'never' unstable-threshold: 'FAILURE' + - trigger-builds: + - project: 'yardstick-apex-opnfv-jump-1-daily-{stream}' + block: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' ######################## # parameter macros @@ -312,12 +324,16 @@ default: 'latest' description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact" - string: + name: ARTIFACT_VERSION + default: 'daily' + description: "Artifact version type" + - 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/{gs-pathname} + default: $HOME/opnfv/cache{gs-pathname} description: "Directory where the cache to be used during the build is located." - string: name: GIT_BASE @@ -325,7 +341,7 @@ description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." - string: name: GS_URL - default: artifacts.opnfv.org/$PROJECT/{gs-pathname} + default: artifacts.opnfv.org/$PROJECT{gs-pathname} description: "URL to Google Storage." ######################## @@ -346,7 +362,17 @@ # create the cache directory if it doesn't exist [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY # set OPNFV_ARTIFACT_VERSION - export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S") + if echo $GERRIT_BRANCH | grep "brahmaputra" 1> /dev/null; then + export OPNFV_ARTIFACT_VERSION="bramaputra.1.rc0" + else + if echo $BUILD_TAG | grep "apex-verify" 1> /dev/null; then + export OPNFV_ARTIFACT_VERSION=dev${BUILD_NUMBER} + elif [ "$ARTIFACT_VERSION" == "daily" ]; then + export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d") + else + export OPNFV_ARTIFACT_VERSION=${ARTIFACT_VERSION} + fi + fi # start the build cd $WORKSPACE/ci ./build.sh -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY @@ -447,14 +473,27 @@ source opnfv.properties RPM_INSTALL_PATH=build_output/$(basename $OPNFV_RPM_URL) + if [ ! -e "$RPM_INSTALL_PATH" ]; then + RPM_INSTALL_PATH=http://${OPNFV_RPM_URL} + fi + + RPM_LIST=$RPM_INSTALL_PATH + for pkg in common undercloud; do + RPM_LIST+=" ${RPM_INSTALL_PATH/opnfv-apex/opnfv-apex-${pkg}}" + done # update / install the new rpm if rpm -q opnfv-apex > /dev/null; then - if sudo yum update -y $RPM_INSTALL_PATH | grep "does not update installed package"; then - sudo yum downgrade -y $RPM_INSTALL_PATH; + if [ $(basename $OPNFV_RPM_URL) == $(rpm -q opnfv-apex).rpm ]; then + echo "RPM is already installed" + elif sudo yum update -y $RPM_LIST | grep "does not update installed package"; then + if ! sudo yum downgrade -y $RPM_LIST; then + yum remove -y opnfv-undercloud opnfv-common + sudo yum downgrade -y $RPM_INSTALL_PATH + fi fi else - sudo yum install -y $RPM_INSTALL_PATH; + sudo yum install -y $RPM_LIST; fi # cleanup virtual machines before we start @@ -510,15 +549,23 @@ RPM_INSTALL_PATH=http://${OPNFV_RPM_URL} fi + RPM_LIST=$RPM_INSTALL_PATH + for pkg in common undercloud; do + RPM_LIST+=" ${RPM_INSTALL_PATH/opnfv-apex/opnfv-apex-${pkg}}" + done + # update / install the new rpm if rpm -q opnfv-apex > /dev/null; then if [ $(basename $OPNFV_RPM_URL) == $(rpm -q opnfv-apex).rpm ]; then echo "RPM is already installed" - elif sudo yum update -y $RPM_INSTALL_PATH | grep "does not update installed package"; then - sudo yum downgrade -y $RPM_INSTALL_PATH; + elif sudo yum update -y $RPM_LIST | grep "does not update installed package"; then + if ! sudo yum downgrade -y $RPM_LIST; then + yum remove -y opnfv-undercloud opnfv-common + sudo yum downgrade -y $RPM_INSTALL_PATH + fi fi else - sudo yum install -y $RPM_INSTALL_PATH; + sudo yum install -y $RPM_LIST; fi # cleanup environment before we start diff --git a/jjb/apex/opnfv-apex.yml b/jjb/apex/opnfv-apex.yml deleted file mode 100644 index 5240bbabb..000000000 --- a/jjb/apex/opnfv-apex.yml +++ /dev/null @@ -1,84 +0,0 @@ -######################## -# Job configuration for apex -######################## -- project: - - name: 'opnfv-apex' - - installer: 'apex' - - controller: - - 'odl' - - 'onos' - - 'opencontrail' - - pod: 'intelpod2-jumphost' - - stream: - - master: - branch: 'master' - gs-pathname: '' - - jobs: - - 'opnfv-apex-{controller}-{pod}-daily-{stream}' - - 'opnfv-apex-deploy-{pod}-daily-{stream}' - -######################## -# job templates -######################## -- job-template: - name: 'opnfv-apex-{controller}-{pod}-daily-{stream}' - - disabled: true - - concurrent: false - - parameters: - - project-parameter: - project: '{installer}' - - '{pod}-defaults' - - '{installer}-defaults': - controller: '{controller}' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - builders: - - trigger-builds: - - project: 'opnfv-apex-daily-deploy-{stream}' - git-revision: true - block: true - predefined-parameters: - CONTROLLER={controller} - -- job-template: - name: 'opnfv-apex-deploy-{pod}-daily-{stream}' - - disabled: true - - concurrent: false - - wrappers: - - build-name: - name: '$BUILD_NUMBER: {installer} $CONTROLLER' - - parameters: - - project-parameter: - project: '{installer}' - - '{pod}-defaults' - - '{installer}-defaults' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - builders: - - shell: | - #!/bin/bash - echo "Hello World from OPNFV $INSTALLER_TYPE" - echo "Running $INSTALLER_TYPE with controller $CONTROLLER" diff --git a/jjb/bottlenecks/bottlenecks-ci-jobs.yml b/jjb/bottlenecks/bottlenecks-ci-jobs.yml new file mode 100644 index 000000000..b4b736faa --- /dev/null +++ b/jjb/bottlenecks/bottlenecks-ci-jobs.yml @@ -0,0 +1,205 @@ +#################################### +# job configuration for bottlenecks +#################################### +- project: + name: bottlenecks-ci-jobs + + project: 'bottlenecks' + +#-------------------------------- +# BRANCH ANCHORS +#-------------------------------- + master: &master + stream: master + branch: '{stream}' + gs-pathname: '' + brahmaputra: &brahmaputra + stream: brahmaputra + branch: 'stable/{stream}' + gs-pathname: '{stream}' +#-------------------------------- +# POD, INSTALLER, AND BRANCH MAPPING +#-------------------------------- +# brahmaputra +#-------------------------------- + pod: + - opnfv-jump-2: + installer: fuel + <<: *brahmaputra + - intel-pod5: + installer: joid + <<: *brahmaputra + - huawei-us-deploy-bare-1: + installer: compass + <<: *brahmaputra +#-------------------------------- +# master +#-------------------------------- + - ericsson-pod1: + installer: fuel + <<: *master + - ericsson-pod2: + installer: fuel + <<: *master + - intel-pod6: + installer: joid + <<: *master + - intel-pod8: + installer: compass + <<: *master + - zte-build-1: + installer: fuel + <<: *master + - orange-pod2: + installer: joid + <<: *master +#-------------------------------- + suite: + - 'rubbos' + - 'vstf' + + jobs: + - 'bottlenecks-{installer}-{suite}-{pod}-daily-{stream}' + +################################ +# job templates +################################ +- job-template: + name: 'bottlenecks-{installer}-{suite}-{pod}-daily-{stream}' + + disabled: false + + wrappers: + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + + parameters: + - project-parameter: + project: '{project}' + - '{pod}-defaults' + - '{installer}-defaults' + - 'bottlenecks-params-{pod}' + - string: + name: GERRIT_REFSPEC_DEBUG + default: '' + description: "Gerrit refspec for debug." + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + builders: + - 'bottlenecks-fetch-os-creds' + - 'bottlenecks-run-{suite}' + + publishers: + - email: + recipients: hongbo.tianhongbo@huawei.com matthew.lijun@huawei.com liangqi1@huawei.com liyiting@huawei.com + +######################## +# builder macros +######################## +#- builder: +# name: bottlenecks-fetch-os-creds +# builders: +# - shell: +# !include-raw ../../utils/fetch_os_creds.sh + +#- builder: +# name: bottlenecks-run-rubbos +# builders: +# - shell: | +# #!/bin/bash +# set -o errexit +# +# echo "Bottlenecks: rubbos running now..." +# cd $WORKSPACE +# ./ci/run.sh $GERRIT_REFSPEC_DEBUG + +#- builder: +# name: bottlenecks-run-vstf +# builders: +# - shell: | +# #!/bin/bash +# set -o errexit + +# echo "Bottlenecks: vstf running now..." +# cd $WORKSPACE +# ./ci/vstf_run.sh $GERRIT_REFSPEC_DEBUG + +######################## +# parameter macros +######################## +- parameter: + name: 'bottlenecks-params-intel-pod5' + parameters: + - string: + name: BOTTLENECKS_DB_TARGET + default: '213.77.62.197' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: + name: 'bottlenecks-params-intel-pod6' + parameters: + - string: + name: BOTTLENECKS_DB_TARGET + default: '213.77.62.197' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: + name: 'bottlenecks-params-intel-pod8' + parameters: + - string: + name: BOTTLENECKS_DB_TARGET + default: '213.77.62.197' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: + name: 'bottlenecks-params-ericsson-pod1' + parameters: + - string: + name: BOTTLENECKS_DB_TARGET + default: '213.77.62.197' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: + name: 'bottlenecks-params-ericsson-pod2' + parameters: + - string: + name: BOTTLENECKS_DB_TARGET + default: '213.77.62.197' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: + name: 'bottlenecks-params-opnfv-jump-2' + parameters: + - string: + name: BOTTLENECKS_DB_TARGET + default: '213.77.62.197' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: + name: 'bottlenecks-params-huawei-us-deploy-bare-1' + parameters: + - string: + name: BOTTLENECKS_DB_TARGET + default: '213.77.62.197' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: + name: 'bottlenecks-params-zte-build-1' + parameters: + - string: + name: BOTTLENECKS_DB_TARGET + default: '213.77.62.197' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: + name: 'bottlenecks-params-orange-pod2' + parameters: + - string: + name: BOTTLENECKS_DB_TARGET + default: '213.77.62.197' + description: 'Arguments to use in order to choose the backend DB' diff --git a/jjb/bottlenecks/bottlenecks.yml b/jjb/bottlenecks/bottlenecks.yml index c29c5688b..26069cf7b 100644 --- a/jjb/bottlenecks/bottlenecks.yml +++ b/jjb/bottlenecks/bottlenecks.yml @@ -182,7 +182,7 @@ name: bottlenecks-fetch-os-creds builders: - shell: - !include-raw ../../utils/fetch_os_creds.sh + !include-raw: ../../utils/fetch_os_creds.sh - builder: name: bottlenecks-run-rubbos diff --git a/jjb/compass4nfv/compass-ci-jobs.yml b/jjb/compass4nfv/compass-ci-jobs.yml index f68597e3a..535fb3b31 100644 --- a/jjb/compass4nfv/compass-ci-jobs.yml +++ b/jjb/compass4nfv/compass-ci-jobs.yml @@ -30,41 +30,49 @@ - intel-pod8: <<: *master - sdn-controller: - - 'nosdn': + scenario: + - 'os-nosdn-nofeature-ha': disabled: false - - 'odl': + auto-trigger-name: 'compass-{scenario}-{pod}-trigger' + - 'os-odl_l2-nofeature-ha': disabled: false - - 'onos': + auto-trigger-name: 'compass-{scenario}-{pod}-trigger' + - 'os-onos-nofeature-ha': disabled: false -# - 'opencontrail': + auto-trigger-name: 'compass-{scenario}-{pod}-trigger' +# - 'os-ocl-nofeature-ha': # disabled: true +# auto-trigger-name: 'joid-{scenario}-{pod}-trigger' jobs: - - 'compass-{sdn-controller}-{pod}-daily-{stream}' + - 'compass-{scenario}-{pod}-daily-{stream}' - 'compass-deploy-{pod}-daily-{stream}' ######################## # job templates ######################## - job-template: - name: 'compass-{sdn-controller}-{pod}-daily-{stream}' + name: 'compass-{scenario}-{pod}-daily-{stream}' project-type: multijob node: huawei-build - concurrent: true + concurrent: false properties: - throttle: enabled: true max-total: 1 max-per-node: 1 + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'compass-os-.*?-{pod}-daily-{stream}' wrappers: - build-name: - name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' parameters: - project-parameter: @@ -73,23 +81,13 @@ installer: '{installer}' gs-pathname: '{gs-pathname}' - string: - name: SDN_CONTROLLER - default: '{sdn-controller}' - - string: name: DEPLOY_SCENARIO default: 'none' - 'huawei-build-defaults' - '{installer}-defaults' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - triggers: - - 'compass-{pod}-{sdn-controller}-trigger' + - '{auto-trigger-name}' builders: - multijob: @@ -98,7 +96,7 @@ projects: - name: 'compass-deploy-{pod}-daily-{stream}' current-parameters: false - git-revision: true + predefined-parameters: 'DEPLOY_SCENARIO={scenario}' kill-phase-on: FAILURE - multijob: name: functest @@ -106,6 +104,7 @@ projects: - name: 'functest-compass-{pod}-daily-{stream}' current-parameters: false + predefined-parameters: 'DEPLOY_SCENARIO={scenario}' kill-phase-on: NEVER - multijob: name: yardstick @@ -113,6 +112,7 @@ projects: - name: 'yardstick-compass-{pod}-daily-{stream}' current-parameters: false + predefined-parameters: 'DEPLOY_SCENARIO={scenario}' kill-phase-on: NEVER - job-template: @@ -120,13 +120,17 @@ disabled: false - concurrent: true + concurrent: false properties: - throttle: enabled: true max-total: 1 max-per-node: 1 + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'compass-deploy-{pod}-daily-{stream}' parameters: - project-parameter: @@ -134,12 +138,6 @@ - compass-ci-parameter: installer: '{installer}' gs-pathname: '{gs-pathname}' - - string: - name: SDN_CONTROLLER - default: '{sdn-controller}' - - string: - name: DEPLOY_SCENARIO - default: 'none' - '{pod}-defaults' - '{installer}-defaults' @@ -151,16 +149,16 @@ wrappers: - build-name: - name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' builders: - shell: - !include-raw ./compass-workspace-precleanup.sh + !include-raw: ./compass-workspace-precleanup.sh - shell: - !include-raw ./compass-download-artifact.sh + !include-raw: ./compass-download-artifact.sh - shell: - !include-raw ./compass-deploy-bare.sh + !include-raw: ./compass-deploy-bare.sh publishers: - archive: @@ -207,34 +205,34 @@ # trigger macros ######################## - trigger: - name: 'compass-huawei-us-deploy-bare-1-nosdn-trigger' + name: 'compass-os-nosdn-nofeature-ha-huawei-us-deploy-bare-1-trigger' triggers: - timed: '0 16 * * * ' - trigger: - name: 'compass-huawei-us-deploy-bare-1-odl-trigger' + name: 'compass-os-odl_l2-nofeature-ha-huawei-us-deploy-bare-1-trigger' triggers: - timed: '' - trigger: - name: 'compass-huawei-us-deploy-bare-1-onos-trigger' + name: 'compass-os-onos-nofeature-ha-huawei-us-deploy-bare-1-trigger' triggers: - timed: '' - trigger: - name: 'compass-huawei-us-deploy-bare-1-opencontrail-trigger' + name: 'compass-os-ocl-nofeature-ha-huawei-us-deploy-bare-1-trigger' triggers: - timed: '' - trigger: - name: 'compass-intel-pod8-nosdn-trigger' + name: 'compass-os-nosdn-nofeature-ha-intel-pod8-trigger' triggers: - timed: '' - trigger: - name: 'compass-intel-pod8-odl-trigger' + name: 'compass-os-odl_l2-nofeature-ha-intel-pod8-trigger' triggers: - timed: '0 16 * * *' - trigger: - name: 'compass-intel-pod8-onos-trigger' + name: 'compass-os-onos-nofeature-ha-intel-pod8-trigger' triggers: - timed: '' - trigger: - name: 'compass-intel-pod8-opencontrail-trigger' + name: 'compass-os-ocl-nofeature-ha-intel-pod8-trigger' triggers: - timed: '' diff --git a/jjb/compass4nfv/compass-project-jobs.yml b/jjb/compass4nfv/compass-project-jobs.yml index 1395fa532..345c4c3fb 100644 --- a/jjb/compass4nfv/compass-project-jobs.yml +++ b/jjb/compass4nfv/compass-project-jobs.yml @@ -64,6 +64,9 @@ gs-pathname: '{gs-pathname}' - '{node}-defaults' - '{installer}-defaults' + - string: + name: SDN_CONTROLLER + default: 'nosdn' scm: - gerrit-trigger-scm: @@ -95,9 +98,9 @@ builders: - shell: - !include-raw ./compass-build.sh + !include-raw: ./compass-build.sh - shell: - !include-raw ./compass-deploy-virtual.sh + !include-raw: ./compass-deploy-virtual.sh publishers: - archive: @@ -184,11 +187,11 @@ builders: - shell: - !include-raw ./compass-build.sh + !include-raw: ./compass-build.sh - shell: - !include-raw ./compass-upload-artifact.sh + !include-raw: ./compass-upload-artifact.sh - shell: - !include-raw ./compass-workspace-cleanup.sh + !include-raw: ./compass-workspace-cleanup.sh - job-template: name: 'compass-build-ppa-{stream}' @@ -221,7 +224,7 @@ builders: - shell: - !include-raw ./compass-makeppa.sh + !include-raw: ./compass-makeppa.sh - job-template: name: 'compass-deploy-virtual-{sdn-controller}-{stream}' @@ -255,11 +258,11 @@ builders: - shell: - !include-raw ./compass-workspace-precleanup.sh + !include-raw: ./compass-workspace-precleanup.sh - shell: - !include-raw ./compass-download-artifact.sh + !include-raw: ./compass-download-artifact.sh - shell: - !include-raw ./compass-deploy-virtual.sh + !include-raw: ./compass-deploy-virtual.sh publishers: - archive: diff --git a/jjb/fuel/fuel-ci-jobs-master.yml b/jjb/fuel/fuel-ci-jobs-master.yml deleted file mode 100644 index dffafe850..000000000 --- a/jjb/fuel/fuel-ci-jobs-master.yml +++ /dev/null @@ -1,154 +0,0 @@ -- project: - - name: 'fuel-master' - - project: 'fuel' - - installer: '{project}' - -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- - master: &master - stream: master - branch: '{stream}' - gs-pathname: '' -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- - pod: - - ericsson-pod2: - <<: *master -#-------------------------------- - -# new scenario descriptions - scenario: - - 'os_ha' - - 'os_odl-l2_ha' - - 'os_odl-l3_ha' - - 'os_onos_ha' - - 'os_kvm_ha' - - 'os_ovs_ha' - - 'os_kvm_ovs_ha' - - jobs: - - 'fuel-{scenario}-{pod}-daily-{stream}' - - 'fuel-deploy-{pod}-daily-{stream}-development' - -######################## -# job templates - new type of defining the scenario -######################## -- job-template: - name: 'fuel-{scenario}-{pod}-daily-{stream}' - - project-type: multijob - - concurrent: false - - properties: - - throttle: - enabled: true - max-total: 1 - max-per-node: 1 - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-os_.*' - - wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - parameters: - - project-parameter: - project: '{project}' - - '{pod}-defaults' - - '{installer}-defaults' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - - fuel-ci-parameter: - gs-pathname: '{gs-pathname}' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - builders: - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'fuel-deploy-{pod}-daily-{stream}' - current-parameters: true - git-revision: true - kill-phase-on: FAILURE - - multijob: - name: functest - condition: COMPLETED - projects: - - name: 'functest-fuel-{pod}-daily-{stream}' - current-parameters: true - kill-phase-on: NEVER - - multijob: - name: yardstick - condition: COMPLETED - projects: - - name: 'yardstick-fuel-{pod}-daily-{stream}' - current-parameters: true - kill-phase-on: NEVER - -- job-template: - name: 'fuel-deploy-{pod}-daily-{stream}-development' - - concurrent: false - - properties: - - throttle: - enabled: true - max-total: 1 - max-per-node: 1 - - parameters: - - project-parameter: - project: 'fuel' - - 'ericsson-pod2-defaults' - - 'fuel-defaults' - - fuel-ci-parameter-new: - gs-pathname: '' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: 'master' - - wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - builders: - - shell: - !include-raw-escape: ./fuel-download-artifact.sh - - shell: - !include-raw-escape: ./fuel-deploy-master.sh -######################## -# parameter macros -######################## -- parameter: - name: fuel-ci-parameter-new - 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/fuel/fuel-ci-jobs.yml b/jjb/fuel/fuel-ci-jobs.yml index c90d930c1..9caf3d183 100644 --- a/jjb/fuel/fuel-ci-jobs.yml +++ b/jjb/fuel/fuel-ci-jobs.yml @@ -1,3 +1,4 @@ +# jenkins job templates for Fuel - project: name: 'fuel' @@ -25,6 +26,8 @@ pod: - opnfv-jump-2: <<: *brahmaputra + - virtual: + <<: *brahmaputra #-------------------------------- # master #-------------------------------- @@ -32,21 +35,38 @@ <<: *master - ericsson-pod2: <<: *master + - virtual: + <<: *master #-------------------------------- -# please check the triggers before enabling any of the controllers!!! - sdn-controller: - - 'nosdn' +# new scenario descriptions + scenario: + - 'os-nosdn-kvm-ha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' + - 'os-nosdn-kvm_ovs-ha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' + - 'os-nosdn-nofeature-ha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' + - 'os-nosdn-ovs-ha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' + - 'os-nosdn-vlan-ha': + auto-trigger-name: 'fuel-{scenario}-{pod}-trigger' + - 'os-odl_l2-nofeature-ha': + auto-trigger-name: 'fuel-{scenario}-{pod}-trigger' + - 'os-odl_l3-nofeature-ha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' + - 'os-onos-nofeature-ha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' jobs: - - 'fuel-{sdn-controller}-{pod}-daily-{stream}' + - 'fuel-{scenario}-{pod}-daily-{stream}' - 'fuel-deploy-{pod}-daily-{stream}' ######################## # job templates - old type of defining the scenario ######################## - job-template: - name: 'fuel-{sdn-controller}-{pod}-daily-{stream}' + name: 'fuel-{scenario}-{pod}-daily-{stream}' project-type: multijob @@ -60,14 +80,14 @@ - build-blocker: use-build-blocker: true blocking-jobs: - - 'fuel-{sdn-controller}-{pod}-daily-{stream}' + - 'fuel-os-.*?-{pod}-daily-{stream}' wrappers: - build-name: - name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' triggers: - - 'fuel-{pod}-{sdn-controller}-trigger' + - '{auto-trigger-name}' parameters: - project-parameter: @@ -75,20 +95,11 @@ - '{pod}-defaults' - '{installer}-defaults' - string: - name: SDN_CONTROLLER - default: '{sdn-controller}' - - string: name: DEPLOY_SCENARIO - default: 'none' + default: '{scenario}' - fuel-ci-parameter: gs-pathname: '{gs-pathname}' - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - builders: - multijob: name: deploy @@ -96,7 +107,6 @@ projects: - name: 'fuel-deploy-{pod}-daily-{stream}' current-parameters: true - git-revision: true kill-phase-on: FAILURE - multijob: name: functest @@ -126,9 +136,7 @@ - build-blocker: use-build-blocker: true blocking-jobs: - - 'fuel-deploy-{pod}-daily-{stream}.*' - - 'functest-fuel-{pod}-daily-{stream}' - - 'yardstick-fuel-{pod}-daily-{stream}' + - 'fuel-deploy-{pod}-daily-{stream}' parameters: - project-parameter: @@ -149,11 +157,15 @@ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' builders: - - 'builder-{stream}' + - shell: + !include-raw-escape: ./fuel-download-artifact.sh + - shell: + !include-raw-escape: ./fuel-deploy.sh publishers: - email: recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com + ######################## # parameter macros ######################## @@ -172,37 +184,48 @@ name: GS_URL default: artifacts.opnfv.org/$PROJECT{gs-pathname} description: "URL to Google Storage." -######################## -# builder macros -######################## -- builder: - name: 'builder-master' - builders: - - shell: - !include-raw: ./fuel-download-artifact.sh - - shell: - !include-raw: ./fuel-deploy-master.sh -- builder: - name: 'builder-brahmaputra' - builders: - - shell: - !include-raw: ./fuel-download-artifact.sh - - shell: - !include-raw: ./fuel-deploy.sh +- parameter: + name: 'virtual-defaults' + parameters: + - label: + name: SLAVE_LABEL + default: 'fuel-deploy-virtual' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on these Jenkins Slaves' ######################## # trigger macros ######################## -# trigger for opnfv-jump-2 is set to run 1 hour ahead of others -# to prevent doing unnecessary builds - trigger: - name: 'fuel-opnfv-jump-2-nosdn-trigger' + name: 'fuel-os-odl_l2-nofeature-ha-opnfv-jump-2-trigger' + triggers: + - timed: '0 2 * * *' +- trigger: + name: 'fuel-os-odl_l2-nofeature-ha-ericsson-pod1-trigger' triggers: - timed: '0 2 * * *' - trigger: - name: 'fuel-ericsson-pod1-nosdn-trigger' + name: 'fuel-os-odl_l2-nofeature-ha-ericsson-pod2-trigger' triggers: - timed: '0 2 * * *' - trigger: - name: 'fuel-ericsson-pod2-nosdn-trigger' + name: 'fuel-os-odl_l2-nofeature-ha-virtual-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-vlan-ha-opnfv-jump-2-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-vlan-ha-ericsson-pod1-trigger' + triggers: + - timed: '0 2 * * *' +- trigger: + name: 'fuel-os-nosdn-vlan-ha-ericsson-pod2-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-vlan-ha-virtual-trigger' triggers: - timed: '' diff --git a/jjb/fuel/fuel-deploy-master.sh b/jjb/fuel/fuel-deploy-master.sh deleted file mode 100755 index 4a7d1d9fb..000000000 --- a/jjb/fuel/fuel-deploy-master.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash -set -o errexit -set -o nounset -set -o pipefail - -# 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" - -# checkout the commit that was used for building the downloaded artifact -# to make sure the ISO and deployment mechanism uses same versions -echo "Checking out $OPNFV_GIT_SHA1" -git checkout $OPNFV_GIT_SHA1 --quiet - -# set deployment parameters -BRIDGE=pxebr -export TMPDIR=$HOME/tmpdir -LAB_NAME=${NODE_NAME/-*} -POD_NAME=${NODE_NAME/*-} - -# create TMPDIR if it doesn't exist -mkdir -p $TMPDIR - -# change permissions down to TMPDIR -chmod a+x $HOME -chmod a+x $TMPDIR - -# clone the securedlab repo -cd $WORKSPACE -echo "Cloning securedlab repo" -git clone ssh://jenkins-ericsson@gerrit.opnfv.org:29418/securedlab --quiet - -# construct the command -DEPLOY_COMMAND="sudo $WORKSPACE/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" - -# log info to console -echo "Deployment parameters" -echo "--------------------------------------------------------" -echo "Scenario: $DEPLOY_SCENARIO" -echo "Lab: $LAB_NAME" -echo "POD: $POD_NAME" -echo "ISO: $(echo $OPNFV_ARTIFACT_URL | cut -d'/' -f3)" -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 - -echo -echo "--------------------------------------------------------" -echo "Done!" diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh index dc3d81a3a..6875a09e7 100755 --- a/jjb/fuel/fuel-deploy.sh +++ b/jjb/fuel/fuel-deploy.sh @@ -7,13 +7,28 @@ set -o pipefail source latest.properties # echo the info about artifact that is used during the deployment -echo "Using $OPNFV_ARTIFACT_URL for deployment" +echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment" # checkout the commit that was used for building the downloaded artifact # to make sure the ISO and deployment mechanism uses same versions echo "Checking out $OPNFV_GIT_SHA1" git checkout $OPNFV_GIT_SHA1 --quiet +# set deployment parameters +BRIDGE=pxebr +export TMPDIR=$HOME/tmpdir +LAB_NAME=${NODE_NAME/-*} +POD_NAME=${NODE_NAME/*-} + +if [[ "$NODE_NAME" =~ "virtual" ]]; then + POD_NAME="virtual_kvm" +fi + +if [[ "$NODE_NAME" == "opnfv-jump-2" ]]; then + LAB_NAME="lf" + POD_NAME="pod2" +fi + # create TMPDIR if it doesn't exist export TMPDIR=$HOME/tmpdir mkdir -p $TMPDIR @@ -22,19 +37,32 @@ mkdir -p $TMPDIR chmod a+x $HOME chmod a+x $TMPDIR -# set BRIDGE -BRIDGE=pxebr +# clone the securedlab repo +cd $WORKSPACE +echo "Cloning securedlab repo" +git clone ssh://jenkins-ericsson@gerrit.opnfv.org:29418/securedlab --quiet + +# construct the command +DEPLOY_COMMAND="sudo $WORKSPACE/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" # 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 "sudo $WORKSPACE/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $POD_CONF_DIR/dea.yaml -dha $POD_CONF_DIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh" +echo "$DEPLOY_COMMAND" +echo -sudo $WORKSPACE/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $POD_CONF_DIR/dea.yaml -dha $POD_CONF_DIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh +$DEPLOY_COMMAND echo echo "--------------------------------------------------------" diff --git a/jjb/fuel/fuel-download-artifact.sh b/jjb/fuel/fuel-download-artifact.sh index 917bc97a0..a1a1de47e 100755 --- a/jjb/fuel/fuel-download-artifact.sh +++ b/jjb/fuel/fuel-download-artifact.sh @@ -16,9 +16,23 @@ fi # check if we got the file [[ -f latest.properties ]] || exit 1 -# source the file so we get OPNFV vars +# source the file so we get artifact metadata source latest.properties +# echo the info about artifact that is used during the deployment +OPNFV_ARTIFACT=${OPNFV_ARTIFACT_URL/*\/} +echo "Using $OPNFV_ARTIFACT for deployment" + +# check if we already have the ISO to avoid redownload +# disabled for the timebeing - needs adjustments +#ISO_STORE=$HOME/opnfv/iso_store/fuel +#if [[ -f "$ISO_STORE/$OPNFV_ARTIFACT" ]]; then +# echo "ISO already exists. Skipping the download" +# ln -s $ISO_STORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso +# ls -al $WORKSPACE/opnfv.iso +# exit 0 +#fi + # log info to console echo "Downloading the $INSTALLER_TYPE artifact using URL http://$OPNFV_ARTIFACT_URL" echo "This could take some time..." diff --git a/jjb/fuel/fuel-project-jobs.yml b/jjb/fuel/fuel-project-jobs.yml index a04e4e65d..95bc3a6b4 100644 --- a/jjb/fuel/fuel-project-jobs.yml +++ b/jjb/fuel/fuel-project-jobs.yml @@ -21,6 +21,7 @@ - 'fuel-verify-build-{stream}' - 'fuel-merge-build-{stream}' - 'fuel-merge-deploy-virtual-{stream}' + - 'fuel-deploy-generic-daily-{stream}' ######################## # job templates @@ -51,7 +52,8 @@ branch: '{branch}' triggers: - - pollscm: '0 H/4 * * *' + - pollscm: + cron: '0 H/4 * * *' wrappers: - timeout: @@ -212,19 +214,19 @@ - ssh-agent-credentials: users: '{ssh-credentials}' - 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}' - dependency-jobs: 'fuel-merge-build-{stream}' +# 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}' +# dependency-jobs: 'fuel-merge-build-{stream}' builders: - shell: @@ -238,6 +240,43 @@ - email: recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com +- job-template: + name: 'fuel-deploy-generic-daily-{stream}' + + concurrent: false + + disabled: true + + properties: + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + + parameters: + - project-parameter: + project: '{project}' + - 'ericsson-pod2-defaults' + - '{installer}-defaults' + - fuel-project-parameter: + gs-pathname: '{gs-pathname}' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + wrappers: + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + + builders: + - shell: + !include-raw-escape: ./fuel-download-artifact.sh + - shell: + !include-raw-escape: ./fuel-deploy.sh + ######################## # parameter macros ######################## diff --git a/jjb/functest/functest-ci-jobs.yml b/jjb/functest/functest-ci-jobs.yml index 3c993c6a3..ee6e7d6b7 100644 --- a/jjb/functest/functest-ci-jobs.yml +++ b/jjb/functest/functest-ci-jobs.yml @@ -73,7 +73,7 @@ wrappers: - build-name: - name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO' parameters: - project-parameter: @@ -129,13 +129,18 @@ name: PUSH_RESULTS_TO_DB default: "true" description: "Push the results of all the tests to the resultDB" + - string: + name: CI_DEBUG + default: 'false' + description: "Show debut output information" ######################## # trigger macros ######################## - trigger: name: 'functest-master' triggers: - - pollscm: "H 9 * * *" + - pollscm: + cron: "H 9 * * *" ######################## # builder macros ######################## @@ -183,6 +188,7 @@ - shell: | #!/bin/bash set +e + [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" # labconfig is used only for joid labconfig="" if [[ ${INSTALLER_TYPE} == 'apex' ]]; then @@ -200,15 +206,17 @@ # replace the default one by the customized one provided by jenkins config fi echo "Functest: Start Docker and prepare environment" - envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}" + envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \ + -e NODE_NAME=${NODE_NAME} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} \ + -e CI_DEBUG=${CI_DEBUG}" dir_result="${HOME}/opnfv/functest/reports" mkdir -p ${dir_result} rm -rf ${dir_result}/* - $res_volume="-v ${dir_result}:/home/opnfv/functest/results" + res_volume="-v ${dir_result}:/home/opnfv/functest/results" - docker pull opnfv/functest:latest_stable - cmd="sudo docker run --privileged=true -id -e $envs ${labconfig} ${sshkey} ${res_volume} opnfv/functest:latest_stable /bin/bash" + docker pull opnfv/functest:latest_stable >$redirect + cmd="sudo docker run --privileged=true -id ${envs} ${labconfig} ${sshkey} ${res_volume} opnfv/functest:latest_stable /bin/bash" echo "Functest: Running docker run command: ${cmd}" ${cmd} docker ps -a @@ -236,21 +244,20 @@ name: functest-store-results builders: - shell: - !include-raw res-build.sh + !include-raw: res-build.sh - builder: name: functest-cleanup builders: - shell: | #!/bin/bash + [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" echo "Cleaning up docker containers/images..." - # Remove previous running containers if exist if [[ ! -z $(docker ps -a | grep opnfv/functest) ]]; then echo "Removing existing opnfv/functest containers..." - docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop - docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm + docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm -f >$redirect fi # Remove existing images if exist @@ -260,6 +267,6 @@ image_tags=($(docker images | grep opnfv/functest | awk '{print $2}')) for tag in "${image_tags[@]}"; do echo "Removing docker image opnfv/functest:$tag..." - docker rmi opnfv/functest:$tag + docker rmi opnfv/functest:$tag >$redirect done fi diff --git a/jjb/functest/functest-project-jobs.yml b/jjb/functest/functest-project-jobs.yml index e2a5c1afd..93a359b8c 100644 --- a/jjb/functest/functest-project-jobs.yml +++ b/jjb/functest/functest-project-jobs.yml @@ -10,14 +10,13 @@ jobs: - 'functest-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'functest-verify-{stream}' diff --git a/jjb/genesis/genesis-foreman.yml b/jjb/genesis/genesis-foreman.yml index 9c212ace1..808dd3b22 100644 --- a/jjb/genesis/genesis-foreman.yml +++ b/jjb/genesis/genesis-foreman.yml @@ -9,15 +9,15 @@ installer: 'foreman' - jobs: - - 'genesis-foreman-verify-build-{stream}' - - 'genesis-foreman-merge-{stream}' - - 'genesis-foreman-daily-{stream}' - - 'genesis-foreman-build-{stream}' - - 'genesis-foreman-deploy-{stream}' - - 'genesis-foreman-lab-reconfig-{stream}' - - 'genesis-foreman-deploy-runner-{stream}' - - 'genesis-foreman-verify-deploy-virtual-{stream}' +# jobs: +# - 'genesis-foreman-verify-build-{stream}' +# - 'genesis-foreman-merge-{stream}' +# - 'genesis-foreman-daily-{stream}' +# - 'genesis-foreman-build-{stream}' +# - 'genesis-foreman-deploy-{stream}' +# - 'genesis-foreman-lab-reconfig-{stream}' +# - 'genesis-foreman-deploy-runner-{stream}' +# - 'genesis-foreman-verify-deploy-virtual-{stream}' # stream: branch with - in place of / (eg. stable-arno) # branch: branch (eg. stable/arno) diff --git a/jjb/genesis/genesis-fuel-att.yml b/jjb/genesis/genesis-fuel-att.yml index 8c03ebb31..0202c2276 100644 --- a/jjb/genesis/genesis-fuel-att.yml +++ b/jjb/genesis/genesis-fuel-att.yml @@ -3,8 +3,8 @@ name: genesis-att installer: - fuel - jobs: - - 'genesis-{installer}-daily-att-{stream}' +# jobs: +# - 'genesis-{installer}-daily-att-{stream}' # stream: branch with - in place of / (eg. stable-helium) # branch: branch (eg. stable/helium) @@ -59,7 +59,8 @@ refspec: $GERRIT_REFSPEC triggers: - - pollscm: '@midnight' + - pollscm: + cron: '@midnight' builders: - '{installer}-daily-master-att' diff --git a/jjb/genesis/genesis-fuel-dell.yml b/jjb/genesis/genesis-fuel-dell.yml index 6bebb5d6f..4818b5c53 100644 --- a/jjb/genesis/genesis-fuel-dell.yml +++ b/jjb/genesis/genesis-fuel-dell.yml @@ -3,8 +3,8 @@ name: genesis-dell installer: - fuel - jobs: - - 'genesis-{installer}-daily-dell-{stream}' +# jobs: +# - 'genesis-{installer}-daily-dell-{stream}' # stream: branch with - in place of / (eg. stable-helium) # branch: branch (eg. stable/helium) @@ -59,7 +59,8 @@ refspec: $GERRIT_REFSPEC triggers: - - pollscm: '@midnight' + - pollscm: + cron: '@midnight' builders: - '{installer}-daily-master-dell' diff --git a/jjb/genesis/genesis-fuel.yml b/jjb/genesis/genesis-fuel.yml index ea628a626..cc134fb10 100644 --- a/jjb/genesis/genesis-fuel.yml +++ b/jjb/genesis/genesis-fuel.yml @@ -9,15 +9,15 @@ installer: 'fuel' - jobs: - - 'genesis-fuel-verify-build-{stream}' - - 'genesis-fuel-merge-{stream}' - - 'genesis-fuel-daily-{stream}' - - 'genesis-fuel-build-{stream}' - - 'genesis-fuel-deploy-{stream}' - - 'genesis-fuel-deploy-runner-{stream}' - - 'genesis-fuel-lab-reconfig-{stream}' - - 'genesis-fuel-verify-deploy-virtual-{stream}' +# jobs: +# - 'genesis-fuel-verify-build-{stream}' +# - 'genesis-fuel-merge-{stream}' +# - 'genesis-fuel-daily-{stream}' +# - 'genesis-fuel-build-{stream}' +# - 'genesis-fuel-deploy-{stream}' +# - 'genesis-fuel-deploy-runner-{stream}' +# - 'genesis-fuel-lab-reconfig-{stream}' +# - 'genesis-fuel-verify-deploy-virtual-{stream}' # stream: branch with - in place of / (eg. stable-arno) # branch: branch (eg. stable/arno) diff --git a/jjb/genesis/genesis-juju.yml b/jjb/genesis/genesis-juju.yml index 3d102d282..14f2e12af 100644 --- a/jjb/genesis/genesis-juju.yml +++ b/jjb/genesis/genesis-juju.yml @@ -5,10 +5,10 @@ installer: - juju - jobs: - - 'genesis-juju-verify' - - 'genesis-juju-merge' - - 'genesis-juju-daily-{stream}' +# jobs: +# - 'genesis-juju-verify' +# - 'genesis-juju-merge' +# - 'genesis-juju-daily-{stream}' # stream: branch with - in place of / (eg. stable-helium) # branch: branch (eg. stable/helium) @@ -165,7 +165,8 @@ refspec: $GERRIT_REFSPEC triggers: - - pollscm: '@midnight' + - pollscm: + cron: '@midnight' builders: - 'juju-daily-master' diff --git a/jjb/joid/joid-ci-jobs.yml b/jjb/joid/joid-ci-jobs.yml index 05064de1f..12a49f314 100644 --- a/jjb/joid/joid-ci-jobs.yml +++ b/jjb/joid/joid-ci-jobs.yml @@ -35,41 +35,58 @@ <<: *master - orange-pod2: <<: *master + - juniper-pod1: + <<: *master #-------------------------------- -# please check the triggers before enabling any of the controllers!!! - sdn-controller: - - 'odl': - disabled: false -# commented out below controllers to get Arno scenario settled first -# - 'nosdn': -# disabled: true - - 'onos': - disabled: false -# - 'opencontrail': -# disabled: true +# new scenario descriptions + scenario: + - 'os-nosdn-nofeature-noha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' + - 'os-nosdn-nofeature-ha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' + - 'os-odl_l2-nofeature-ha': + auto-trigger-name: 'joid-{scenario}-{pod}-trigger' + - 'os-odl_l2-nofeature-noha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' + - 'os-onos-nofeature-ha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' + - 'os-onos-nofeature-noha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' + - 'os-ocl-nofeature-ha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' + - 'os-ocl-nofeature-noha': + auto-trigger-name: 'brahmaputra-trigger-daily-disabled' jobs: - - 'joid-{sdn-controller}-{pod}-daily-{stream}' + - 'joid-{scenario}-{pod}-daily-{stream}' - 'joid-deploy-{pod}-daily-{stream}' ######################## # job templates ######################## - job-template: - name: 'joid-{sdn-controller}-{pod}-daily-{stream}' + name: 'joid-{scenario}-{pod}-daily-{stream}' project-type: multijob - disabled: '{obj:disabled}' - concurrent: false + properties: + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'joid-os-.*?-{pod}-daily-{stream}' + wrappers: - build-name: - name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' triggers: - - 'joid-{pod}-{sdn-controller}-trigger' + - '{auto-trigger-name}' parameters: - project-parameter: @@ -77,17 +94,8 @@ - '{installer}-defaults' - '{pod}-defaults' - string: - name: SDN_CONTROLLER - default: '{sdn-controller}' - - string: name: DEPLOY_SCENARIO - default: 'none' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' + default: '{scenario}' builders: - multijob: @@ -96,7 +104,6 @@ projects: - name: 'joid-deploy-{pod}-daily-{stream}' current-parameters: true - git-revision: true kill-phase-on: FAILURE - multijob: name: functest @@ -116,13 +123,21 @@ - job-template: name: 'joid-deploy-{pod}-daily-{stream}' - disabled: false - concurrent: false + properties: + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'joid-deploy-{pod}-daily-{stream}' + wrappers: - build-name: - name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - timeout: timeout: 180 fail: true @@ -162,26 +177,18 @@ # trigger macros ######################## - trigger: - name: 'joid-intel-pod5-odl-trigger' + name: 'joid-os-odl_l2-nofeature-ha-intel-pod5-trigger' triggers: - timed: '0 2 * * *' - trigger: - name: 'joid-intel-pod6-odl-trigger' + name: 'joid-os-odl_l2-nofeature-ha-intel-pod6-trigger' triggers: - timed: '0 2 * * *' - trigger: - name: 'joid-orange-pod2-odl-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-intel-pod5-onos-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-intel-pod6-onos-trigger' + name: 'joid-os-odl_l2-nofeature-ha-orange-pod2-trigger' triggers: - timed: '' - trigger: - name: 'joid-orange-pod2-onos-trigger' + name: 'joid-os-odl_l2-nofeature-ha-juniper-pod1-trigger' triggers: - timed: '' diff --git a/jjb/joid/joid-deploy.sh b/jjb/joid/joid-deploy.sh index e23afac1c..5ed33dec2 100644 --- a/jjb/joid/joid-deploy.sh +++ b/jjb/joid/joid-deploy.sh @@ -42,6 +42,8 @@ fi case $NODE_NAME in orange-fr-pod2) POD=orange-pod2 ;; + juniper-us-test-1) + POD=juniper-pod1 ;; *) POD=$NODE_NAME ;; esac @@ -69,11 +71,52 @@ fi ## Configure Joid deployment ## -# Get juju deployer file -if [ "$HA_MODE" == 'nonha' ]; then - SRCBUNDLE=$WORKSPACE/ci/$SDN_CONTROLLER/juju-deployer/ovs-$SDN_CONTROLLER.yaml +# Based on scenario naming we can get joid options +# naming convention: +# os-<controller>-<nfvfeature>-<mode>[-<extrastuff>] +# With parameters: +# controller=(nosdn|odl_l3|odl_l2|onos|ocl) +# No odl_l3 today +# nfvfeature=(kvm|ovs|dpdk|nofeature) +# '_' list separated. +# mode=(ha|noha) +# extrastuff=(none) +# Optional field - Not used today + +IFS='-' read -r -a DEPLOY_OPTIONS <<< "${DEPLOY_SCENARIO}--" +#last -- need to avoid nounset error + +SDN_CONTROLLER=${DEPLOY_OPTIONS[1]} +NFV_FEATURES=${DEPLOY_OPTIONS[2]} +HA_MODE=${DEPLOY_OPTIONS[3]} +EXTRA=${DEPLOY_OPTIONS[4]} + +# Get the juju config path with those options, later we will directly use +# scenario name +case $SDN_CONTROLLER in + odl_l2) + SRCBUNDLE="ovs-odl" + SDN_CONTROLLER="odl" + ;; + onos) + SRCBUNDLE="onos" + ;; + ocl) + SRCBUNDLE="contrail" + SDN_CONTROLLER="opencontrail" + ;; + *) + SRCBUNDLE="ovs" + echo "${SDN_CONTROLLER} not in SDN controllers list, using 'nosdn' setting" + SDN_CONTROLLER="nosdn" + ;; + esac +SRCBUNDLE="${WORKSPACE}/ci/${SDN_CONTROLLER}/juju-deployer/${SRCBUNDLE}" +if [ "$HA_MODE" == 'noha' ]; then + SRCBUNDLE="${SRCBUNDLE}.yaml" + HA_MODE == 'nonha' else - SRCBUNDLE=$WORKSPACE/ci/$SDN_CONTROLLER/juju-deployer/ovs-$SDN_CONTROLLER-$HA_MODE.yaml + SRCBUNDLE="${SRCBUNDLE}-${HA_MODE}.yaml" fi # Modify files diff --git a/jjb/kvmfornfv/kvmfornfv.yml b/jjb/kvmfornfv/kvmfornfv.yml index 368dab54e..34793adf6 100644 --- a/jjb/kvmfornfv/kvmfornfv.yml +++ b/jjb/kvmfornfv/kvmfornfv.yml @@ -57,7 +57,7 @@ builders: - shell: - !include-raw ./kvmfornfv-build.sh + !include-raw: ./kvmfornfv-build.sh - job-template: name: 'kvmfornfv-merge-{stream}' @@ -95,4 +95,4 @@ builders: - shell: - !include-raw ./kvmfornfv-build.sh + !include-raw: ./kvmfornfv-build.sh diff --git a/jjb/opnfv/installer-params.yml b/jjb/opnfv/installer-params.yml index 4980889fd..0ed486524 100644 --- a/jjb/opnfv/installer-params.yml +++ b/jjb/opnfv/installer-params.yml @@ -10,16 +10,12 @@ default: apex description: 'Installer used for deploying OPNFV on this POD' - string: - name: SDN_CONTROLLER - default: 'nosdn' - description: 'SDN Controller to use' - - string: name: DEPLOY_SCENARIO default: 'none' description: 'Scenario to deploy and test' - string: name: EXTERNAL_NETWORK - default: 'net04_ext' + default: 'external' description: 'external network for test' - parameter: @@ -34,10 +30,6 @@ default: compass description: 'Installer used for deploying OPNFV on this POD' - string: - name: SDN_CONTROLLER - default: 'nosdn' - description: 'SDN Controller to use' - - string: name: DEPLOY_SCENARIO default: 'none' description: 'Scenario to deploy and test' @@ -58,10 +50,6 @@ default: fuel description: 'Installer used for deploying OPNFV on this POD' - string: - name: SDN_CONTROLLER - default: 'nosdn' - description: 'SDN Controller to use' - - string: name: DEPLOY_SCENARIO default: 'none' description: 'Scenario to deploy and test' @@ -82,18 +70,10 @@ default: joid description: 'Installer used for deploying OPNFV on this POD' - string: - name: SDN_CONTROLLER - default: 'nosdn' - description: 'SDN Controller to use' - - string: name: DEPLOY_SCENARIO default: 'none' description: 'Scenario to deploy and test' - string: - name: HA_MODE - default: 'ha' - description: 'High Availability mode (ha|nonha)' - - string: name: OS_RELEASE default: 'liberty' description: 'OpenStack release (kilo|liberty)' diff --git a/jjb/opnfv/opnfv-docker.sh b/jjb/opnfv/opnfv-docker.sh index 81bab33bb..108485d0b 100644 --- a/jjb/opnfv/opnfv-docker.sh +++ b/jjb/opnfv/opnfv-docker.sh @@ -12,12 +12,12 @@ echo # Remove previous running containers if exist if [[ ! -z $(docker ps -a | grep $DOCKER_REPO_NAME) ]]; then echo "Removing existing $DOCKER_REPO_NAME containers..." - #docker ps | grep $DOCKER_REPO_NAME | awk '{{print $1}}' | xargs docker stop - docker ps -a | grep $DOCKER_REPO_NAME | awk '{{print $1}}' | xargs docker rm -f + #docker ps | grep $DOCKER_REPO_NAME | awk '{print $1}' | xargs docker stop + docker ps -a | grep $DOCKER_REPO_NAME | awk '{print $1}' | xargs docker rm -f t=60 # Wait max 60 sec for containers to be removed - while [ $t -gt 0 ]; do - ids=$(docker ps | grep $DOCKER_REPO_NAME |awk '{{print $1}}') + while [[ $t -gt 0 ]]; do + ids=$(docker ps | grep $DOCKER_REPO_NAME |awk '{print $1}') if [[ -z $ids ]]; then break fi @@ -31,8 +31,8 @@ fi if [[ ! -z $(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 + image_tags=($(docker images | grep $DOCKER_REPO_NAME | awk '{print $2}')) + for tag in "${image_tags[@]}"; do echo "Removing docker image $DOCKER_REPO_NAME:$tag..." docker rmi -f $DOCKER_REPO_NAME:$tag done @@ -67,20 +67,20 @@ else exit 1 fi - # Get tag version -branch=$(git rev-parse --abbrev-ref HEAD) -if [ $branch == "master" ]; then +branch="${GIT_BRANCH##origin/}" +echo "Current branch: $branch" + +if [[ "$branch" == "master" ]]; then DOCKER_TAG="master" else - cd $WORKSPACE - git clone https://gerrit.opnfv.org/gerrit/releng + git clone https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng DOCKER_TAG=$($WORKSPACE/releng/utils/calculate_version.sh -t docker \ -n $DOCKER_REPO_NAME) ret_val=$? - if [ $ret_val -ne 0 ]; then + if [[ $ret_val -ne 0 ]]; then echo "Error retrieving the version tag." exit 1 fi @@ -91,7 +91,7 @@ echo "Tag version to be build and pushed: $DOCKER_TAG" # Start the build echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG..." -docker build -t $DOCKER_REPO_NAME:$DOCKER_TAG . +docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG . echo "Creating tag 'latest'..." docker tag $DOCKER_REPO_NAME:$DOCKER_TAG $DOCKER_REPO_NAME:latest diff --git a/jjb/opnfv/opnfv-docker.yml b/jjb/opnfv/opnfv-docker.yml index 13063e39b..c16e33eda 100644 --- a/jjb/opnfv/opnfv-docker.yml +++ b/jjb/opnfv/opnfv-docker.yml @@ -66,7 +66,8 @@ builders: - shell: - !include-raw ./opnfv-docker.sh + !include-raw-escape: ./opnfv-docker.sh triggers: - - pollscm: "*/30 * * * *" + - pollscm: + cron: "*/30 * * * *" diff --git a/jjb/opnfv/slave-params.yml b/jjb/opnfv/slave-params.yml index 734343d88..f173bd928 100644 --- a/jjb/opnfv/slave-params.yml +++ b/jjb/opnfv/slave-params.yml @@ -150,6 +150,10 @@ name: CEPH_DISKS default: /srv description: "Disks to use by ceph (comma separated list)" + - string: + name: EXTERNAL_NETWORK + default: ext-net;flat;10.2.65.5;10.2.65.250;10.2.65.1;10.2.65.0/24 + description: "External network to create for pod5 (name;type;first ip;last ip; gateway;network)" - parameter: name: 'intel-pod6-defaults' @@ -173,6 +177,10 @@ name: CEPH_DISKS default: /srv description: "Disks to use by ceph (comma separated list)" + - string: + name: EXTERNAL_NETWORK + default: ext-net;flat;10.2.66.5;10.2.66.250;10.2.66.1;10.2.66.0/24 + description: "External network to create for pod6 (name;type;first ip;last ip; gateway;network)" - parameter: name: 'intel-pod8-defaults' @@ -349,6 +357,29 @@ description: 'Git URL to use on this Jenkins Slave' - parameter: + name: 'juniper-pod1-defaults' + parameters: + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - juniper-us-test-1 + default-slaves: + - juniper-us-test-1 + - string: + name: INSTALLER_VERSION + default: latest + description: 'Version of the installer to deploy' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: CEPH_DISKS + default: /srv + description: "Disks to use by ceph (comma separated list)" + +- parameter: name: 'orange-pod2-defaults' parameters: - node: diff --git a/jjb/qtip/qtip.yml b/jjb/qtip/qtip.yml index c442c6cd9..9c627b8af 100644 --- a/jjb/qtip/qtip.yml +++ b/jjb/qtip/qtip.yml @@ -137,6 +137,9 @@ builders: - shell: | #!/bin/bash + echo "The container id is:" + container_id=$(docker ps | grep 'opnfv/qtip:latest' | awk '{print $1}' | head -1) + echo $container_id QTIP_REPO=/home/opnfv/repos/qtip docker exec -t ${container_id} $QTIP_REPO/docker/run_qtip.sh @@ -151,9 +154,9 @@ # Remove previous running containers if exist if [[ ! -z $(docker ps -a | grep opnfv/qtip) ]]; then echo "Removing existing opnfv/qtip containers..." - running_containers= $(docker ps | grep opnfv/qtip | awk '{print $1}') + running_containers=$(docker ps | grep opnfv/qtip | awk '{print $1}') docker stop ${running_containers} - all_containers= $(docker ps -a | grep opnfv/qtip | awk '{print $1}') + all_containers=$(docker ps -a | grep opnfv/qtip | awk '{print $1}') docker rm ${all_containers} fi diff --git a/jjb/releng-jobs.yaml b/jjb/releng-jobs.yaml index 17d64d04a..0b36f0775 100644 --- a/jjb/releng-jobs.yaml +++ b/jjb/releng-jobs.yaml @@ -49,7 +49,11 @@ builders: - shell: - !include-raw verify-releng + !include-raw: verify-releng + + publishers: + - archive-artifacts: + artifacts: 'job_output/*' - job-template: name: 'builder-merge' diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml index 1f812f038..5d9570705 100644 --- a/jjb/releng-macros.yaml +++ b/jjb/releng-macros.yaml @@ -57,6 +57,16 @@ fail: true - trigger: + name: 'brahmaputra-trigger-daily-disabled' + triggers: + - timed: '' + +- trigger: + name: 'brahmaputra-trigger-daily-enabled' + triggers: + - timed: '0 2 * * *' + +- trigger: name: gerrit-trigger-patch-submitted triggers: - gerrit: diff --git a/jjb/verify-releng b/jjb/verify-releng index 807df1b11..290b4c5a5 100755 --- a/jjb/verify-releng +++ b/jjb/verify-releng @@ -10,4 +10,4 @@ for x in $(find . -name *\.yml); do done source /opt/virtualenv/jenkins-job-builder/bin/activate -jenkins-jobs test jjb/ +jenkins-jobs test -o job_output jjb/ diff --git a/jjb/vswitchperf/vswitchperf.yml b/jjb/vswitchperf/vswitchperf.yml index 4b1147d36..fe6ea49c6 100644 --- a/jjb/vswitchperf/vswitchperf.yml +++ b/jjb/vswitchperf/vswitchperf.yml @@ -33,7 +33,8 @@ branch: '{branch}' triggers: - - pollscm: '@midnight' + - pollscm: + cron: '@midnight' builders: - shell: | diff --git a/jjb/yardstick/yardstick-ci-jobs.yml b/jjb/yardstick/yardstick-ci-jobs.yml index 87485c44f..56582c90a 100644 --- a/jjb/yardstick/yardstick-ci-jobs.yml +++ b/jjb/yardstick/yardstick-ci-jobs.yml @@ -23,6 +23,9 @@ # brahmaputra #-------------------------------- pod: + - opnfv-jump-1: + installer: apex + <<: *brahmaputra - opnfv-jump-2: installer: fuel <<: *brahmaputra @@ -53,6 +56,9 @@ - orange-pod2: installer: joid <<: *master + - opnfv-jump-1: + installer: apex + <<: *master #-------------------------------- loop: - daily @@ -70,7 +76,7 @@ wrappers: - build-name: - name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' parameters: - project-parameter: @@ -82,6 +88,10 @@ name: YARDSTICK_SUITE_NAME default: opnfv_${{NODE_NAME}}_{loop}.yaml description: 'Path to test suite' + - string: + name: CI_DEBUG + default: 'false' + description: "Show debut output information" scm: - git-scm: @@ -91,7 +101,7 @@ builders: - 'yardstick-cleanup' - - 'yardstick-fetch-os-creds' + #- 'yardstick-fetch-os-creds' - 'yardstick-daily' publishers: @@ -106,25 +116,37 @@ builders: - shell: | #!/bin/bash - set -o errexit + set -e + [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" + + # labconfig is used only for joid + labconfig="" + sshkey="" + if [[ ${INSTALLER_TYPE} == 'apex' ]]; 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]+") + INSTALLER_IP=$(/usr/sbin/arp -e | grep ${instack_mac} | awk {'print $1'}) + sshkey="-v /root/.ssh/id_rsa:/root/.ssh/id_rsa" + sudo iptables -D FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable + sudo iptables -D FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable + elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then + # If production lab then creds may be retrieved dynamically + # creds are on the jumphost, always in the same folder + labconfig="-v $LAB_CONFIG/admin-openrc:/home/opnfv/openrc" + # If dev lab, credentials may not be the default ones, just provide a path to put them into docker + # replace the default one by the customized one provided by jenkins config + fi - echo "Yardstick: Run benchmark test suites ..." + 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/}" # Pull the latest image - docker pull opnfv/yardstick - - docker run \ - --privileged=true \ - --rm \ - -t \ - -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \ - -e "INSTALLER_IP=${INSTALLER_IP}" \ - -e "POD_NAME=${NODE_NAME}" \ - -e "EXTERNAL_NETWORK=${EXTERNAL_NETWORK}" \ - -e "YARDSTICK_BRANCH=${GERRIT_BRANCH}" \ - opnfv/yardstick \ - run_tests.sh $YARDSTICK_DB_BACKEND \ - $YARDSTICK_SUITE_NAME + docker pull opnfv/yardstick >$redirect + + # Run docker + cmd="sudo docker run ${opts} ${envs} ${labconfig} ${sshkey} opnfv/yardstick run_tests.sh ${YARDSTICK_DB_BACKEND} ${YARDSTICK_SUITE_NAME}" + echo "Yardstick: Running docker cmd: ${cmd}" + ${cmd} echo "Yardstick: done!" @@ -132,21 +154,21 @@ name: yardstick-fetch-os-creds builders: - shell: - !include-raw ../../utils/fetch_os_creds.sh + !include-raw: ../../utils/fetch_os_creds.sh - builder: name: yardstick-cleanup builders: - shell: | #!/bin/bash + [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" echo "Cleaning up docker containers/images..." - # Remove previous running containers if exist if [[ ! -z $(docker ps -a | grep opnfv/yardstick) ]]; then echo "Removing existing opnfv/yardstick containers..." - docker ps | grep opnfv/yardstick | awk '{print $1}' | xargs docker stop - docker ps -a | grep opnfv/yardstick | awk '{print $1}' | xargs docker rm + docker ps -a | grep opnfv/yardstick | awk '{print $1}' | xargs docker rm -f >$redirect + fi # Remove existing images if exist @@ -156,7 +178,8 @@ image_tags=($(docker images | grep opnfv/yardstick | awk '{print $2}')) for tag in "${image_tags[@]}"; do echo "Removing docker image opnfv/yardstick:$tag..." - docker rmi opnfv/yardstick:$tag + docker rmi opnfv/yardstick:$tag >$redirect + done fi ######################## @@ -191,7 +214,7 @@ parameters: - string: name: YARDSTICK_DB_BACKEND - default: '' + default: '-i 10.118.36.90:8086' description: 'Arguments to use in order to choose the backend DB' - parameter: @@ -199,15 +222,21 @@ parameters: - string: name: YARDSTICK_DB_BACKEND - default: '' + default: '-i 10.118.36.90:8086' + description: 'Arguments to use in order to choose the backend DB' +- parameter: + name: 'yardstick-params-opnfv-jump-1' + parameters: + - string: + name: YARDSTICK_DB_BACKEND + default: '-r 213.77.62.197/results' description: 'Arguments to use in order to choose the backend DB' - - parameter: name: 'yardstick-params-opnfv-jump-2' parameters: - string: name: YARDSTICK_DB_BACKEND - default: '-r 213.77.62.197' + default: '-r 213.77.62.197/results' description: 'Arguments to use in order to choose the backend DB' - parameter: diff --git a/utils/docs-build.sh b/utils/docs-build.sh index 55cb9f652..7c444e3d8 100755 --- a/utils/docs-build.sh +++ b/utils/docs-build.sh @@ -182,9 +182,14 @@ do # TODO: failures in ODT creation should be handled error and # cause 'exit 1' before OPNFV B release. tex=$(find $build -name '*.tex' | head -1) - odt=$(basename "${tex%.tex}.odt") + odt="${tex%.tex}.odt" if [[ -e $tex ]] && which pandoc > /dev/null ; then - pandoc $tex -o $output/$odt || { + ( + cd $(dirname $tex) + pandoc $(basename $tex) -o $(basename $odt) + ) && { + mv $odt $output/ + }|| { msg="Error: ODT creation for $dir has failed." echo echo "$msg" diff --git a/utils/fetch_os_creds.sh b/utils/fetch_os_creds.sh index 3b493e146..d1b192dcb 100755 --- a/utils/fetch_os_creds.sh +++ b/utils/fetch_os_creds.sh @@ -115,7 +115,7 @@ elif [ "$installer_type" == "compass" ]; then verify_connectivity $installer_ip controller_ip=$(sshpass -p'root' ssh 2>/dev/null $ssh_options root@${installer_ip} \ 'mysql -ucompass -pcompass -Dcompass -e"select * from cluster;"' \ - | awk -F"," '{for(i=1;i<NF;i++)if($i~/\"host1\"/) {print $(i+1);break;}}' \ + | awk -F"," '{for(i=1;i<NF;i++)if($i~/\"host[1-5]\"/) {print $(i+1);break;}}' \ | grep -oP "\d+.\d+.\d+.\d+") if [ -z $controller_ip ]; then |