diff options
53 files changed, 818 insertions, 1235 deletions
diff --git a/jjb/apex/apex.yaml b/jjb/apex/apex.yaml index 82f766e20..fd0e8269c 100644 --- a/jjb/apex/apex.yaml +++ b/jjb/apex/apex.yaml @@ -157,6 +157,10 @@ <<: *master - 'os-odl-sfc_queens-noha': <<: *master + - 'os-nosdn-calipso-noha': + <<: *master + - 'os-nosdn-calipso_queens-noha': + <<: *master - 'os-nosdn-nofeature-noha': <<: *euphrates - 'os-nosdn-nofeature-ha': @@ -191,8 +195,6 @@ <<: *euphrates - 'os-odl-sfc-ha': <<: *euphrates - - 'os-nosdn-calipso-noha': - <<: *euphrates platform: - 'baremetal' @@ -1649,6 +1651,22 @@ kill-phase-on: NEVER abort-all-job: true git-revision: false + - name: 'apex-os-nosdn-calipso-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-calipso_queens-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false # euphrates Builder - builder: @@ -1794,14 +1812,6 @@ kill-phase-on: NEVER abort-all-job: true git-revision: false - - name: 'apex-os-nosdn-calipso-noha-baremetal-euphrates' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - builder: name: 'apex-upload-artifact' builders: diff --git a/jjb/apex/scenarios.yaml.hidden b/jjb/apex/scenarios.yaml.hidden index b032613a3..1e1ba3fc3 100644 --- a/jjb/apex/scenarios.yaml.hidden +++ b/jjb/apex/scenarios.yaml.hidden @@ -18,6 +18,8 @@ master: - 'os-odl-sfc-noha' - 'os-odl-sfc_queens-ha' - 'os-odl-sfc_queens-noha' + - 'os-nosdn-calipso-noha' + - 'os-nosdn-calipso_queens-noha' fraser: - 'os-nosdn-nofeature-ha' - 'os-odl-bgpvpn-ha' @@ -39,7 +41,6 @@ euphrates: - 'os-nosdn-kvm_ovs_dpdk-ha' - 'os-odl-sfc-noha' - 'os-odl-sfc-ha' - - 'os-nosdn-calipso-noha' danube: - 'os-nosdn-nofeature-noha' - 'os-nosdn-nofeature-ha' diff --git a/jjb/armband/armband-ci-jobs.yaml b/jjb/armband/armband-ci-jobs.yaml index 959115ac2..666a0f596 100644 --- a/jjb/armband/armband-ci-jobs.yaml +++ b/jjb/armband/armband-ci-jobs.yaml @@ -208,24 +208,17 @@ failure-threshold: 'never' unstable-threshold: 'FAILURE' # Armband uses Fuel's log collection project job, no need to duplicate - - conditional-step: - condition-kind: not - condition-operand: - condition-kind: regex-match - regex: 'danube' - label: '{stream}' - steps: - - trigger-builds: - - project: 'fuel-collect-logs-{deploy-type}-daily-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' + - trigger-builds: + - project: 'fuel-collect-logs-{deploy-type}-daily-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + block: true + same-node: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' - job-template: name: '{installer}-deploy-{pod}-daily-{stream}' diff --git a/jjb/armband/armband-verify-jobs.yaml b/jjb/armband/armband-verify-jobs.yaml index 6add90704..171808367 100644 --- a/jjb/armband/armband-verify-jobs.yaml +++ b/jjb/armband/armband-verify-jobs.yaml @@ -4,7 +4,6 @@ project: 'armband' - installer: 'fuel' ##################################### # branch definitions ##################################### @@ -18,25 +17,17 @@ gs-pathname: '/{stream}' disabled: false ##################################### - # patch verification phases - ##################################### - phase: - - 'deploy-virtual': - slave-label: 'armband-virtual' - ##################################### # jobs ##################################### jobs: - 'armband-verify-{stream}' - - 'armband-verify-{phase}-{stream}' + ##################################### # job templates ##################################### - job-template: name: 'armband-verify-{stream}' - project-type: multijob - disabled: '{obj:disabled}' concurrent: true @@ -45,14 +36,8 @@ - logrotate-default - throttle: enabled: true - max-total: 4 + max-total: 2 option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-os-.*?-virtual-daily-.*' - - 'armband-verify-.*' - block-level: 'NODE' scm: - git-scm-gerrit @@ -97,100 +82,19 @@ - project-parameter: project: '{project}' branch: '{branch}' - - 'armband-virtual-defaults': - installer: '{installer}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' + - 'opnfv-build-ubuntu-arm-defaults' builders: - description-setter: description: "Built on $NODE_NAME" - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'armband-verify-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - - - multijob: - name: smoke-test - condition: SUCCESSFUL - projects: - # Use Functest job definition from jjb/functest/functest-daily-jobs - - name: 'functest-fuel-armband-virtual-suite-{stream}' - current-parameters: false - predefined-parameters: | - FUNCTEST_MODE=tier - FUNCTEST_TIER=healthcheck - # Should be in sync with fuel-deploy.sh default scenario - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true - -- job-template: - name: 'armband-verify-{phase}-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 2 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'armband-verify-deploy-.*' - block-level: 'NODE' - - scm: - - git-scm-gerrit + - 'armband-verify-builder-macro' - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-defaults' - - 'armband-virtual-defaults': - installer: '{installer}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - '{project}-verify-{phase}-macro' ##################################### # builder macros ##################################### - builder: - name: 'armband-verify-deploy-virtual-macro' + name: 'armband-verify-builder-macro' builders: - - shell: - !include-raw: ../fuel/fuel-deploy.sh + - shell: | + #!/bin/bash + make fuel-patches-import diff --git a/jjb/barometer/barometer.yaml b/jjb/barometer/barometer.yaml index 92176207f..8afe98695 100644 --- a/jjb/barometer/barometer.yaml +++ b/jjb/barometer/barometer.yaml @@ -32,7 +32,7 @@ - project-parameter: project: '{project}' branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' + - 'ericsson-build4-defaults' scm: - git-scm-gerrit @@ -89,7 +89,7 @@ - project-parameter: project: '{project}' branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' + - 'ericsson-build4-defaults' scm: - git-scm diff --git a/jjb/bottlenecks/bottlenecks-ci-jobs.yaml b/jjb/bottlenecks/bottlenecks-ci-jobs.yaml index 41b73a290..4c302dd52 100644 --- a/jjb/bottlenecks/bottlenecks-ci-jobs.yaml +++ b/jjb/bottlenecks/bottlenecks-ci-jobs.yaml @@ -79,6 +79,7 @@ - 'posca_feature_moon_tenants' - 'posca_feature_vnf_scale_out' - 'posca_factor_soak_throughputs' + - 'kubestone_deployment_capacity' jobs: - 'bottlenecks-{installer}-{suite}-{pod}-daily-{stream}' diff --git a/jjb/bottlenecks/bottlenecks-run-suite.sh b/jjb/bottlenecks/bottlenecks-run-suite.sh index 7a3db00c4..9b5e8eecf 100644 --- a/jjb/bottlenecks/bottlenecks-run-suite.sh +++ b/jjb/bottlenecks/bottlenecks-run-suite.sh @@ -24,7 +24,26 @@ OPENRC=/tmp/admin_rc.sh OS_CACERT=/tmp/os_cacert BOTTLENECKS_CONFIG=/tmp - +KUBESTONE_TEST_DIR=/home/opnfv/bottlenecks/testsuites/kubestone/testcases + +# Pulling Bottlenecks docker and passing environment variables +echo "INFO: pulling Bottlenecks docker ${DOCKER_TAG}" +docker pull opnfv/bottlenecks:${DOCKER_TAG} >$redirect + +opts="--privileged=true -id" +envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \ + -e NODE_NAME=${NODE_NAME} -e EXTERNAL_NET=${EXTERNAL_NETWORK} \ + -e BRANCH=${BRANCH} -e GERRIT_REFSPEC_DEBUG=${GERRIT_REFSPEC_DEBUG} \ + -e BOTTLENECKS_DB_TARGET=${BOTTLENECKS_DB_TARGET} -e PACKAGE_URL=${PACKAGE_URL} \ + -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} -e BUILD_TAG=${BUILD_TAG}" +docker_volume="-v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp" + +cmd="docker run ${opts} ${envs} --name bottlenecks-load-master ${docker_volume} opnfv/bottlenecks:${DOCKER_TAG} /bin/bash" +echo "BOTTLENECKS INFO: running docker run commond: ${cmd}" +${cmd} >$redirect +sleep 5 + +# Run test suite if [[ $SUITE_NAME == *posca* ]]; then POSCA_SCRIPT=/home/opnfv/bottlenecks/testsuites/posca sudo rm -f ${OPENRC} @@ -116,23 +135,6 @@ if [[ $SUITE_NAME == *posca* ]]; then sudo ls -al ${BOTTLENECKS_CONFIG} fi - # Pulling Bottlenecks docker and passing environment variables - echo "INFO: pulling Bottlenecks docker ${DOCKER_TAG}" - docker pull opnfv/bottlenecks:${DOCKER_TAG} >$redirect - - opts="--privileged=true -id" - envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \ - -e NODE_NAME=${NODE_NAME} -e EXTERNAL_NET=${EXTERNAL_NETWORK} \ - -e BRANCH=${BRANCH} -e GERRIT_REFSPEC_DEBUG=${GERRIT_REFSPEC_DEBUG} \ - -e BOTTLENECKS_DB_TARGET=${BOTTLENECKS_DB_TARGET} -e PACKAGE_URL=${PACKAGE_URL} \ - -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} -e BUILD_TAG=${BUILD_TAG}" - docker_volume="-v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp" - - cmd="docker run ${opts} ${envs} --name bottlenecks-load-master ${docker_volume} opnfv/bottlenecks:${DOCKER_TAG} /bin/bash" - echo "BOTTLENECKS INFO: running docker run commond: ${cmd}" - ${cmd} >$redirect - sleep 5 - # Running test cases through Bottlenecks docker if [[ $SUITE_NAME == posca_stress_traffic ]]; then TEST_CASE=posca_factor_system_bandwidth @@ -144,4 +146,11 @@ if [[ $SUITE_NAME == *posca* ]]; then testcase_cmd="docker exec bottlenecks-load-master python ${POSCA_SCRIPT}/../run_testsuite.py testcase $TEST_CASE $REPORT" echo "BOTTLENECKS INFO: running test case ${TEST_CASE} with report indicator: ${testcase_cmd}" ${testcase_cmd} >$redirect +elif [[ $SUITE_NAME == *kubestone* ]]; then + if [[ $SUITE_NAME == kubestone_deployment_capacity ]]; then + TEST_CASE=${KUBESTONE_TEST_DIR}/deployment_capacity.yaml + fi + testcase_cmd="docker exec bottlenecks-load-master python ${KUBESTONE_TEST_DIR}/../stress_test.py -c $TEST_CASE" + echo "BOTTLENECKS INFO: running test case ${TEST_CASE} with report indicator: ${testcase_cmd}" + ${testcase_cmd} >$redirect fi diff --git a/jjb/compass4nfv/compass-ci-jobs.yaml b/jjb/compass4nfv/compass-ci-jobs.yaml index 328e9e3a2..e5775b2d5 100644 --- a/jjb/compass4nfv/compass-ci-jobs.yaml +++ b/jjb/compass4nfv/compass-ci-jobs.yaml @@ -299,6 +299,24 @@ condition-kind: and condition-operands: - condition-kind: regex-match + regex: k8-nosdn-nofeature-ha + label: '{scenario}' + steps: + - trigger-builds: + - project: 'bottlenecks-compass-kubestone_deployment_capacity-{pod}-daily-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + block: true + same-node: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' + - conditional-step: + condition-kind: and + condition-operands: + - condition-kind: regex-match regex: master label: '{stream}' steps: diff --git a/jjb/container4nfv/container4nfv-arm64.yaml b/jjb/container4nfv/container4nfv-arm64.yaml index b66667471..069a5d25e 100644 --- a/jjb/container4nfv/container4nfv-arm64.yaml +++ b/jjb/container4nfv/container4nfv-arm64.yaml @@ -61,6 +61,14 @@ build-step-failure-threshold: 'never' failure-threshold: 'never' unstable-threshold: 'Failure' + - project: functest-compass-arm-virtual-daily-master + current-parameters: false + same-node: true + block: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'Failure' - project: container4nfv-k8-multus-nofeature-noha-{pod}-daily-{stream} current-parameters: true same-node: true diff --git a/jjb/doctor/doctor.yaml b/jjb/doctor/doctor.yaml index 469023037..b78bab1e2 100644 --- a/jjb/doctor/doctor.yaml +++ b/jjb/doctor/doctor.yaml @@ -39,7 +39,9 @@ jobs: - 'doctor-verify-{stream}' - - 'doctor-verify-{installer}-{inspector}-{arch}-{stream}' + - 'doctor-verify-fault_management-{installer}-{inspector}-{arch}-{stream}' + - 'doctor-verify-maintenance-{installer}-{inspector}-{arch}-{stream}' + - 'doctor-verify-all-{installer}-{inspector}-{arch}-{stream}' - job-template: name: 'doctor-verify-{stream}' @@ -68,7 +70,7 @@ name: 'doctor-verify-sample' execution-type: PARALLEL projects: - - name: 'doctor-verify-apex-sample-x86_64-{stream}' + - name: 'doctor-verify-fault_management-apex-sample-x86_64-{stream}' predefined-parameters: | PROJECT=$PROJECT GERRIT_BRANCH=$GERRIT_BRANCH @@ -77,7 +79,16 @@ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE kill-phase-on: FAILURE git-revision: true - - name: 'doctor-verify-daisy-sample-x86_64-{stream}' + - name: 'doctor-verify-fault_management-daisy-sample-x86_64-{stream}' + predefined-parameters: | + PROJECT=$PROJECT + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + kill-phase-on: FAILURE + git-revision: true + - name: 'doctor-verify-maintenance-apex-sample-x86_64-{stream}' predefined-parameters: | PROJECT=$PROJECT GERRIT_BRANCH=$GERRIT_BRANCH @@ -90,7 +101,7 @@ name: 'doctor-verify-congress' execution-type: PARALLEL projects: - - name: 'doctor-verify-apex-congress-x86_64-{stream}' + - name: 'doctor-verify-fault_management-apex-congress-x86_64-{stream}' predefined-parameters: | PROJECT=$PROJECT GERRIT_BRANCH=$GERRIT_BRANCH @@ -99,9 +110,17 @@ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE kill-phase-on: FAILURE git-revision: true + - multijob: + name: 'doctor-verify-sample-all' + execution-type: PARALLEL + # This would be for running all test cases with sample inspector + - multijob: + name: 'doctor-verify-congress-all' + execution-type: PARALLEL + # This would be for running all test cases with congress inspector - job-template: - name: 'doctor-verify-{installer}-{inspector}-{arch}-{stream}' + name: 'doctor-verify-fault_management-{installer}-{inspector}-{arch}-{stream}' disabled: '{obj:disabled}' node: 'doctor-{installer}-{arch}' wrappers: @@ -116,6 +135,55 @@ - 'doctor-slave-parameter' - 'doctor-parameter': inspector: '{inspector}' + test_case: 'fault_management' + scm: + - git-scm-gerrit + builders: + - 'doctor-verify-installer-inspector-builders-macro' + publishers: + - 'doctor-verify-publishers-macro' + +- job-template: + name: 'doctor-verify-maintenance-{installer}-{inspector}-{arch}-{stream}' + disabled: '{obj:disabled}' + node: 'nokia-pod1' + wrappers: + - ssh-agent-wrapper + - build-timeout: + timeout: 40 + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - 'doctor-slave-parameter' + - 'doctor-parameter': + inspector: '{inspector}' + test_case: 'maintenance' + scm: + - git-scm-gerrit + builders: + - 'doctor-verify-installer-inspector-builders-macro' + publishers: + - 'doctor-verify-publishers-macro' + +- job-template: + name: 'doctor-verify-all-{installer}-{inspector}-{arch}-{stream}' + disabled: '{obj:disabled}' + node: 'nokia-pod1' + wrappers: + - ssh-agent-wrapper + - build-timeout: + timeout: 50 + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - 'doctor-slave-parameter' + - 'doctor-parameter': + inspector: '{inspector}' + test_case: 'all' scm: - git-scm-gerrit builders: @@ -134,6 +202,11 @@ name: INSPECTOR_TYPE default: '{inspector}' description: 'inspector component' + - string: + name: TEST_CASE + default: '{test_case}' + description: 'test case: all, fault_management or maintenance' + # ------------------------------- # builder macros diff --git a/jjb/dovetail/dovetail-run.sh b/jjb/dovetail/dovetail-run.sh index 799f15713..065d20128 100755 --- a/jjb/dovetail/dovetail-run.sh +++ b/jjb/dovetail/dovetail-run.sh @@ -51,11 +51,6 @@ elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then # replace the default one by the customized one provided by jenkins config fi -# Set iptables rule to allow forwarding return traffic for container -if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then - sudo iptables -I FORWARD -j RETURN -fi - releng_repo=${WORKSPACE}/releng [ -d ${releng_repo} ] && sudo rm -rf ${releng_repo} git clone https://gerrit.opnfv.org/gerrit/releng ${releng_repo} >/dev/null diff --git a/jjb/fuel/fuel-daily-jobs.yaml b/jjb/fuel/fuel-daily-jobs.yaml index 07cdb7345..73d33d63b 100644 --- a/jjb/fuel/fuel-daily-jobs.yaml +++ b/jjb/fuel/fuel-daily-jobs.yaml @@ -21,11 +21,6 @@ branch: 'stable/{stream}' disabled: false gs-pathname: '/{stream}' - danube: &danube - stream: danube - branch: 'stable/{stream}' - disabled: false - gs-pathname: '/{stream}' # ------------------------------- # POD, INSTALLER, AND BRANCH MAPPING # ------------------------------- @@ -59,22 +54,10 @@ auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - 'os-odl-nofeature-ha': auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-onos-sfc-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-onos-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - 'os-ovn-nofeature-ha': auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - 'os-nosdn-ovs-ha': auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm_ovs-ha': - auto-trigger-name: 'daily-trigger-disabled' - - 'os-nosdn-kvm_ovs_dpdk-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm_ovs_dpdk_bar-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - 'os-nosdn-vpp-ha': auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' # NOHA scenarios @@ -82,47 +65,22 @@ auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - 'os-odl-nofeature-noha': auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-onos-sfc-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-onos-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - 'os-ovn-nofeature-noha': auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - 'os-odl-ovs-noha': auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - 'os-nosdn-ovs-noha': auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm_ovs_dpdk-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm_ovs_dpdk_bar-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - 'os-nosdn-vpp-noha': auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - # danube scenario for Dovetail only - - 'os-odl_l2-bgpvpn-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' exclude: - - scenario: os-odl_l2-bgpvpn-ha - stream: master - - scenario: os-odl_l2-bgpvpn-ha - stream: fraser - - scenario: os-ovn-nofeature-noha - stream: danube - - scenario: os-ovn-nofeature-ha - stream: danube - scenario: os-odl-ovs-noha stream: fraser - scenario: os-nosdn-vpp-ha stream: fraser - scenario: os-nosdn-vpp-noha stream: fraser - - scenario: os-nosdn-vpp-ha - stream: danube - - scenario: os-nosdn-vpp-noha - stream: danube jobs: - 'fuel-{scenario}-{pod}-daily-{stream}' @@ -150,7 +108,6 @@ use-build-blocker: true blocking-jobs: - 'fuel-os-.*?-{pod}-daily-.*' - - 'fuel-os-.*?-{pod}-weekly-.*' - 'fuel-verify-.*' block-level: 'NODE' @@ -246,24 +203,17 @@ build-step-failure-threshold: 'never' failure-threshold: 'never' unstable-threshold: 'FAILURE' - - conditional-step: - condition-kind: not - condition-operand: - condition-kind: regex-match - regex: 'danube' - label: '{stream}' - steps: - - trigger-builds: - - project: 'fuel-collect-logs-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' + - trigger-builds: + - project: 'fuel-collect-logs-{pod}-daily-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + block: true + same-node: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' publishers: - email-fuel-ptl @@ -287,9 +237,6 @@ use-build-blocker: true blocking-jobs: - 'fuel-deploy-{pod}-daily-.*' - - 'fuel-deploy-generic-daily-.*' - - 'fuel-deploy-{pod}-weekly-.*' - - 'fuel-deploy-generic-weekly-.*' block-level: 'NODE' parameters: @@ -317,8 +264,6 @@ description: "Built on $NODE_NAME" - track-begin-timestamp - shell: - !include-raw-escape: ./fuel-download-artifact.sh - - shell: !include-raw-escape: ./fuel-deploy.sh publishers: @@ -384,30 +329,10 @@ triggers: - timed: '5 5 * * *' - trigger: - name: 'fuel-os-onos-sfc-ha-baremetal-daily-master-trigger' - triggers: - - timed: '' # '5 5 * * *' -- trigger: - name: 'fuel-os-onos-nofeature-ha-baremetal-daily-master-trigger' - triggers: - - timed: '' # '5 8 * * *' -- trigger: name: 'fuel-os-ovn-nofeature-ha-baremetal-daily-master-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-master-trigger' - triggers: - - timed: '' # '5 17 * * *' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-master-trigger' - triggers: - - timed: '' # '30 12 * * *' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-master-trigger' - triggers: - - timed: '' # '30 8 * * *' -- trigger: name: 'fuel-os-nosdn-vpp-ha-baremetal-daily-master-trigger' triggers: - timed: '' @@ -422,14 +347,6 @@ triggers: - timed: '' - trigger: - name: 'fuel-os-onos-sfc-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-onos-nofeature-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-master-trigger' triggers: - timed: '' @@ -438,22 +355,10 @@ triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-master-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-nosdn-vpp-noha-baremetal-daily-master-trigger' triggers: - timed: '' @@ -470,33 +375,13 @@ triggers: - timed: '' # '0 2 * * *' - trigger: - name: 'fuel-os-onos-sfc-ha-baremetal-daily-fraser-trigger' - triggers: - - timed: '' # '0 5 * * *' -- trigger: name: 'fuel-os-ovn-nofeature-ha-baremetal-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-onos-nofeature-ha-baremetal-daily-fraser-trigger' - triggers: - - timed: '' # '0 8 * * *' -- trigger: - name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-fraser-trigger' - triggers: - - timed: '' # '0 17 * * *' -- trigger: name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-fraser-trigger' triggers: - timed: '' # '0 20 * * *' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-fraser-trigger' - triggers: - - timed: '' # '0 12 * * *' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-fraser-trigger' - triggers: - - timed: '' # '0 8 * * *' # NOHA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-fraser-trigger' @@ -507,33 +392,13 @@ triggers: - timed: '' - trigger: - name: 'fuel-os-onos-sfc-noha-baremetal-daily-fraser-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-onos-nofeature-noha-baremetal-daily-fraser-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-fraser-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-fraser-trigger' triggers: - timed: '' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-fraser-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-fraser-trigger' - triggers: - - timed: '' # ---------------------------------------------- # Triggers for job running on fuel-virtual against master branch # ---------------------------------------------- @@ -546,34 +411,14 @@ triggers: - timed: '' - trigger: - name: 'fuel-os-onos-sfc-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-onos-nofeature-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-ovn-nofeature-ha-virtual-daily-master-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-nosdn-ovs-ha-virtual-daily-master-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-nosdn-vpp-ha-virtual-daily-master-trigger' triggers: - timed: '' @@ -587,14 +432,6 @@ triggers: - timed: '5 18 * * *' - trigger: - name: 'fuel-os-onos-sfc-noha-virtual-daily-master-trigger' - triggers: - - timed: '' # '35 20 * * *' -- trigger: - name: 'fuel-os-onos-nofeature-noha-virtual-daily-master-trigger' - triggers: - - timed: '' # '5 23 * * *' -- trigger: name: 'fuel-os-ovn-nofeature-noha-virtual-daily-master-trigger' triggers: - timed: '5 23 * * *' @@ -603,22 +440,10 @@ triggers: - timed: '5 2 * * *' - trigger: - name: 'fuel-os-nosdn-kvm-noha-virtual-daily-master-trigger' - triggers: - - timed: '' # '35 6 * * *' -- trigger: name: 'fuel-os-nosdn-ovs-noha-virtual-daily-master-trigger' triggers: - timed: '5 9 * * *' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-master-trigger' - triggers: - - timed: '' # '30 16 * * *' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-virtual-daily-master-trigger' - triggers: - - timed: '' # '30 20 * * *' -- trigger: name: 'fuel-os-nosdn-vpp-noha-virtual-daily-master-trigger' triggers: - timed: '' @@ -634,33 +459,13 @@ triggers: - timed: '' - trigger: - name: 'fuel-os-onos-sfc-ha-virtual-daily-fraser-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-onos-nofeature-ha-virtual-daily-fraser-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-ovn-nofeature-ha-virtual-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm-ha-virtual-daily-fraser-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-nosdn-ovs-ha-virtual-daily-fraser-trigger' triggers: - timed: '' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-fraser-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-fraser-trigger' - triggers: - - timed: '' # NOHA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-fraser-trigger' @@ -675,29 +480,9 @@ triggers: - timed: '5 23 * * *' - trigger: - name: 'fuel-os-onos-sfc-noha-virtual-daily-fraser-trigger' - triggers: - - timed: '' # '30 20 * * *' -- trigger: - name: 'fuel-os-onos-nofeature-noha-virtual-daily-fraser-trigger' - triggers: - - timed: '' # '0 23 * * *' -- trigger: - name: 'fuel-os-nosdn-kvm-noha-virtual-daily-fraser-trigger' - triggers: - - timed: '' # '30 6 * * *' -- trigger: name: 'fuel-os-nosdn-ovs-noha-virtual-daily-fraser-trigger' triggers: - timed: '' # '0 9 * * *' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-fraser-trigger' - triggers: - - timed: '' # '0 16 * * *' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-virtual-daily-fraser-trigger' - triggers: - - timed: '' # '0 20 * * *' # ---------------------------------------------- # ZTE POD1 Triggers running against master branch # ---------------------------------------------- @@ -710,34 +495,14 @@ triggers: - timed: '' - trigger: - name: 'fuel-os-onos-sfc-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-ovn-nofeature-ha-zte-pod1-daily-master-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-nosdn-ovs-ha-zte-pod1-daily-master-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-nosdn-vpp-ha-zte-pod1-daily-master-trigger' triggers: - timed: '' @@ -751,14 +516,6 @@ triggers: - timed: '' - trigger: - name: 'fuel-os-onos-sfc-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-ovn-nofeature-noha-zte-pod1-daily-master-trigger' triggers: - timed: '' @@ -767,22 +524,10 @@ triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-nosdn-ovs-noha-zte-pod1-daily-master-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: name: 'fuel-os-nosdn-vpp-noha-zte-pod1-daily-master-trigger' triggers: - timed: '' diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh index a4b40f44f..1a5d6a448 100755 --- a/jjb/fuel/fuel-deploy.sh +++ b/jjb/fuel/fuel-deploy.sh @@ -1,7 +1,7 @@ #!/bin/bash # SPDX-license-identifier: Apache-2.0 ############################################################################## -# Copyright (c) 2017 Ericsson AB, Mirantis Inc., Enea Software AB and others. +# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea Software 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 @@ -12,44 +12,18 @@ set -o pipefail export TERM="vt220" -if [[ "$BRANCH" =~ 'danube' ]]; then - # source the file so we get OPNFV vars - # shellcheck disable=SC1091 - source latest.properties - - # echo the info about artifact that is used during the deployment - echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment" - - # for Danube deployments (no artifact for current master or newer branches) - # 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 - - # releng wants us to use nothing else but opnfv.iso for now. We comply. - ISO_FILE_ARG="-i file://${WORKSPACE}/opnfv.iso" -fi - -# shellcheck disable=SC2153 -if [[ "${JOB_NAME}" =~ 'verify' ]]; then - # set simplest scenario for virtual deploys to run for verify - DEPLOY_SCENARIO="os-nosdn-nofeature-noha" -fi - # set deployment parameters export TMPDIR=${HOME}/tmpdir # shellcheck disable=SC2153 LAB_NAME=${NODE_NAME/-*} # shellcheck disable=SC2153 POD_NAME=${NODE_NAME/*-} -# Armband might override LAB_CONFIG_URL, all others use the default -LAB_CONFIG_URL=${LAB_CONFIG_URL:-'ssh://jenkins-ericsson@gerrit.opnfv.org:29418/securedlab'} # Fuel requires deploy script to be ran with sudo, Armband does not SUDO='sudo -E' if [ "${PROJECT}" = 'fuel' ]; then # Fuel currently supports ericsson, intel, lf and zte labs - if [[ ! "${LAB_NAME}" =~ (ericsson|intel|lf|zte) ]]; then + if [[ ! "${LAB_NAME}" =~ (arm|enea|ericsson|intel|lf|unh|zte) ]]; then echo "Unsupported/unidentified lab ${LAB_NAME}. Cannot continue!" exit 1 fi @@ -66,29 +40,20 @@ echo "Using configuration for ${LAB_NAME}" # create TMPDIR if it doesn't exist, change permissions mkdir -p "${TMPDIR}" -chmod a+x "${HOME}" "${TMPDIR}" +sudo chmod a+x "${HOME}" "${TMPDIR}" cd "${WORKSPACE}" || exit 1 -if [[ "$BRANCH" =~ (danube|euphrates) ]]; then - if [[ "${LAB_CONFIG_URL}" =~ ^(git|ssh):// ]]; then - echo "Cloning securedlab repo ${BRANCH}" - LOCAL_CFG="${TMPDIR}/securedlab" - rm -rf "${LOCAL_CFG}" - git clone --quiet --branch "${BRANCH}" "${LAB_CONFIG_URL}" "${LOCAL_CFG}" - LAB_CONFIG_ARG="-b file://${LOCAL_CFG}" - BRIDGE_ARG="-B ${BRIDGE:-pxebr}" - else - LAB_CONFIG_ARG="-b ${LAB_CONFIG_URL}" - fi -fi # log file name FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz" +# Limited scope for vPOD verify jobs running on armband-virtual +[[ ! "${JOB_NAME}" =~ verify-deploy-virtual-arm64 ]] || EXTRA_ARGS='-e' + # construct the command -DEPLOY_COMMAND="${SUDO} ${WORKSPACE}/ci/deploy.sh ${LAB_CONFIG_ARG:-} \ - -l ${LAB_NAME} -p ${POD_NAME} -s ${DEPLOY_SCENARIO} ${ISO_FILE_ARG:-} \ - -S ${TMPDIR} ${BRIDGE_ARG:-} \ +DEPLOY_COMMAND="${SUDO} ${WORKSPACE}/ci/deploy.sh \ + -l ${LAB_NAME} -p ${POD_NAME} -s ${DEPLOY_SCENARIO} \ + -S ${TMPDIR} ${EXTRA_ARGS:-} \ -L ${WORKSPACE}/${FUEL_LOG_FILENAME}" # log info to console @@ -97,7 +62,6 @@ echo "--------------------------------------------------------" echo "Scenario: ${DEPLOY_SCENARIO}" echo "Lab: ${LAB_NAME}" echo "POD: ${POD_NAME}" -[[ "${BRANCH}" =~ 'danube' ]] && echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}" echo echo "Starting the deployment using ${INSTALLER_TYPE}. This could take some time..." echo "--------------------------------------------------------" @@ -111,22 +75,13 @@ echo ${DEPLOY_COMMAND} exit_code=$? -# Temporary workaround for ericsson-virtual* PODs functest integration -# See https://jira.opnfv.org/browse/FUNCTEST-985 -# Set iptables rule to allow forwarding return traffic for container -redirect=/dev/stdout -if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || \ - ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then - sudo iptables -I FORWARD -j RETURN -fi - echo echo "--------------------------------------------------------" echo "Deployment is done!" # upload logs for baremetal deployments # work with virtual deployments is still going on, so skip that for now -if [[ "${JOB_NAME}" =~ (baremetal-daily|baremetal-weekly) ]]; then +if [[ "${JOB_NAME}" =~ baremetal-daily ]]; then echo "Uploading deployment logs" gsutil cp "${WORKSPACE}/${FUEL_LOG_FILENAME}" \ "gs://${GS_URL}/logs/${FUEL_LOG_FILENAME}" > /dev/null 2>&1 diff --git a/jjb/fuel/fuel-download-artifact.sh b/jjb/fuel/fuel-download-artifact.sh deleted file mode 100755 index 02ca10305..000000000 --- a/jjb/fuel/fuel-download-artifact.sh +++ /dev/null @@ -1,63 +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 -############################################################################## -set -o errexit -set -o pipefail - -# disable Fuel ISO download for master branch -[[ ! "$BRANCH" =~ (danube) ]] && exit 0 - -# use proxy url to replace the normal URL, or googleusercontent.com will be blocked randomly -[[ "$NODE_NAME" =~ (zte) ]] && GS_URL=${GS_BASE_PROXY%%/*}/$GS_URL - -# get the latest.properties file in order to get info regarding latest artifact -echo "Downloading http://$GS_URL/latest.properties" -curl -L -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties - -# check if we got the file -[[ -f $WORKSPACE/latest.properties ]] || exit 1 - -# source the file so we get artifact metadata -source $WORKSPACE/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 -ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}" -if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then - echo "ISO exists locally. Skipping the download and using the file from ISO store" - ln -s $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso - echo "--------------------------------------------------------" - echo - ls -al $WORKSPACE/opnfv.iso - echo - echo "--------------------------------------------------------" - echo "Done!" - exit 0 -fi - -[[ "$NODE_NAME" =~ (zte) ]] && OPNFV_ARTIFACT_URL=${GS_BASE_PROXY%%/*}/$OPNFV_ARTIFACT_URL - -# log info to console -echo "Downloading the $INSTALLER_TYPE artifact using URL http://$OPNFV_ARTIFACT_URL" -echo "This could take some time..." -echo "--------------------------------------------------------" -echo - -# download the file -curl -L -s -o $WORKSPACE/opnfv.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1 - -# list the file -ls -al $WORKSPACE/opnfv.iso - -echo -echo "--------------------------------------------------------" -echo "Done!" diff --git a/jjb/fuel/fuel-lab-reconfig.sh b/jjb/fuel/fuel-lab-reconfig.sh deleted file mode 100755 index 4b42a396e..000000000 --- a/jjb/fuel/fuel-lab-reconfig.sh +++ /dev/null @@ -1,80 +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 -############################################################################## -set -o errexit -set -o nounset -set -o pipefail - -# check to see if ucs login info file exists -if [ -e ~/.ssh/ucs_creds ];then - source ~/.ssh/ucs_creds -else - echo "Unable to find UCS credentials for LF lab reconfiguration...Exiting" - exit 1 -fi - -# clone releng -echo "Cloning releng repo..." -if ! GIT_SSL_NO_VERIFY=true git clone https://gerrit.opnfv.org/gerrit/releng; then - echo "Unable to clone releng repo...Exiting" - exit 1 -fi - -# log info to console -echo "Starting the lab reconfiguration for $INSTALLER_TYPE..." -echo "--------------------------------------------------------" -echo - -# create venv -$WORKSPACE/releng/utils/lab-reconfiguration/create_venv.sh - -# disable nounset because 'activate' script contains unbound variable(s) -set +o nounset -# enter venv -source $WORKSPACE/releng/utils/lab-reconfiguration/venv/bin/activate -# set nounset back again -set -o nounset - -# verify we are in venv -if [[ ! $(which python | grep venv) ]]; then - echo "Unable to activate venv...Exiting" - exit 1 -fi - -python $WORKSPACE/releng/utils/lab-reconfiguration/reconfigUcsNet.py -i $ucs_host -u $ucs_user -p $ucs_password -f $WORKSPACE/releng/utils/lab-reconfiguration/fuel.yaml - -# while undergoing reboot -sleep 30 - -# check to see if slave is back up -ping_counter=0 -ping_flag=0 -while [ "$ping_counter" -lt 20 ]; do - if [[ $(ping -c 5 172.30.10.72) ]]; then - ping_flag=1 - break - fi - ((ping_counter++)) - sleep 10 -done - -if [ "$ping_flag" -eq 1 ]; then - echo "Slave is pingable, now wait 180 seconds for services to start" - sleep 180 -else - echo "Slave did not come back up after reboot: please check lf-pod2" - exit 1 -fi - -set +o nounset -deactivate - -echo -echo "--------------------------------------------------------" -echo "Done!" diff --git a/jjb/fuel/fuel-project-jobs.yaml b/jjb/fuel/fuel-project-jobs.yaml index fc49f6348..7d7e4593a 100644 --- a/jjb/fuel/fuel-project-jobs.yaml +++ b/jjb/fuel/fuel-project-jobs.yaml @@ -19,62 +19,10 @@ gs-pathname: '/{stream}' disabled: false - jobs: - - 'fuel-deploy-generic-daily-{stream}' - -######################## -# job templates -######################## -- job-template: - name: 'fuel-deploy-generic-daily-{stream}' - - concurrent: true - - disabled: '{obj:disabled}' + project-name: '{project}' + project-pattern: '{project}' + rtd-build-url: https://readthedocs.org/api/v2/webhook/opnfv-fuel/47205/ + rtd-token: 38f40bf6c08fd4bccb930871bc29b08404cf98b0 - properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-os-.*?-daily-.*' - - 'fuel-deploy-generic-daily-.*' - block-level: 'NODE' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: DEPLOY_SCENARIO - default: 'os-odl-nofeature-ha' - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - ericsson-pod2 - - lf-pod2 - - ericsson-pod1 - default-slaves: - - ericsson-pod2 - - scm: - - git-scm - - wrappers: - - build-name: - name: '$BUILD_NUMBER - POD: $NODE_NAME Scenario: $DEPLOY_SCENARIO' - - builders: - - shell: - !include-raw-escape: ./fuel-deploy.sh + jobs: + - '{project-name}-rtd-jobs' diff --git a/jjb/fuel/fuel-set-scenario.sh b/jjb/fuel/fuel-set-scenario.sh new file mode 100755 index 000000000..4c8ed7334 --- /dev/null +++ b/jjb/fuel/fuel-set-scenario.sh @@ -0,0 +1,54 @@ +#!/bin/bash +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2018 SUSE, Mirantis Inc., Enea Software 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 +############################################################################## +set -o pipefail +set -x + +#---------------------------------------------------------------------- +# This script is used by CI and executed by Jenkins jobs. +# You are not supposed to use this script manually if you don't know +# what you are doing. +#---------------------------------------------------------------------- + +# This function allows developers to specify the impacted scenario by +# requesting a RE-check via a gerrit change comment under a specific format. +# +# Patterns to be searched in change comment: +# recheck: <scenario-name> +# reverify: <scenario-name> +# Examples: +# recheck: os-odl-ovs-noha +# reverify: os-nosdn-nofeature-ha + +function set_scenario() { + # process gerrit event comment text (if present) + DEPLOY_SCENARIO=$(echo "${GERRIT_EVENT_COMMENT_TEXT}" | \ + grep -Po '(?!:(recheck|reverify):\s*)([-\w]+ha)') + if [ -z "${DEPLOY_SCENARIO}" ]; then + if [[ "$JOB_NAME" =~ baremetal ]]; then + DEPLOY_SCENARIO='os-nosdn-nofeature-ha' + else + DEPLOY_SCENARIO='os-nosdn-nofeature-noha' + fi + fi + # save the scenario names into java properties file + # so they can be injected to downstream jobs via envInject + echo "Recording the scenario '${DEPLOY_SCENARIO}' for downstream jobs" + echo "DEPLOY_SCENARIO=${DEPLOY_SCENARIO}" > "$WORK_DIRECTORY/scenario.properties" +} + +# ensure GERRIT vars are set +[ -n "${GERRIT_CHANGE_NUMBER}" ] || exit 1 +GERRIT_EVENT_COMMENT_TEXT="${GERRIT_EVENT_COMMENT_TEXT:-''}" + +# this directory is where the temporary properties file will be stored +WORK_DIRECTORY=/tmp/$GERRIT_CHANGE_NUMBER +/bin/rm -rf "$WORK_DIRECTORY" && mkdir -p "$WORK_DIRECTORY" + +set_scenario diff --git a/jjb/fuel/fuel-verify-jobs.yaml b/jjb/fuel/fuel-verify-jobs.yaml index 8eb5ab0cd..58d7ce6ba 100644 --- a/jjb/fuel/fuel-verify-jobs.yaml +++ b/jjb/fuel/fuel-verify-jobs.yaml @@ -18,22 +18,38 @@ gs-pathname: '/{stream}' disabled: false ##################################### + # cluster architectures + ##################################### + arch_tag: + - 'amd64': + slave-label: 'fuel' + functest-suite-label: 'fuel' + - 'arm64': + slave-label: 'armband' + functest-suite-label: 'fuel-armband' + ##################################### + # cluster types + ##################################### + type: + - 'virtual' + - 'baremetal' + ##################################### # patch verification phases ##################################### phase: - - 'deploy-virtual': - slave-label: 'fuel-virtual' + - 'docker-build' + - 'deploy' ##################################### # jobs ##################################### jobs: - - 'fuel-verify-{stream}' - - 'fuel-verify-{phase}-{stream}' + - 'fuel-verify-{type}-{arch_tag}-{stream}' + - 'fuel-verify-{phase}-{type}-{arch_tag}-{stream}' ##################################### # job templates ##################################### - job-template: - name: 'fuel-verify-{stream}' + name: 'fuel-verify-{type}-{arch_tag}-{stream}' project-type: multijob @@ -50,7 +66,7 @@ - build-blocker: use-build-blocker: true blocking-jobs: - - 'fuel-os-.*?-virtual-daily-.*' + - 'fuel-os-.*?-daily-.*' - 'fuel-verify-.*' block-level: 'NODE' @@ -64,57 +80,49 @@ fail: true 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' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'ci/**' - - compare-type: ANT - pattern: 'mcp/**' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - readable-message: true + - 'fuel-verify-{type}-{arch_tag}-trigger': + project: '{project}' + branch: '{branch}' parameters: - project-parameter: project: '{project}' branch: '{branch}' - - 'fuel-virtual-defaults': + - '{slave-label}-{type}-defaults': installer: '{installer}' - '{installer}-defaults': gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' builders: + - 'fuel-verify-set-scenario-macro' + - inject: + properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/scenario.properties" - description-setter: - description: "Built on $NODE_NAME" + description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" + - multijob: + name: docker-build + condition: SUCCESSFUL + projects: + - name: 'fuel-verify-docker-build-{type}-{arch_tag}-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + - multijob: - name: deploy-virtual + name: deploy condition: SUCCESSFUL projects: - - name: 'fuel-verify-deploy-virtual-{stream}' + - name: 'fuel-verify-deploy-{type}-{arch_tag}-{stream}' current-parameters: false predefined-parameters: | + MCP_DOCKER_TAG={arch_tag}-verify + DEPLOY_SCENARIO=$DEPLOY_SCENARIO BRANCH=$BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER @@ -128,7 +136,7 @@ condition: SUCCESSFUL projects: # Use Functest job definition from jjb/functest/functest-daily-jobs - - name: 'functest-fuel-virtual-suite-{stream}' + - name: 'functest-{functest-suite-label}-{type}-suite-{stream}' current-parameters: false predefined-parameters: | FUNCTEST_MODE=tier @@ -139,11 +147,12 @@ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE node-parameters: true + enable-condition: "def m = '$NODE_NAME' !=~ 'arm-virtual'" kill-phase-on: NEVER abort-all-job: true - job-template: - name: 'fuel-verify-{phase}-{stream}' + name: 'fuel-verify-{phase}-{type}-{arch_tag}-{stream}' disabled: '{obj:disabled}' @@ -159,6 +168,7 @@ - build-blocker: use-build-blocker: true blocking-jobs: + - 'fuel-verify-docker-build-.*' - 'fuel-verify-deploy-.*' block-level: 'NODE' @@ -175,8 +185,7 @@ - project-parameter: project: '{project}' branch: '{branch}' - - '{slave-label}-defaults' - - 'fuel-virtual-defaults': + - '{slave-label}-{type}-defaults': installer: '{installer}' - '{installer}-defaults': gs-pathname: '{gs-pathname}' @@ -185,11 +194,77 @@ - description-setter: description: "Built on $NODE_NAME" - '{project}-verify-{phase}-macro' +######################## +# trigger macros +######################## +- trigger: + name: 'fuel-verify-virtual-amd64-trigger' + triggers: + - gerrit: &fuel_verify_virtual_amd64_trigger + 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|reverify)(\s|:\s*[-\w]+-noha)' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'ci/**' + - compare-type: ANT + pattern: 'mcp/**' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**' + readable-message: true +- trigger: + name: 'fuel-verify-virtual-arm64-trigger' + triggers: + - gerrit: + <<: *fuel_verify_virtual_amd64_trigger +- trigger: + name: 'fuel-verify-baremetal-amd64-trigger' + triggers: + - gerrit: &fuel_verify_baremetal_amd64_trigger + <<: *fuel_verify_virtual_amd64_trigger + trigger-on: + - comment-added-contains-event: + comment-contains-value: '(recheck|reverify):\s*[-\w]+-ha' +- trigger: + name: 'fuel-verify-baremetal-arm64-trigger' + triggers: + - gerrit: + <<: *fuel_verify_baremetal_amd64_trigger + skip-vote: + successful: true + failed: true + unstable: true + notbuilt: true ##################################### # builder macros ##################################### - builder: - name: 'fuel-verify-deploy-virtual-macro' + name: 'fuel-verify-set-scenario-macro' + builders: + - shell: + !include-raw: ./fuel-set-scenario.sh +- builder: + name: 'fuel-verify-deploy-macro' builders: - shell: !include-raw: ./fuel-deploy.sh +- builder: + name: 'fuel-verify-docker-build-macro' + builders: + - shell: | + #!/bin/bash -ex + sudo ./ci/build.sh 'verify' '' diff --git a/jjb/fuel/fuel-weekly-jobs.yaml b/jjb/fuel/fuel-weekly-jobs.yaml deleted file mode 100644 index c6b921729..000000000 --- a/jjb/fuel/fuel-weekly-jobs.yaml +++ /dev/null @@ -1,189 +0,0 @@ ---- -# jenkins job templates for Fuel -- project: - - name: fuel-weekly - - project: fuel - - installer: fuel - - # ------------------------------- - # BRANCH ANCHORS - # ------------------------------- - master: &master - stream: master - branch: '{stream}' - disabled: false - gs-pathname: '' - fraser: &fraser - stream: fraser - branch: 'stable/{stream}' - disabled: false - gs-pathname: '/{stream}' - # ------------------------------- - # POD, INSTALLER, AND BRANCH MAPPING - # ------------------------------- - # CI PODs - # ------------------------------- - pod: - - baremetal: - slave-label: fuel-baremetal - <<: *master - - virtual: - slave-label: fuel-virtual - <<: *master - - baremetal: - slave-label: fuel-baremetal - <<: *fraser - - virtual: - slave-label: fuel-virtual - <<: *fraser - # ------------------------------- - # scenarios - # ------------------------------- - scenario: - # HA scenarios - - 'os-nosdn-nofeature-ha': - auto-trigger-name: 'weekly-trigger-disabled' - - jobs: - - 'fuel-{scenario}-{pod}-weekly-{stream}' - - 'fuel-deploy-{pod}-weekly-{stream}' - -######################## -# job templates -######################## -- job-template: - name: 'fuel-{scenario}-{pod}-weekly-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-os-.*?-{pod}-daily-.*' - - 'fuel-os-.*?-{pod}-weekly-.*' - - 'fuel-verify-.*' - block-level: 'NODE' - - wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - triggers: - - '{auto-trigger-name}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - trigger-builds: - - project: 'fuel-deploy-{pod}-weekly-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - same-node: true - block: true - - trigger-builds: - - project: 'functest-fuel-{pod}-weekly-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - same-node: true - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - publishers: - - email-fuel-ptl - - email-jenkins-admins-on-failure - -- job-template: - name: 'fuel-deploy-{pod}-weekly-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-deploy-{pod}-daily-.*' - - 'fuel-deploy-generic-daily-.*' - - 'fuel-deploy-{pod}-weekly-.*' - - 'fuel-deploy-generic-weekly-.*' - block-level: 'NODE' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - testapi-parameter - - string: - name: DEPLOY_SCENARIO - default: 'os-odl-nofeature-ha' - - scm: - - git-scm - - wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - track-begin-timestamp - - shell: - !include-raw-escape: ./fuel-deploy.sh - - publishers: - - email-fuel-ptl - - email-jenkins-admins-on-failure - - report-provision-result - -######################## -# trigger macros -######################## -# ---------------------------------------------- -# Triggers for job running on fuel-baremetal against master branch -# ---------------------------------------------- -# HA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-baremetal-weekly-master-trigger' - triggers: - - timed: '' diff --git a/jjb/functest/functest-alpine.sh b/jjb/functest/functest-alpine.sh index 744a7de4e..4e23d44fe 100755 --- a/jjb/functest/functest-alpine.sh +++ b/jjb/functest/functest-alpine.sh @@ -61,15 +61,15 @@ run_test() { case ${test_name} in connection_check|tenantnetwork1|tenantnetwork2|vmready1|vmready2|singlevm1|singlevm2|vping_ssh|vping_userdata|cinder_test|odl|api_check|snaps_health_check) FUNCTEST_IMAGE=${REPO}/functest-healthcheck:${DOCKER_TAG} ;; - tempest_smoke|rally_sanity|refstack_defcore|patrole|snaps_smoke|neutron_trunk|barbican) + tempest_smoke_serial|tempest_smoke|neutron-tempest-plugin-api|rally_sanity|refstack_defcore|patrole|snaps_smoke|neutron_trunk|networking-bgpvpn|networking-sfc|barbican) FUNCTEST_IMAGE=${REPO}/functest-smoke:${DOCKER_TAG} ;; shaker|vmtp) FUNCTEST_IMAGE=${REPO}/functest-benchmarking:${DOCKER_TAG} ;; - tempest_full|rally_full) + tempest_full_parallel|tempest_full|tempest_scenario|rally_full) FUNCTEST_IMAGE=${REPO}/functest-components:${DOCKER_TAG} ;; - cloudify_ims|vyos_vrouter|juju_epc) + cloudify|cloudify_ims|heat_ims|vyos_vrouter|juju_epc) FUNCTEST_IMAGE=${REPO}/functest-vnf:${DOCKER_TAG} ;; - doctor-notification|bgpvpn|functest-odl-sfc|barometercollectd|fds) + doctor-notification|bgpvpn|functest-odl-sfc|barometercollectd|fds|vgpu|stor4nfv_os) FUNCTEST_IMAGE=${REPO}/functest-features:${DOCKER_TAG} ;; *) echo "Unkown test case $test_name" @@ -168,18 +168,24 @@ elif [ ${FUNCTEST_MODE} == 'tier' ]; then tiers=(${FUNCTEST_TIER}) run_tiers ${tiers} else + tests=(tempest_full tempest_scenario) if [ ${DEPLOY_TYPE} == 'baremetal' ] && [ "${HOST_ARCH}" != "aarch64" ]; then if [[ ${BRANCH} == "stable/fraser" ]]; then tiers=(healthcheck smoke features vnf parser) + tests=(tempest_full_parallel) else tiers=(healthcheck smoke benchmarking features vnf) fi else if [[ ${BRANCH} == "stable/fraser" ]]; then tiers=(healthcheck smoke features parser) + tests=(tempest_full_parallel) else tiers=(healthcheck smoke benchmarking features) fi fi run_tiers ${tiers} + for test in "${tests[@]}"; do + run_test "$test" + done fi diff --git a/jjb/functest/functest-daily-jobs.yaml b/jjb/functest/functest-daily-jobs.yaml index 763d1d4f0..daed74ea3 100644 --- a/jjb/functest/functest-daily-jobs.yaml +++ b/jjb/functest/functest-daily-jobs.yaml @@ -18,6 +18,14 @@ stream: fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' + gambia: &gambia + stream: gambia + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + hunter: &hunter + stream: hunter + branch: 'stable/{stream}' + gs-pathname: '/{stream}' # ------------------------------- # POD, INSTALLER, AND BRANCH MAPPING # ------------------------------- @@ -70,6 +78,10 @@ slave-label: compass-virtual installer: compass <<: *master + - arm-virtual: + slave-label: compass-arm-virtual + installer: compass + <<: *master - baremetal: slave-label: compass-baremetal installer: compass @@ -78,6 +90,10 @@ slave-label: compass-virtual installer: compass <<: *fraser + - arm-virtual: + slave-label: compass-arm-virtual + installer: compass + <<: *fraser # apex CI PODs - virtual: slave-label: apex-virtual-master diff --git a/jjb/functest/functest-docker.yaml b/jjb/functest/functest-docker.yaml index fc2fd3cae..14134fa56 100644 --- a/jjb/functest/functest-docker.yaml +++ b/jjb/functest/functest-docker.yaml @@ -12,6 +12,12 @@ - master: branch: '{stream}' disabled: false + - hunter: + branch: 'stable/{stream}' + disabled: false + - gambia: + branch: 'stable/{stream}' + disabled: false - fraser: branch: 'stable/{stream}' disabled: false @@ -37,6 +43,10 @@ exclude: - stream: 'master' image: 'parser' + - stream: 'hunter' + image: 'parser' + - stream: 'gambia' + image: 'parser' - stream: 'fraser' image: 'tempest' - stream: 'fraser' diff --git a/jjb/functest/functest-kubernetes-docker.yaml b/jjb/functest/functest-kubernetes-docker.yaml index 5fbb3be7e..3836103a8 100644 --- a/jjb/functest/functest-kubernetes-docker.yaml +++ b/jjb/functest/functest-kubernetes-docker.yaml @@ -12,6 +12,12 @@ - master: branch: '{stream}' disabled: false + - hunter: + branch: 'stable/{stream}' + disabled: false + - gambia: + branch: 'stable/{stream}' + disabled: false - fraser: branch: 'stable/{stream}' disabled: false diff --git a/jjb/functest/functest-kubernetes-project-jobs.yaml b/jjb/functest/functest-kubernetes-project-jobs.yaml index 7f8dd8d53..46b77ce68 100644 --- a/jjb/functest/functest-kubernetes-project-jobs.yaml +++ b/jjb/functest/functest-kubernetes-project-jobs.yaml @@ -18,6 +18,14 @@ branch: '{stream}' gs-pathname: '' disabled: false + - hunter: &hunter + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + - gambia: &gambia + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' diff --git a/jjb/functest/functest-project-jobs.yaml b/jjb/functest/functest-project-jobs.yaml index 9a123053f..b7220a83c 100644 --- a/jjb/functest/functest-project-jobs.yaml +++ b/jjb/functest/functest-project-jobs.yaml @@ -18,6 +18,14 @@ branch: '{stream}' gs-pathname: '' disabled: false + - hunter: + branch: 'stable/{stream}' + gs-pathname: '' + disabled: false + - gambia: + branch: 'stable/{stream}' + gs-pathname: '' + disabled: false - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' diff --git a/jjb/functest/xtesting-docker.yaml b/jjb/functest/xtesting-docker.yaml index 251c3954e..84bcb2185 100644 --- a/jjb/functest/xtesting-docker.yaml +++ b/jjb/functest/xtesting-docker.yaml @@ -12,6 +12,12 @@ - master: branch: '{stream}' disabled: false + - hunter: + branch: 'stable/{stream}' + disabled: false + - gambia: + branch: 'stable/{stream}' + disabled: false - fraser: branch: 'stable/{stream}' disabled: false diff --git a/jjb/functest/xtesting-project-jobs.yaml b/jjb/functest/xtesting-project-jobs.yaml index e109387c6..239ae9f9b 100644 --- a/jjb/functest/xtesting-project-jobs.yaml +++ b/jjb/functest/xtesting-project-jobs.yaml @@ -18,6 +18,14 @@ branch: '{stream}' gs-pathname: '' disabled: false + - hunter: &hunter + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + - gambia: &gambia + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' diff --git a/jjb/global/releng-defaults.yaml b/jjb/global/releng-defaults.yaml index 2e94767e8..ce008ca3b 100644 --- a/jjb/global/releng-defaults.yaml +++ b/jjb/global/releng-defaults.yaml @@ -11,6 +11,14 @@ node: master + # Defaults for global-jjb jobs + build-timeout: 60 + build-node: 'opnfv-build' + gerrit-server-name: 'gerrit.opnfv.org' + jenkins-ssh-credential: 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e' + jjb-version: '2.0.3' + lftools-version: '<1.0.0' + properties: - logrotate-default diff --git a/jjb/global/slave-params.yaml b/jjb/global/slave-params.yaml index 0219be54b..e83a10265 100644 --- a/jjb/global/slave-params.yaml +++ b/jjb/global/slave-params.yaml @@ -272,10 +272,6 @@ name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' - - string: - name: LAB_CONFIG_URL - default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab - description: 'Base URI to the configuration directory' - parameter: name: 'auto-baremetal-defaults' @@ -355,6 +351,17 @@ description: 'Git URL to use on this Jenkins Slave' - parameter: + name: 'compass-arm-virtual-defaults' + parameters: + - label: + name: SLAVE_LABEL + default: 'compass-arm-virtual' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + +- parameter: name: 'compass-virtual-master-defaults' parameters: - label: @@ -397,10 +404,6 @@ name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' - - string: - name: LAB_CONFIG_URL - default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab - description: 'Base URI to the configuration directory' - parameter: name: 'joid-virtual-defaults' @@ -519,6 +522,22 @@ description: 'Git URL to use on this Jenkins Slave' - parameter: + name: 'ericsson-build4-defaults' + parameters: + - label: + name: SLAVE_LABEL + default: 'ericsson-build4' + description: 'Slave label on Jenkins' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + +- parameter: name: 'huawei-build-defaults' parameters: - node: diff --git a/jjb/openci/create-ane.sh b/jjb/openci/create-ane.sh deleted file mode 100755 index 8a4da8f52..000000000 --- a/jjb/openci/create-ane.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 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 -############################################################################## -set -o errexit -set -o nounset -set -o pipefail - -# This script creates ArtifactPublishedEvent -# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is -# constructed on a single line. This is something that needs to be fixed properly - -cat << EOF > $WORKSPACE/event.properties -type=$PUBLISH_EVENT_TYPE -origin=$PUBLISH_EVENT_ORIGIN -eventBody="{ 'type': '$PUBLISH_EVENT_TYPE', 'id': '$(uuidgen)', 'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$PUBLISH_EVENT_ORIGIN', 'buildUrl': '$BUILD_URL', 'branch': 'master', 'artifactLocation': '$ARTIFACT_LOCATION', 'confidenceLevel': { $CONFIDENCE_LEVEL } }" -EOF -echo "Constructed $PUBLISH_EVENT_TYPE" -echo "--------------------------------------------" -cat $WORKSPACE/event.properties -echo "--------------------------------------------" diff --git a/jjb/openci/create-ape.sh b/jjb/openci/create-ape.sh new file mode 100755 index 000000000..7c9b46cc6 --- /dev/null +++ b/jjb/openci/create-ape.sh @@ -0,0 +1,47 @@ +#!/bin/bash +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2018 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 +############################################################################## +set -o errexit +set -o nounset +set -o pipefail + +# workaround for https://github.com/pypa/virtualenv/issues/1029 +export PS1=${PS1:-} + +# This script creates ArtifactPublishedEvent + +git clone https://gitlab.openci.io/openci/prototypes.git +cd prototypes/federated-cicd +virtualenv openci_publish +cd openci_publish +source bin/activate +python setup.py install + +# generate event body +cat <<EOF > ./json_body.txt +{ + "type": "$PUBLISH_EVENT_TYPE", + "id": "$(uuidgen)", + "time": "$(date -u +%Y-%m-%d_%H:%M:%SUTC)", + "buildUrl": "$BUILD_URL", + "branch": "master", + "origin": "$PUBLISH_EVENT_ORIGIN", + "artifactLocation": "$ARTIFACT_LOCATION", + "confidenceLevel": "$CONFIDENCE_LEVEL" +} +EOF + +echo "Constructed $PUBLISH_EVENT_TYPE" +echo "--------------------------------------------" +cat ./json_body.txt +echo "--------------------------------------------" + +python openci_publish -H 129.192.69.55 -U ${ACTIVEMQ_USER} -p ${ACTIVEMQ_PASSWORD} -n openci.prototype -B ./json_body.txt + +deactivate diff --git a/jjb/openci/create-cde.sh b/jjb/openci/create-cde.sh index 410db50e6..9780119ce 100755 --- a/jjb/openci/create-cde.sh +++ b/jjb/openci/create-cde.sh @@ -11,17 +11,37 @@ set -o errexit set -o nounset set -o pipefail +export PS1=${PS1:-} + # This script creates CompositionDefinedEvent -# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is -# constructed on a single line. This is something that needs to be fixed properly -cat << EOF > $WORKSPACE/event.properties -type=$PUBLISH_EVENT_TYPE -origin=$PUBLISH_EVENT_ORIGIN -scenario=$DEPLOY_SCENARIO -eventBody="{ 'type': '$PUBLISH_EVENT_TYPE', 'id': '$(uuidgen)', 'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$PUBLISH_EVENT_ORIGIN', 'buildUrl': '$BUILD_URL', 'branch': 'master', 'compositionName': '$DEPLOY_SCENARIO', 'compositionMetadataUrl': '$SCENARIO_METADATA_LOCATION' }" +git clone https://gitlab.openci.io/openci/prototypes.git +cd prototypes/federated-cicd +virtualenv openci_publish +cd openci_publish +source bin/activate +python setup.py install + +# generate event body +cat <<EOF > ./json_body.txt +{ + "type": "$PUBLISH_EVENT_TYPE", + "id": "$(uuidgen)", + "time": "$(date -u +%Y-%m-%d_%H:%M:%SUTC)", + "buildUrl": "$BUILD_URL", + "branch": "master", + "origin": "$PUBLISH_EVENT_ORIGIN", + "scenario": "$DEPLOY_SCENARIO", + "compositionName": "$DEPLOY_SCENARIO", + "compositionMetadataUrl": "$SCENARIO_METADATA_LOCATION" +} EOF + echo "Constructed $PUBLISH_EVENT_TYPE" echo "--------------------------------------------" -cat $WORKSPACE/event.properties +cat ./json_body.txt echo "--------------------------------------------" + +python openci_publish -H 129.192.69.55 -U ${ACTIVEMQ_USER} -p ${ACTIVEMQ_PASSWORD} -n openci.prototype -B ./json_body.txt + +deactivate diff --git a/jjb/openci/create-clme.sh b/jjb/openci/create-clme.sh index 5e8ee10c9..2ece019b0 100755 --- a/jjb/openci/create-clme.sh +++ b/jjb/openci/create-clme.sh @@ -11,17 +11,38 @@ set -o errexit set -o nounset set -o pipefail +export PS1=${PS1:-} + # This script creates ConfidenceLevelModifiedEvent -# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is -# constructed on a single line. This is something that needs to be fixed properly -cat << EOF > $WORKSPACE/event.properties -type=$PUBLISH_EVENT_TYPE -origin=$PUBLISH_EVENT_ORIGIN -scenario=$DEPLOY_SCENARIO -eventBody="{ 'type': '$PUBLISH_EVENT_TYPE', 'id': '$(uuidgen)', 'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$PUBLISH_EVENT_ORIGIN', 'buildUrl': '$BUILD_URL', 'branch': 'master', 'compositionName': '$DEPLOY_SCENARIO', 'compositionMetadataUrl': '$SCENARIO_METADATA_LOCATION', 'confidenceLevel': { $CONFIDENCE_LEVEL } }" +git clone https://gitlab.openci.io/openci/prototypes.git +cd prototypes/federated-cicd +virtualenv openci_publish +cd openci_publish +source bin/activate +python setup.py install + +# generate event body +cat <<EOF > ./json_body.txt +{ + "type": "$PUBLISH_EVENT_TYPE", + "id": "$(uuidgen)", + "time": "$(date -u +%Y-%m-%d_%H:%M:%SUTC)", + "buildUrl": "$BUILD_URL", + "branch": "master", + "origin": "$PUBLISH_EVENT_ORIGIN", + "scenario": "$DEPLOY_SCENARIO", + "compositionName": "$DEPLOY_SCENARIO", + "compositionMetadataUrl": "$SCENARIO_METADATA_LOCATION", + "confidenceLevel": "$CONFIDENCE_LEVEL" +} EOF + echo "Constructed $PUBLISH_EVENT_TYPE" echo "--------------------------------------------" -cat $WORKSPACE/event.properties +cat ./json_body.txt echo "--------------------------------------------" + +python openci_publish -H 129.192.69.55 -U ${ACTIVEMQ_USER} -p ${ACTIVEMQ_PASSWORD} -n openci.prototype -B ./json_body.txt + +deactivate diff --git a/jjb/openci/openci-odl-daily-jobs.yaml b/jjb/openci/openci-odl-daily-jobs.yaml index d80feadf6..bdaca5742 100644 --- a/jjb/openci/openci-odl-daily-jobs.yaml +++ b/jjb/openci/openci-odl-daily-jobs.yaml @@ -46,19 +46,7 @@ builders: - shell: - !include-raw-escape: ./create-ane.sh - - inject: - properties-file: "$WORKSPACE/event.properties" - - publishers: - - jms-messaging: - provider-name: openci.activemq - msg-type: Custom - msg-props: | - type=$type - origin=$origin - msg-content: - $eventBody + !include-raw-escape: ./create-ape.sh # This job gets triggered by a ConfidenceLevelModifiedEvent published # by OPNFV jobs so ODL can promote the autorelease artifact even further. @@ -78,14 +66,8 @@ triggers: - jms-messaging: provider-name: openci.activemq - selector: CI_TYPE = 'custom' - checks: - - field: origin - expected-value: 'OPNFV' - - field: type - expected-value: 'ConfidenceLevelModifiedEvent' - - field: scenario - expected-value: 'os-odl-nofeature' + selector: | + JMSType = 'ConfidenceLevelModifiedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = 'os-odl-nofeature-ha' builders: - shell: | diff --git a/jjb/openci/openci-onap-daily-jobs.yaml b/jjb/openci/openci-onap-daily-jobs.yaml index 28c3e6948..88589d8ac 100644 --- a/jjb/openci/openci-onap-daily-jobs.yaml +++ b/jjb/openci/openci-onap-daily-jobs.yaml @@ -46,19 +46,7 @@ builders: - shell: - !include-raw-escape: ./create-ane.sh - - inject: - properties-file: "$WORKSPACE/event.properties" - - publishers: - - jms-messaging: - provider-name: openci.activemq - msg-type: Custom - msg-props: | - type=$type - origin=$origin - msg-content: - $eventBody + !include-raw-escape: ./create-ape.sh # This job gets triggered by a ConfidenceLevelModifiedEvent published # by OPNFV jobs so ONAP can promote the autorelease artifact even further. @@ -78,14 +66,8 @@ triggers: - jms-messaging: provider-name: openci.activemq - selector: CI_TYPE = 'custom' - checks: - - field: origin - expected-value: 'OPNFV' - - field: type - expected-value: 'ConfidenceLevelModifiedEvent' - - field: scenario - expected-value: 'k8-nosdn-onap' + selector: | + JMSType = 'ConfidenceLevelModifiedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = 'k8-nosdn-onap-ha' builders: - shell: | diff --git a/jjb/openci/openci-opnfv-daily-jobs.yaml b/jjb/openci/openci-opnfv-daily-jobs.yaml index cb150148b..7f48fcc06 100644 --- a/jjb/openci/openci-opnfv-daily-jobs.yaml +++ b/jjb/openci/openci-opnfv-daily-jobs.yaml @@ -44,17 +44,20 @@ name: SCENARIO_METADATA_LOCATION default: https://url/to/scenario/metadata/on/opnfv/artifact/repo/$BUILD_NUMBER description: 'The location of the scenario metadata' - - 'opnfv-build-defaults' + - 'ericsson-build4-defaults' + + wrappers: + - credentials-binding: + - username-password-separated: + credential-id: openci-connect-activemq + username: ACTIVEMQ_USER + password: ACTIVEMQ_PASSWORD + - workspace-cleanup triggers: - jms-messaging: provider-name: openci.activemq - selector: CI_TYPE = 'custom' - checks: - - field: origin - expected-value: '{origin}' - - field: type - expected-value: 'ArtifactPublishedEvent' + selector: JMSType = 'ArtifactPublishedEvent' and JMSOrigin = 'ODL' builders: - shell: | @@ -67,19 +70,6 @@ echo "----------------------------------" - shell: !include-raw-escape: ./create-cde.sh - - inject: - properties-file: "$WORKSPACE/event.properties" - - publishers: - - jms-messaging: - provider-name: openci.activemq - msg-type: Custom - msg-props: | - type=$type - origin=$origin - scenario=$scenario - msg-content: - $eventBody - job-template: name: 'openci-opnfv-{scenario}-test-daily-{stream}' @@ -109,19 +99,20 @@ name: CONFIDENCE_LEVEL default: "'opnfvdaily': 'SUCCESS'" description: 'The confidence level the published artifact gained' - - 'opnfv-build-defaults' + - 'ericsson-build4-defaults' + + wrappers: + - credentials-binding: + - username-password-separated: + credential-id: openci-connect-activemq + username: ACTIVEMQ_USER + password: ACTIVEMQ_PASSWORD + - workspace-cleanup triggers: - jms-messaging: provider-name: openci.activemq - selector: CI_TYPE = 'custom' - checks: - - field: origin - expected-value: 'OPNFV' - - field: type - expected-value: 'CompositionDefinedEvent' - - field: scenario - expected-value: '{scenario}' + selector: JMSType = 'CompositionDefinedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = '{scenario}' builders: - shell: | @@ -134,16 +125,3 @@ echo "----------------------------------" - shell: !include-raw-escape: ./create-clme.sh - - inject: - properties-file: "$WORKSPACE/event.properties" - - publishers: - - jms-messaging: - provider-name: openci.activemq - msg-type: Custom - msg-props: | - type=$type - origin=$origin - scenario=$scenario - msg-content: - $eventBody diff --git a/jjb/releng/opnfv-docker.yaml b/jjb/releng/opnfv-docker.yaml index c31860a16..47c3ce4b8 100644 --- a/jjb/releng/opnfv-docker.yaml +++ b/jjb/releng/opnfv-docker.yaml @@ -26,6 +26,11 @@ storperf-receivers: &storperf-receivers receivers: > mark.beierl@emc.com + yardstick-receivers: &yardstick-receivers + receivers: > + limingjiang@huawei.com + rexlee8776@gmail.com + emma.l.foley@intel.com other-receivers: &other-receivers receivers: '' @@ -179,7 +184,13 @@ - 'yardstick': project: 'yardstick' <<: *master - <<: *other-receivers + <<: *yardstick-receivers + - 'yardstick-image-k8s': + project: 'yardstick' + dockerdir: 'docker/k8s' + <<: *master + <<: *yardstick-receivers + # projects with jobs for euphrates - 'barometer-collectd': project: 'barometer' @@ -294,6 +305,10 @@ dockerfile: 'Dockerfile' <<: *fraser <<: *other-receivers + - 'dovetail': + project: 'dovetail' + <<: *fraser + <<: *other-receivers # yamllint enable rule:key-duplicates jobs: - "{dockerrepo}-docker-build-push-{stream}" diff --git a/jjb/releng/opnfv-utils.yaml b/jjb/releng/opnfv-utils.yaml index 1d50eb44e..71013f4ff 100644 --- a/jjb/releng/opnfv-utils.yaml +++ b/jjb/releng/opnfv-utils.yaml @@ -130,6 +130,7 @@ default-slaves: - lf-build1 - lf-build2 + - ericsson-build3 - ericsson-build4 allowed-multiselect: true ignore-offline-nodes: true @@ -144,6 +145,8 @@ - timed: '@midnight' builders: + - description-setter: + description: '$NODE_NAME' - install-ansible - run-ansible-build-server-playbook diff --git a/jjb/releng/releng-ci-jobs.yaml b/jjb/releng/releng-ci-jobs.yaml index 49abd7dd4..17fb6e42c 100644 --- a/jjb/releng/releng-ci-jobs.yaml +++ b/jjb/releng/releng-ci-jobs.yaml @@ -5,11 +5,6 @@ project-name: 'releng' build-timeout: 60 - build-node: 'lf-build1' - gerrit-server-name: 'gerrit.opnfv.org' - jenkins-ssh-credential: 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e' - jjb-version: '2.0.3' - lftools-version: '<1.0.0' rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-releng/38594/' rtd-token: '291c6a0109493b4457e566d06141212452c65784' diff --git a/jjb/releng/releng-release-create-branch.sh b/jjb/releng/releng-release-create-branch.sh index 92be0e637..663ff19e7 100644 --- a/jjb/releng/releng-release-create-branch.sh +++ b/jjb/releng/releng-release-create-branch.sh @@ -26,7 +26,20 @@ STREAM=${STREAM:-'nostream'} RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM") for release_file in $RELEASE_FILES; do - python releases/scripts/create_branch.py -f $release_file + + while read -r repo branch ref; do + + echo "$repo" "$branch" "$ref" + branches="$(git ls-remote "https://gerrit.opnfv.org/gerrit/$repo.git" "refs/heads/$branch")" + + if ! [ -z "$branches" ]; then + echo "refs/heads/$branch already exists at $ref ($branches)" + else + ssh -n -f -p 29418 gerrit.opnfv.org gerrit create-branch "$repo" "$branch" "$ref" + fi + + done < <(python releases/scripts/repos.py -b -f "$release_file") + python releases/scripts/create_jobs.py -f $release_file NEW_FILES=$(git status --porcelain --untracked=no | cut -c4-) if [ -n "$NEW_FILES" ]; then diff --git a/jjb/releng/releng-release-jobs.yaml b/jjb/releng/releng-release-jobs.yaml index c24cdb91d..3136d7855 100644 --- a/jjb/releng/releng-release-jobs.yaml +++ b/jjb/releng/releng-release-jobs.yaml @@ -14,6 +14,8 @@ stream: - fraser + - gambia + - hunter jobs: - 'releng-release-{stream}-verify' @@ -105,7 +107,7 @@ - shell: !include-raw-escape: - releng-release-create-venv.sh - releng-release-tagging.sh - # - releng-release-create-branch.sh + - releng-release-create-branch.sh publishers: - email-jenkins-admins-on-failure diff --git a/jjb/xci/xci-daily-jobs.yaml b/jjb/xci/xci-daily-jobs.yaml index a67ff059c..fcd4465cb 100644 --- a/jjb/xci/xci-daily-jobs.yaml +++ b/jjb/xci/xci-daily-jobs.yaml @@ -17,57 +17,46 @@ # ------------------------------- scenario: - 'os-nosdn-nofeature-noha': - auto-trigger-name: 'daily-trigger-disabled' deploy-scenario: 'os-nosdn-nofeature' installer-type: 'osa' xci-flavor: 'mini' - 'os-nosdn-osm-noha': - auto-trigger-name: 'daily-trigger-disabled' deploy-scenario: 'os-nosdn-osm' installer-type: 'osa' xci-flavor: 'mini' - 'os-odl-nofeature-noha': - auto-trigger-name: 'daily-trigger-disabled' deploy-scenario: 'os-odl-nofeature' installer-type: 'osa' xci-flavor: 'mini' - 'os-odl-bgpvpn-noha': - auto-trigger-name: 'daily-trigger-disabled' deploy-scenario: 'os-odl-bgpvpn' installer-type: 'osa' xci-flavor: 'mini' - 'os-odl-sfc-noha': - auto-trigger-name: 'daily-trigger-disabled' deploy-scenario: 'os-odl-sfc' installer-type: 'osa' xci-flavor: 'mini' - 'k8-nosdn-nofeature-noha': - auto-trigger-name: 'daily-trigger-disabled' deploy-scenario: 'k8-nosdn-nofeature' installer-type: 'kubespray' xci-flavor: 'mini' - 'k8-canal-nofeature-noha': - auto-trigger-name: 'daily-trigger-disabled' deploy-scenario: 'k8-canal-nofeature' installer-type: 'kubespray' xci-flavor: 'mini' - 'k8-calico-nofeature-noha': - auto-trigger-name: 'daily-trigger-disabled' deploy-scenario: 'k8-calico-nofeature' installer-type: 'kubespray' xci-flavor: 'mini' - 'k8-contiv-nofeature-noha': - auto-trigger-name: 'daily-trigger-disabled' deploy-scenario: 'k8-contiv-nofeature' installer-type: 'kubespray' xci-flavor: 'mini' - 'k8-flannel-nofeature-noha': - auto-trigger-name: 'daily-trigger-disabled' deploy-scenario: 'k8-flannel-nofeature' installer-type: 'kubespray' xci-flavor: 'mini' - 'k8-nosdn-istio-noha': - auto-trigger-name: 'daily-trigger-disabled' deploy-scenario: 'k8-nosdn-istio' installer-type: 'kubespray' xci-flavor: 'mini' @@ -133,6 +122,9 @@ block-level: 'NODE' - logrotate-default + triggers: + - timed: '@midnight' + parameters: - string: name: DEPLOY_SCENARIO @@ -150,11 +142,14 @@ name: XCI_DISTRO default: '{distro}' - string: + name: FUNCTEST_VERSION + default: 'hunter' + - string: name: FUNCTEST_MODE default: 'tier' - string: name: FUNCTEST_SUITE_NAME - default: 'healthcheck' + default: 'smoke' - string: name: CI_LOOP default: 'daily' @@ -163,9 +158,6 @@ default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' - triggers: - - '{auto-trigger-name}' - wrappers: - ssh-agent-wrapper - build-timeout: @@ -184,6 +176,9 @@ XCI_FLAVOR=$XCI_FLAVOR CI_LOOP=$CI_LOOP XCI_DISTRO=$XCI_DISTRO + FUNCTEST_VERSION=$FUNCTEST_VERSION + FUNCTEST_MODE=$FUNCTEST_MODE + FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME same-node: true block: true - trigger-builds: @@ -195,6 +190,7 @@ XCI_FLAVOR=$XCI_FLAVOR CI_LOOP=$CI_LOOP XCI_DISTRO=$XCI_DISTRO + FUNCTEST_VERSION=$FUNCTEST_VERSION FUNCTEST_MODE=$FUNCTEST_MODE FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME same-node: true @@ -277,11 +273,14 @@ name: SLAVE_LABEL default: '{slave-label}' - string: + name: FUNCTEST_VERSION + default: 'hunter' + - string: name: FUNCTEST_MODE default: 'tier' - string: name: FUNCTEST_SUITE_NAME - default: 'healthcheck' + default: 'smoke' - string: name: CI_LOOP default: 'daily' @@ -322,6 +321,8 @@ echo "Removing $vm" sudo virsh destroy $vm > /dev/null 2>&1 || true sudo virsh undefine $vm > /dev/null 2>&1 || true + sudo killall -r vbmc > /dev/null 2>&1 || true + sudo rm -rf /root/.vbmc > /dev/null 2>&1 || true done echo "---------------------------------------------------------------------------------" @@ -345,10 +346,29 @@ builders: - shell: | #!/bin/bash - set -o errexit set -o pipefail ssh root@192.168.122.2 "/root/run-functest.sh" + functest_exit=$? + + case ${DEPLOY_SCENARIO[0]} in + os-*) + FUNCTEST_LOG=/root/functest-results/functest.log + ;; + k8-*) + FUNCTEST_LOG=/root/functest-results/functest-kubernetes.log + ;; + *) + echo "Unable to determine the installer. Exiting!" + exit $functest_exit + ;; + esac + + echo "Functest log" + echo "---------------------------------------------------------------------------------" + ssh root@192.168.122.2 "cat $FUNCTEST_LOG" + echo "---------------------------------------------------------------------------------" + exit ${functest_exit} - builder: name: 'xci-daily-yardstick-macro' builders: diff --git a/jjb/xci/xci-merge-jobs.yaml b/jjb/xci/xci-merge-jobs.yaml index 0cf1ab9e5..a499ec9be 100644 --- a/jjb/xci/xci-merge-jobs.yaml +++ b/jjb/xci/xci-merge-jobs.yaml @@ -256,6 +256,9 @@ name: CI_LOOP default: 'merge' - string: + name: FUNCTEST_VERSION + default: 'hunter' + - string: name: FUNCTEST_MODE default: 'tier' - string: @@ -292,6 +295,9 @@ GERRIT_REFSPEC=$GERRIT_REFSPEC GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + FUNCTEST_VERSION=$FUNCTEST_VERSION + FUNCTEST_MODE=$FUNCTEST_MODE + FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME node-parameters: true kill-phase-on: '{kill-phase-on}' abort-all-job: '{abort-all-job}' @@ -310,6 +316,7 @@ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE CI_LOOP=$CI_LOOP + FUNCTEST_VERSION=$FUNCTEST_VERSION FUNCTEST_MODE=$FUNCTEST_MODE FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME node-parameters: true @@ -359,6 +366,9 @@ name: CI_LOOP default: 'merge' - string: + name: FUNCTEST_VERSION + default: 'hunter' + - string: name: FUNCTEST_MODE default: 'tier' - string: diff --git a/jjb/xci/xci-verify-jobs.yaml b/jjb/xci/xci-verify-jobs.yaml index cc6de488f..47ae4f8e2 100644 --- a/jjb/xci/xci-verify-jobs.yaml +++ b/jjb/xci/xci-verify-jobs.yaml @@ -150,6 +150,9 @@ name: CI_LOOP default: 'verify' - string: + name: FUNCTEST_VERSION + default: 'hunter' + - string: name: FUNCTEST_MODE default: 'tier' - string: @@ -161,6 +164,7 @@ description: 'Git URL to use on this Jenkins Slave' builders: + - 'xci-verify-clean-vm-macro' - 'xci-verify-set-scenario-macro' - inject: properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" @@ -181,6 +185,9 @@ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE CI_LOOP=$CI_LOOP + FUNCTEST_VERSION=$FUNCTEST_VERSION + FUNCTEST_MODE=$FUNCTEST_MODE + FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME node-parameters: true kill-phase-on: FAILURE abort-all-job: true @@ -199,6 +206,7 @@ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE CI_LOOP=$CI_LOOP + FUNCTEST_VERSION=$FUNCTEST_VERSION FUNCTEST_MODE=$FUNCTEST_MODE FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME node-parameters: true @@ -211,7 +219,6 @@ - role: BOTH build-on: - ABORTED - - FAILURE - NOT_BUILT - SUCCESS - UNSTABLE @@ -249,6 +256,9 @@ name: CI_LOOP default: 'verify' - string: + name: FUNCTEST_VERSION + default: 'hunter' + - string: name: FUNCTEST_MODE default: 'tier' - string: @@ -288,6 +298,12 @@ # builder macros # ------------------------------- - builder: + name: 'xci-verify-clean-vm-macro' + builders: + - shell: + !include-raw: ./xci-cleanup.sh + +- builder: name: 'xci-verify-set-scenario-macro' builders: - shell: diff --git a/jjb/yardstick/yardstick-daily.sh b/jjb/yardstick/yardstick-daily.sh index 783c64ee1..58d590c27 100755 --- a/jjb/yardstick/yardstick-daily.sh +++ b/jjb/yardstick/yardstick-daily.sh @@ -41,10 +41,6 @@ elif [[ ${INSTALLER_TYPE} == 'fuel' ]]; then cacert_file_vol="-v ${HOME}/os_cacert:/etc/ssl/certs/mcp_os_cacert" sshkey="-v ${SSH_KEY}:/root/.ssh/mcp.rsa" fi -# Set iptables rule to allow forwarding return traffic for container -if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then - sudo iptables -I FORWARD -j RETURN -fi opts="--privileged=true --rm" envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \ diff --git a/jjb/yardstick/yardstick-project-jobs.yaml b/jjb/yardstick/yardstick-project-jobs.yaml index 56e825e19..f5fffb6ed 100644 --- a/jjb/yardstick/yardstick-project-jobs.yaml +++ b/jjb/yardstick/yardstick-project-jobs.yaml @@ -35,7 +35,7 @@ - project-parameter: project: '{project}' branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' + - 'ericsson-build4-defaults' scm: - git-scm-gerrit @@ -83,7 +83,7 @@ - project-parameter: project: '{project}' branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' + - 'ericsson-build4-defaults' - string: name: GS_URL default: '$GS_BASE{gs-pathname}' diff --git a/releases/gambia/armband.yaml b/releases/gambia/armband.yaml new file mode 100644 index 000000000..0790de1e2 --- /dev/null +++ b/releases/gambia/armband.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2018 The Linux Foundation 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 +############################################################################## +--- +project: armband +project-type: installer +release-model: stable + +branches: + - name: stable/gambia + location: + armband: a880b5c0fe55397b73f0fcf8f8c87d523327099d diff --git a/releases/gambia/fuel.yaml b/releases/gambia/fuel.yaml new file mode 100644 index 000000000..8c86010f3 --- /dev/null +++ b/releases/gambia/fuel.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2018 The Linux Foundation 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 +############################################################################## +--- +project: fuel +project-type: installer +release-model: stable + +branches: + - name: stable/gambia + location: + fuel: 90a442136b0aff8380388ac0a94831d0904e3cb8 diff --git a/releases/gambia/functest.yaml b/releases/gambia/functest.yaml new file mode 100644 index 000000000..f21aec0bb --- /dev/null +++ b/releases/gambia/functest.yaml @@ -0,0 +1,15 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/gambia + location: + functest: d5fce8c12bc73c1b1547df2750563c271a3ab3f6 + - name: stable/gambia + location: + functest-kubernetes: ca3c9cf6f57c87aee8c6f0b93f70d84e3df736de + - name: stable/gambia + location: + functest-xtesting: a09ece9bbe9cda52487cf5b443619fec1b3e09ca diff --git a/releases/gambia/sandbox.yaml b/releases/gambia/sandbox.yaml new file mode 100644 index 000000000..16f2df24e --- /dev/null +++ b/releases/gambia/sandbox.yaml @@ -0,0 +1,9 @@ +--- +project: sandbox +project-type: infra +release-model: stable + +branches: + - name: stable/gambia + location: + sandbox: c2012f5b642f17e6024db631b833414114a329d5 diff --git a/releases/hunter/functest.yaml b/releases/hunter/functest.yaml new file mode 100644 index 000000000..5fcc5c9c4 --- /dev/null +++ b/releases/hunter/functest.yaml @@ -0,0 +1,15 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/hunter + location: + functest: d5fce8c12bc73c1b1547df2750563c271a3ab3f6 + - name: stable/hunter + location: + functest-kubernetes: ca3c9cf6f57c87aee8c6f0b93f70d84e3df736de + - name: stable/hunter + location: + functest-xtesting: a09ece9bbe9cda52487cf5b443619fec1b3e09ca diff --git a/releases/scripts/create_branch.py b/releases/scripts/create_branch.py deleted file mode 100644 index fa3c92def..000000000 --- a/releases/scripts/create_branch.py +++ /dev/null @@ -1,143 +0,0 @@ -#!/usr/bin/env python2 -# SPDX-License-Identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 The Linux Foundation 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 -############################################################################## -""" -Create Gerrit Branchs -""" - -import argparse - -try: - import ConfigParser -except ImportError: - import configparser as ConfigParser - -import logging -import os -import yaml - -from requests.compat import quote -from requests.exceptions import RequestException - -from pygerrit2.rest import GerritRestAPI -from pygerrit2.rest.auth import HTTPDigestAuthFromNetrc, HTTPBasicAuthFromNetrc - - -logging.basicConfig(level=logging.INFO) - - -def quote_branch(arguments): - """ - Quote is used here to escape the '/' in branch name. By - default '/' is listed in 'safe' characters which aren't escaped. - quote is not used in the data of the PUT request, as quoting for - arguments is handled by the request library - """ - new_args = arguments.copy() - new_args['branch'] = quote(new_args['branch'], '') - return new_args - - -def create_branch(api, arguments): - """ - Create a branch using the Gerrit REST API - """ - logger = logging.getLogger(__file__) - - branch_data = """ - { - "ref": "%(branch)s" - "revision": "%(commit)s" - }""" % arguments - - # First verify the commit exists, otherwise the branch will be - # created at HEAD - try: - request = api.get("/projects/%(project)s/commits/%(commit)s" % - arguments) - logger.debug(request) - logger.debug("Commit exists: %(commit)s", arguments) - except RequestException as err: - if hasattr(err, 'response') and err.response.status_code in [404]: - logger.warn("Commit %(commit)s for %(project)s does" - " not exist. Not creating branch.", arguments) - logger.warn(err) - else: - logger.error("Error: %s", str(err)) - # Skip trying to create the branch - return - - # Try to create the branch and let us know if it already exist. - try: - request = api.put("/projects/%(project)s/branches/%(branch)s" % - quote_branch(arguments), branch_data) - logger.info("Branch %(branch)s for %(project)s successfully created", - arguments) - except RequestException as err: - if hasattr(err, 'response') and err.response.status_code in [412, 409]: - logger.info("Branch %(branch)s already created for %(project)s", - arguments) - logger.info(err) - else: - logger.error("Error: %s", str(err)) - - -def main(): - """Given a yamlfile that follows the release syntax, create branches - in Gerrit listed under branches""" - - config = ConfigParser.ConfigParser() - config.read(os.path.join(os.path.abspath(os.path.dirname(__file__)), - 'defaults.cfg')) - config.read([os.path.expanduser('~/releases.cfg'), 'releases.cfg']) - - gerrit_url = config.get('gerrit', 'url') - - parser = argparse.ArgumentParser() - parser.add_argument('--file', '-f', - type=argparse.FileType('r'), - required=True) - parser.add_argument('--basicauth', '-b', action='store_true') - args = parser.parse_args() - - GerritAuth = HTTPDigestAuthFromNetrc - if args.basicauth: - GerritAuth = HTTPBasicAuthFromNetrc - - try: - auth = GerritAuth(url=gerrit_url) - except ValueError as err: - logging.error("%s for %s", err, gerrit_url) - quit(1) - restapi = GerritRestAPI(url=gerrit_url, auth=auth) - - project = yaml.safe_load(args.file) - - create_branches(restapi, project) - - -def create_branches(restapi, project): - """Create branches for a specific project defined in the release - file""" - - branches = [] - for branch in project['branches']: - repo, ref = next(iter(branch['location'].items())) - branches.append({ - 'project': repo, - 'branch': branch['name'], - 'commit': ref - }) - - for branch in branches: - create_branch(restapi, branch) - - -if __name__ == "__main__": - main() diff --git a/releases/scripts/repos.py b/releases/scripts/repos.py index 47ce42d88..91c4e9300 100644 --- a/releases/scripts/repos.py +++ b/releases/scripts/repos.py @@ -63,20 +63,28 @@ def main(): type=str, help="Only print" "SHAs for the specified release") + parser.add_argument('--branches', '-b', + action='store_true', + default=False, + help="Print Branch info") + args = parser.parse_args() project = yaml.safe_load(args.file) - list_repos(project, args) + if args.branches: + list_branches(project, args) + else: + list_repos(project, args) def list_repos(project, args): """List repositories in the project file""" lookup = project.get('releases', []) + if 'releases' not in project: exit(0) - repos = set() for item in lookup: repo, ref = next(iter(item['location'].items())) @@ -90,5 +98,24 @@ def list_repos(project, args): print(repo) +def list_branches(project, args): + """List branches in the project file""" + + lookup = project.get('branches', []) + + if 'branches' not in project: + exit(0) + repos = set() + for item in lookup: + repo, ref = next(iter(item['location'].items())) + if args.names: + repos.add(Repo(repo)) + elif args.release and item['name'] == args.release: + repos.add(Repo(repo, ref)) + elif not args.release: + repos.add(Repo(repo, item['name'], ref)) + for repo in repos: + print(repo) + if __name__ == "__main__": main() |