--- ################################### # job configuration for functest ################################### - project: name: functest-daily project: functest # ------------------------------- # BRANCH ANCHORS # ------------------------------- master: &master stream: master branch: '{stream}' gs-pathname: '' euphrates: &euphrates stream: euphrates branch: 'stable/{stream}' gs-pathname: '/{stream}' # ------------------------------- # POD, INSTALLER, AND BRANCH MAPPING # ------------------------------- # Installers using labels # CI PODs # This section should only contain the installers # that have been switched using labels for slaves # ------------------------------- pod: # fuel CI PODs - baremetal: slave-label: fuel-baremetal installer: fuel <<: *master - virtual: slave-label: fuel-virtual installer: fuel <<: *master - baremetal: slave-label: fuel-baremetal installer: fuel <<: *euphrates - virtual: slave-label: fuel-virtual installer: fuel <<: *euphrates # joid CI PODs - baremetal: slave-label: joid-baremetal installer: joid <<: *master - virtual: slave-label: joid-virtual installer: joid <<: *master - baremetal: slave-label: joid-baremetal installer: joid <<: *euphrates - virtual: slave-label: joid-virtual installer: joid <<: *euphrates # compass CI PODs - baremetal: slave-label: compass-baremetal installer: compass <<: *master - virtual: slave-label: compass-virtual installer: compass <<: *master - baremetal: slave-label: compass-baremetal installer: compass <<: *euphrates - virtual: slave-label: compass-virtual installer: compass <<: *euphrates # apex CI PODs - virtual: slave-label: apex-virtual-master installer: apex <<: *master - baremetal: slave-label: apex-baremetal-master installer: apex <<: *master - virtual: slave-label: apex-virtual-euphrates installer: apex <<: *euphrates - baremetal: slave-label: apex-baremetal-euphrates installer: apex <<: *euphrates # armband CI PODs - armband-baremetal: slave-label: armband-baremetal installer: fuel <<: *master - armband-virtual: slave-label: armband-virtual installer: fuel <<: *master - armband-baremetal: slave-label: armband-baremetal installer: fuel <<: *euphrates - armband-virtual: slave-label: armband-virtual installer: fuel <<: *euphrates # daisy CI PODs - baremetal: slave-label: daisy-baremetal installer: daisy <<: *master - virtual: slave-label: daisy-virtual installer: daisy <<: *master - baremetal: slave-label: daisy-baremetal installer: daisy <<: *euphrates - virtual: slave-label: daisy-virtual installer: daisy <<: *euphrates # netvirt 3rd party ci - virtual: slave-label: odl-netvirt-virtual installer: netvirt <<: *master # ------------------------------- # None-CI PODs # ------------------------------- - orange-pod1: slave-label: '{pod}' installer: joid <<: *master - orange-pod5: slave-label: '{pod}' installer: fuel <<: *master - orange-pod2: slave-label: '{pod}' installer: joid <<: *master - baremetal-centos: slave-label: 'intel-pod8' installer: compass <<: *master - nokia-pod1: slave-label: '{pod}' installer: apex <<: *master - zte-pod1: slave-label: '{pod}' installer: fuel <<: *master - zte-pod1: slave-label: '{pod}' installer: fuel <<: *euphrates - zte-pod2: slave-label: '{pod}' installer: daisy <<: *master - zte-pod2: slave-label: '{pod}' installer: daisy <<: *euphrates - zte-pod3: slave-label: '{pod}' installer: daisy <<: *master - zte-pod3: slave-label: '{pod}' installer: daisy <<: *euphrates - zte-pod9: slave-label: '{pod}' installer: daisy <<: *master # ------------------------------- # PODs for verify jobs triggered by each patch upload # - ool-virtual1: # slave-label: '{pod}' # installer: apex # <<: *master # ------------------------------- functest-tier: - 'healthcheck': job-timeout: 20 - 'smoke': job-timeout: 180 - 'components': job-timeout: 240 - 'vnf': job-timeout: 240 features-suite: - 'doctor-notification' - 'promise' - 'bgpvpn' - 'functest-odl-sfc' - 'domino-multinode' - 'fds' - 'barometercollectd' exclude: - features-suite: 'promise' stream: 'master' - features-suite: 'domino-multinode' stream: 'master' - features-suite: 'fds' stream: 'euphrates' build-job-settings: &build-job-settings current-parameter: false git-revision: true node-parameters: false kill-phase-on: FAILURE abort-all-jobs: false predefined-parameters: | FUNCTEST_MODE=$FUNCTEST_MODE FUNCTEST_TIER=$FUNCTEST_TIER features-job-settings: &features-job-settings current-parameter: false git-revision: true node-parameters: false kill-phase-on: FAILURE abort-all-jobs: false predefined-parameters: | FUNCTEST_MODE=$FUNCTEST_MODE FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME jobs: - 'functest-{installer}-{pod}-suite-{stream}' - 'functest-{installer}-{pod}-daily-{stream}' - 'functest-{installer}-{pod}-daily-{functest-tier}-{stream}' - 'functest-{installer}-{pod}-daily-features-{features-suite}-{stream}' ################################ # job template ################################ - job-template: name: 'functest-{installer}-{pod}-daily-{stream}' project-type: multijob disabled: 'false' parameters: - project-parameter: project: '{project}' branch: '{branch}' - '{installer}-defaults' - '{slave-label}-defaults' - functest-parameter: gs-pathname: '{gs-pathname}' builders: - multijob: name: 'Run functest tests' execution-type: SEQUENTIAL projects: - name: 'functest-{installer}-{pod}-daily-healthcheck-{stream}' <<: *build-job-settings - name: 'functest-{installer}-{pod}-daily-smoke-{stream}' <<: *build-job-settings - name: 'functest-{installer}-{pod}-daily-vnf-{stream}' <<: *build-job-settings - name: 'functest-{installer}-{pod}-daily-features-doctor-notification-{stream}' <<: *features-job-settings - name: 'functest-{installer}-{pod}-daily-features-bgpvpn-{stream}' <<: *features-job-settings - name: 'functest-{installer}-{pod}-daily-features-functest-odl-sfc-{stream}' <<: *features-job-settings - name: 'functest-{installer}-{pod}-daily-features-barometercollectd-{stream}' <<: *features-job-settings - name: 'functest-{installer}-{pod}-daily-features-fds-{stream}' <<: *features-job-settings - name: 'functest-{installer}-{pod}-daily-features-promise-{stream}' <<: *features-job-settings - name: 'functest-{installer}-{pod}-daily-features-domino-multinode-{stream}' <<: *features-job-settings - job-template: &functest-installer-tier-job name: 'functest-{installer}-{pod}-daily-{functest-tier}-{stream}' concurrent: true properties: - logrotate-default - throttle: enabled: true max-per-node: 1 option: 'project' wrappers: - build-name: name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO' - timeout: timeout: '{job-timeout}' abort: true parameters: - project-parameter: project: '{project}' branch: '{branch}' - '{installer}-defaults' - '{slave-label}-defaults' - string: name: FUNCTEST_MODE default: 'tier' - string: name: FUNCTEST_TIER default: '{functest-tier}' - string: name: DEPLOY_SCENARIO default: 'os-nosdn-nofeature-noha' - string: name: CLEAN_DOCKER_IMAGES default: 'false' description: 'Remove downloaded docker images (opnfv/functest*:*)' - functest-parameter: gs-pathname: '{gs-pathname}' scm: - git-scm builders: - description-setter: description: "Built on $NODE_NAME" - 'functest-daily-builder' publishers: - 'functest-recipients' - 'fuel-recipients' - job-template: name: 'functest-{installer}-{pod}-suite-{stream}' <<: *functest-installer-tier-job wrappers: - build-name: name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO' - timeout: timeout: '60' abort: true parameters: - project-parameter: project: '{project}' branch: '{branch}' - '{installer}-defaults' - '{slave-label}-defaults' - 'functest-suite-parameter' - string: name: DEPLOY_SCENARIO default: 'os-nosdn-nofeature-noha' - string: name: CLEAN_DOCKER_IMAGES default: 'false' description: 'Remove downloaded docker images (opnfv/functest*:*)' - functest-parameter: gs-pathname: '{gs-pathname}' builders: - description-setter: description: "Built on $NODE_NAME" - 'functest-suite-builder' - job-template: name: 'functest-{installer}-{pod}-daily-features-{features-suite}-{stream}' concurrent: true properties: - logrotate-default - throttle: enabled: true max-per-node: 1 option: 'project' wrappers: - build-name: name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO' parameters: - project-parameter: project: '{project}' branch: '{branch}' - '{installer}-defaults' - '{slave-label}-defaults' - string: name: FUNCTEST_MODE default: 'testcase' - string: name: FUNCTEST_SUITE_NAME default: '{features-suite}' - string: name: DEPLOY_SCENARIO default: 'os-nosdn-nofeature-noha' - string: name: CLEAN_DOCKER_IMAGES default: 'false' description: 'Remove downloaded docker images (opnfv/functest*:*)' - functest-parameter: gs-pathname: '{gs-pathname}' scm: - git-scm builders: - description-setter: description: "Built on $NODE_NAME" - 'functest-daily-builder' publishers: - 'functest-features-recipients' - 'functest-recipients' - 'fuel-recipients' ######################## # parameter macros ######################## - parameter: name: functest-daily-parameter parameters: - string: name: FUNCTEST_MODE default: 'daily' description: "Daily suite name to run" - parameter: name: functest-suite-parameter parameters: - choice: name: FUNCTEST_MODE choices: - 'tier' - 'testcase' default: 'tier' description: "Test case or Tier to be run" - choice: name: FUNCTEST_SUITE_NAME choices: - 'connection_check' - 'api_check' - 'snaps_health_check' - 'vping_userdata' - 'vping_ssh' - 'tempest_smoke_serial' - 'rally_sanity' - 'odl' - 'odl_netvirt' - 'snaps_smoke' - 'refstack_defcore' - 'promise' - 'doctor' - 'bgpvpn' - 'parser' - 'security_scan' - 'tempest_full_parallel' - 'rally_full' - 'cloudify_ims' - 'cloudify_vrouter' - 'orchestra_openims' - 'orchestra_clearwaterims' default: 'connection_check' - choice: name: FUNCTEST_TIER choices: - 'healthcheck' - 'smoke' - 'features' - 'components' - 'vnf' default: 'healthcheck' - string: name: TESTCASE_OPTIONS default: '' description: 'Additional parameters specific to test case(s)' - parameter: name: functest-parameter parameters: - string: name: GS_PATHNAME default: '{gs-pathname}' description: "Version directory where the opnfv documents will be stored in gs repository" - string: name: FUNCTEST_REPO_DIR default: "/home/opnfv/repos/functest" description: "Directory where the Functest repository is cloned" - string: name: PUSH_RESULTS_TO_DB default: "true" description: "Push the results of all the tests to the resultDB" - string: name: CI_DEBUG default: 'false' description: "Show debug output information" - string: name: RC_FILE_PATH default: '' description: "Path to the OS credentials file if given" ######################## # trigger macros ######################## - trigger: name: 'functest-master' triggers: - pollscm: cron: "H 9 * * *" ######################## # builder macros ######################## - builder: name: functest-daily-builder builders: - 'functest-cleanup' - 'functest-daily' - 'functest-store-results' - 'functest-exit' - builder: name: functest-suite-builder builders: - 'functest-cleanup' - 'functest-daily' - 'functest-store-results' - 'functest-exit' - builder: name: functest-daily builders: # yamllint disable rule:indentation - conditional-step: condition-kind: regex-match regex: "os-.*" label: '$DEPLOY_SCENARIO' steps: - shell: !include-raw: - ./functest-env-presetup.sh - ../../utils/fetch_os_creds.sh - ./functest-alpine.sh - conditional-step: condition-kind: regex-match regex: "k8-.*" label: '$DEPLOY_SCENARIO' steps: - shell: !include-raw: - ../../utils/fetch_k8_conf.sh - ./functest-k8.sh # yamllint enable rule:indentation - builder: name: functest-store-results builders: - shell: !include-raw: ../../utils/push-test-logs.sh - builder: name: functest-cleanup builders: - shell: !include-raw: ./functest-cleanup.sh - builder: name: functest-exit builders: - shell: !include-raw: ./functest-exit.sh - publisher: name: 'functest-features-recipients' publishers: - email: recipients: - publisher: name: 'functest-recipients' publishers: - email: recipients: > jalausuch@suse.com morgan.richomme@orange.com cedric.ollivier@orange.com feng.xiaowei@zte.com.cn juha.kosonen@nokia.com wangwulin@huawei.com delia.popescu@enea.com cristina.pauna@enea.com valentin.boucher@kontron.com - email-jenkins-admins-on-failure - publisher: name: 'fuel-recipients' publishers: - email: recipients: > peter.barabas@ericsson.com mpolenchuck@mirantis.com alexandru.avadanii@enea.com guillermo.herrero@enea.com