From: Trevor Bramwell Date: Wed, 17 Feb 2021 17:21:52 +0000 (+0000) Subject: Merge "Jerma Release Tagging for OPNFV Docs" X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=88113b1e5696f86070db68f9fefdf6a2b21ba7f9;hp=395367444d0d6b7dc2cb3c94ecc015d4aa0b253e;p=releng.git Merge "Jerma Release Tagging for OPNFV Docs" --- diff --git a/jjb/airship/cntt.yaml b/jjb/airship/cntt.yaml index 1dadaa59e..f886c829e 100644 --- a/jjb/airship/cntt.yaml +++ b/jjb/airship/cntt.yaml @@ -424,6 +424,7 @@ - job-template: name: 'cntt-{tag}-daily' + disabled: true project-type: multijob triggers: - timed: '@daily' @@ -634,6 +635,7 @@ - job-template: name: 'cntt-{tag}-gate' + disabled: true project-type: multijob triggers: - cntt-patchset-created: diff --git a/jjb/armband/armband-ci-jobs.yaml b/jjb/armband/armband-ci-jobs.yaml deleted file mode 100644 index 4f2dc5eb3..000000000 --- a/jjb/armband/armband-ci-jobs.yaml +++ /dev/null @@ -1,128 +0,0 @@ ---- -# jenkins job templates for Armband -- project: - name: 'armband-ci' - project: 'armband' - installer: 'fuel' - - # ------------------------------- - # BRANCH ANCHORS - # ------------------------------- - master: &master - stream: master - branch: '{stream}' - gs-pathname: '' - disabled: true - functest_docker_tag: hunter - hunter: &hunter - stream: hunter - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true - functest_docker_tag: '{stream}' - # ------------------------------- - # POD, INSTALLER, AND BRANCH MAPPING - # ------------------------------- - # CI POD's - # ------------------------------- - pod: - # ------------------------------- - # hunter - # ------------------------------- - - armband-baremetal: - deploy-type: 'baremetal' - slave-label: 'armband-{deploy-type}' - <<: *hunter - # ------------------------------- - # master - # ------------------------------- - - armband-baremetal: - deploy-type: 'baremetal' - slave-label: 'armband-{deploy-type}' - <<: *master - # ------------------------------- - # scenarios - # ------------------------------- - scenario: - # HA scenarios - - 'os-nosdn-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - 'os-odl-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - 'os-ovn-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - 'os-nosdn-ovs-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - # NOHA scenarios - - 'os-nosdn-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - 'os-nosdn-fdio-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - jobs: - - 'fuel-{scenario}-{pod}-daily-{stream}' - - 'fuel-deploy-{pod}-daily-{stream}' - -######################## -# job templates: Armband uses Fuel's job templates, no need to duplicate -######################## - -######################## -# trigger macros -######################## -# CI PODs -# ---------------------------------------------------------------- -# Enea Armband CI Baremetal Triggers running against master branch -# ---------------------------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger' - triggers: - - timed: '0 1 * * 7' -- trigger: - name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger' - triggers: - - timed: '0 1 * * 4,6' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-armband-baremetal-master-trigger' - triggers: - - timed: '0 1 * * 2' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-master-trigger' - triggers: - - timed: '0 1 * * 1' -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-armband-baremetal-master-trigger' - triggers: - - timed: '0 1 * * 3,5' -# --------------------------------------------------------------------- -# Enea Armband CI Baremetal Triggers running against hunter branch -# --------------------------------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-hunter-trigger' - triggers: - - timed: '10 1 * * 1' -- trigger: - name: 'fuel-os-odl-nofeature-ha-armband-baremetal-hunter-trigger' - triggers: - - timed: '10 1 * * 7' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-armband-baremetal-hunter-trigger' - triggers: - - timed: '10 1 * * 2' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-hunter-trigger' - triggers: - - timed: '10 1 * * 4,6' -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-hunter-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-armband-baremetal-hunter-trigger' - triggers: - - timed: '10 1 * * 3,5' diff --git a/jjb/armband/armband-rtd-jobs.yaml b/jjb/armband/armband-rtd-jobs.yaml deleted file mode 100644 index 70d2f1171..000000000 --- a/jjb/armband/armband-rtd-jobs.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -- project: - name: armband-rtd - project: armband - project-name: armband - - project-pattern: 'armband' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-armband/47349/' - rtd-token: 'b8f7de9a1f2baf063ccc6afb52dbc8e6308b6ab5' - - stream: - - master: - branch: '{stream}' - disabled: false - - gambia: - branch: 'stable/{stream}' - disabled: true - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/armband/armband-verify-jobs.yaml b/jjb/armband/armband-verify-jobs.yaml deleted file mode 100644 index d7a646ad0..000000000 --- a/jjb/armband/armband-verify-jobs.yaml +++ /dev/null @@ -1,100 +0,0 @@ ---- -- project: - name: 'armband-verify-jobs' - - project: 'armband' - - ##################################### - # branch definitions - ##################################### - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - gambia: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true - ##################################### - # jobs - ##################################### - jobs: - - 'armband-verify-{stream}' - -##################################### -# job templates -##################################### -- job-template: - name: 'armband-verify-{stream}' - - disabled: true - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 2 - option: 'project' - - scm: - - git-scm-gerrit - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - 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: 'patches/**' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - readable-message: true - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-arm-defaults' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - 'armband-verify-builder-macro' - -##################################### -# builder macros -##################################### -- builder: - name: 'armband-verify-builder-macro' - builders: - - shell: | - #!/bin/bash - make fuel-patches-import diff --git a/jjb/barometer/barometer.yaml b/jjb/barometer/barometer.yaml index b01a89051..755eda897 100644 --- a/jjb/barometer/barometer.yaml +++ b/jjb/barometer/barometer.yaml @@ -165,6 +165,7 @@ - string: name: BRANCH default: '{branch}' + - opnfv-build-centos-defaults triggers: - timed: '@midnight' diff --git a/jjb/calipso/calipso-rtd-jobs.yaml b/jjb/calipso/calipso-rtd-jobs.yaml deleted file mode 100644 index e6b61d768..000000000 --- a/jjb/calipso/calipso-rtd-jobs.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- project: - name: calipso-rtd - project: calipso - project-name: calipso - - gerrit-skip-vote: true - project-pattern: 'calipso' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-calipso/47356/' - rtd-token: '9b88e25a769998fc316b25efe15eca2b7c1474f4' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/calipso/calipso.yaml b/jjb/calipso/calipso.yaml deleted file mode 100644 index 7ecabdf29..000000000 --- a/jjb/calipso/calipso.yaml +++ /dev/null @@ -1,65 +0,0 @@ ---- -- project: - name: calipso - - project: '{name}' - - jobs: - - 'calipso-verify-{stream}' - - stream: - - master: - branch: '{stream}' - disabled: false - - fraser: &fraser - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - -- job-template: - name: 'calipso-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-centos-defaults' - - scm: - - git-scm-gerrit - - 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}' - - builders: - - verify-unit-tests - -- builder: - name: verify-unit-tests - builders: - - shell: | - #!/bin/bash - set -o errexit - set -o nounset - set -o pipefail - cd $WORKSPACE - PYTHONPATH=$PWD api/test/verify.sh diff --git a/jjb/clover/clover-project.yaml b/jjb/clover/clover-project.yaml deleted file mode 100644 index f75a59e80..000000000 --- a/jjb/clover/clover-project.yaml +++ /dev/null @@ -1,172 +0,0 @@ ---- -################################################### -# All the jobs except verify have been removed! -# They will only be enabled on request by projects! -################################################### -- project: - name: clover - - project: '{name}' - - jobs: - - 'clover-verify-{stream}' - - 'clover-daily-upload-{stream}' - - 'clover-daily-deploy-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - hunter: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - -- job-template: - name: 'clover-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - # yamllint disable rule:line-length - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from Global Jenkins\ - \ configuration in case if the stuff is done on none-LF HW." - # yamllint enable rule:line-length - - 'opnfv-build-ubuntu-defaults' - - scm: - - git-scm-gerrit - - 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}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**|.gitignore' - - builders: - - shell: | - cd $WORKSPACE/ci - ./verify.sh - -- job-template: - name: 'clover-daily-upload-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - scm: - - git-scm - - triggers: - - timed: '0 8 * * *' - - wrappers: - - fix-workspace-permissions - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - 'clover-defaults': - gs-pathname: '{gs-pathname}' - - builders: - - shell: | - cd $WORKSPACE/ci - ./upload.sh - -- job-template: - name: 'clover-daily-deploy-{stream}' - - project-type: freestyle - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'clover-daily-deploy-.*?' - - 'container4nfv-daily-deploy-.*?' - blocking-level: 'NODE' - - wrappers: - - timeout: - timeout: 180 - abort: true - - fix-workspace-permissions - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - # yamllint disable rule:line-length - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from Global Jenkins\ - \ configuration in case if the stuff is done on none-LF HW." - # yamllint enable rule:line-length - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-virtual6 - default-slaves: - - huawei-virtual6 - - scm: - - git-scm - - triggers: - - timed: '0 9 * * *' - - builders: - - shell: | - cd $WORKSPACE/ci - ./deploy.sh - -################### -# parameter macros -################### -- parameter: - name: 'clover-defaults' - parameters: - - string: - name: GS_URL - default: artifacts.opnfv.org/$PROJECT{gs-pathname} - description: "URL to Google Storage." diff --git a/jjb/clover/clover-rtd-jobs.yaml b/jjb/clover/clover-rtd-jobs.yaml deleted file mode 100644 index d768c7cd7..000000000 --- a/jjb/clover/clover-rtd-jobs.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -- project: - name: clover-rtd - project: clover - project-name: clover - - gerrit-skip-vote: true - project-pattern: 'clover' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-clover/47357/' - rtd-token: '8b47c0a3c1cfe7de885bf217628b58dd91f14f2e' - - stream: - - master: - branch: '{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/clover/clover-views.yaml b/jjb/clover/clover-views.yaml deleted file mode 100644 index 15a05e60a..000000000 --- a/jjb/clover/clover-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: clover-view - views: - - project-view - project-name: clover diff --git a/jjb/container4nfv/arm64/deploy-cni.sh b/jjb/container4nfv/arm64/deploy-cni.sh deleted file mode 100755 index 9afb98048..000000000 --- a/jjb/container4nfv/arm64/deploy-cni.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -e - -cd container4nfv/src/arm/cni-deploy - -DEPLOY_SCENARIO={scenario} - -virtualenv .venv -source .venv/bin/activate -pip install ansible==2.6.1 - -ansible-playbook -i inventory/inventory.cfg deploy.yml --tags flannel,multus - -if [ "$DEPLOY_SCENARIO" == "k8-sriov-nofeature-noha" ]; then - ansible-playbook -i inventory/inventory.cfg deploy.yml --tags sriov -elif [ "$DEPLOY_SCENARIO" == "k8-vpp-nofeature-noha" ]; then - ansible-playbook -i inventory/inventory.cfg deploy.yml --tags vhost-vpp -fi diff --git a/jjb/container4nfv/arm64/yardstick-arm64.sh b/jjb/container4nfv/arm64/yardstick-arm64.sh deleted file mode 100755 index 26c6fdcfe..000000000 --- a/jjb/container4nfv/arm64/yardstick-arm64.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -set -e - -sshpass -p root ssh root@10.1.0.50 \ - "mkdir -p /etc/yardstick; rm -rf /etc/yardstick/admin.conf" - - -sshpass -p root ssh root@10.1.0.50 \ - kubectl config set-cluster yardstick --server=127.0.0.1:8080 --insecure-skip-tls-verify=true --kubeconfig=/etc/yardstick/admin.conf -sshpass -p root ssh root@10.1.0.50 \ - kubectl config set-context yardstick --cluster=yardstick --kubeconfig=/etc/yardstick/admin.conf -sshpass -p root ssh root@10.1.0.50 \ - kubectl config use-context yardstick --kubeconfig=/etc/yardstick/admin.conf - - - -if [ ! -n "$redirect" ]; then - redirect="/dev/stdout" -fi - -if [ ! -n "$DOCKER_TAG" ]; then - DOCKER_TAG='latest' -fi - -if [ ! -n "$NODE_NAME" ]; then - NODE_NAME='arm-virutal03' -fi - -if [ ! -n "$DEPLOY_SCENARIO" ]; then - DEPLOY_SCENARIO='k8-nosdn-lb-noha_daily' -fi - -if [ ! -n "$YARDSTICK_DB_BACKEND" ]; then - YARDSTICK_DB_BACKEND='-i 104.197.68.199:8086' -fi - -# Pull the image with correct tag -DOCKER_REPO='opnfv/yardstick' -if [ "$(uname -m)" = 'aarch64' ]; then - DOCKER_REPO="${DOCKER_REPO}_$(uname -m)" -fi -echo "Yardstick: Pulling image ${DOCKER_REPO}:${DOCKER_TAG}" -sshpass -p root ssh root@10.1.0.50 \ - docker pull ${DOCKER_REPO}:$DOCKER_TAG >$redirect - -if [ ! -n "$BRANCH" ]; then - BRANCH=master -fi - -opts="--name=yardstick --privileged=true --net=host -d -it " -envs="-e YARDSTICK_BRANCH=${BRANCH} -e BRANCH=${BRANCH} \ - -e NODE_NAME=${NODE_NAME} \ - -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO}" -rc_file_vol="-v /etc/yardstick/admin.conf:/etc/yardstick/admin.conf" -cacert_file_vol="" -map_log_dir="" -sshkey="" -YARDSTICK_SCENARIO_SUITE_NAME="opnfv_k8-nosdn-lb-noha_daily.yaml" - -# map log directory -branch=${BRANCH##*/} -#branch="master" -dir_result="${HOME}/opnfv/yardstick/results/${branch}" -mkdir -p ${dir_result} -sudo rm -rf ${dir_result}/* -map_log_dir="-v ${dir_result}:/tmp/yardstick" - -# Run docker -cmd="docker rm -f yardstick || true" -sshpass -p root ssh root@10.1.0.50 \ - ${cmd} - -cmd="sudo docker run ${opts} ${envs} ${rc_file_vol} ${cacert_file_vol} ${map_log_dir} ${sshkey} ${DOCKER_REPO}:${DOCKER_TAG} /bin/bash" -echo "Yardstick: Running docker cmd: ${cmd}" -sshpass -p root ssh root@10.1.0.50 \ - ${cmd} - - -cmd='sudo docker exec yardstick sed -i.bak "/# execute tests/i\sed -i.bak \"s/openretriever\\\/yardstick/openretriever\\\/yardstick_aarch64/g\" \ - $\{YARDSTICK_REPO_DIR\}/tests/opnfv/test_cases/opnfv_yardstick_tc080.yaml" /usr/local/bin/exec_tests.sh' -sshpass -p root ssh root@10.1.0.50 \ - ${cmd} - -echo "Yardstick: run tests: ${YARDSTICK_SCENARIO_SUITE_NAME}" -cmd="sudo docker exec yardstick exec_tests.sh ${YARDSTICK_DB_BACKEND} ${YARDSTICK_SCENARIO_SUITE_NAME}" -sshpass -p root ssh root@10.1.0.50 \ - ${cmd} - -cmd="docker rm -f yardstick" -sshpass -p root ssh root@10.1.0.50 \ - ${cmd} - -echo "Yardstick: done!" diff --git a/jjb/container4nfv/container4nfv-arm64.yaml b/jjb/container4nfv/container4nfv-arm64.yaml deleted file mode 100644 index b72c09547..000000000 --- a/jjb/container4nfv/container4nfv-arm64.yaml +++ /dev/null @@ -1,35 +0,0 @@ ---- - -- job-template: - name: 'container4nfv-{scenario}-{pod}-daily-{stream}' - disabled: '{obj:disabled}' - node: '{slave-label}' - - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/container4nfv - branches: - - master - basedir: container4nfv - wipe-workspace: true - - builders: - - shell: !include-raw: arm64/deploy-cni.sh - - -- trigger: - name: 'trigger-deploy-virtual-master' - triggers: - - timed: '0 12 * * *' -- trigger: - name: 'trigger-deploy-virtual-hunter' - triggers: - - timed: '0 18 * * *' -- trigger: - name: 'trigger-deploy-baremetal-master' - triggers: - - timed: '0 12 * * *' -- trigger: - name: 'trigger-deploy-baremetal-hunter' - triggers: - - timed: '0 18 * * *' diff --git a/jjb/container4nfv/container4nfv-project.yaml b/jjb/container4nfv/container4nfv-project.yaml deleted file mode 100644 index ca286bff7..000000000 --- a/jjb/container4nfv/container4nfv-project.yaml +++ /dev/null @@ -1,169 +0,0 @@ ---- -################################################### -# All the jobs except verify have been removed! -# They will only be enabled on request by projects! -################################################### -- project: - name: container4nfv - - project: '{name}' - - jobs: - - 'container4nfv-verify-{stream}' - - 'container4nfv-daily-upload-{stream}' - - 'container4nfv-daily-deploy-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - hunter: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - -- job-template: - name: 'container4nfv-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - # yamllint disable rule:line-length - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from Global Jenkins\ - \ configuration in case if the stuff is done on none-LF HW." - # yamllint enable rule:line-length - - 'opnfv-build-ubuntu-defaults' - - scm: - - git-scm-gerrit - - 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}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**|.gitignore' - - builders: - - shell: | - cd $WORKSPACE/ci - ./build.sh - -- job-template: - name: 'container4nfv-daily-upload-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - scm: - - git-scm - - wrappers: - - fix-workspace-permissions - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - 'container4nfv-defaults': - gs-pathname: '{gs-pathname}' - - builders: - - shell: | - cd $WORKSPACE/ci - ./upload.sh - -- job-template: - name: 'container4nfv-daily-deploy-{stream}' - - project-type: freestyle - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'clover-daily-deploy-.*?' - - 'container4nfv-daily-deploy-.*?' - blocking-level: 'NODE' - - wrappers: - - timeout: - timeout: 240 - abort: true - - fix-workspace-permissions - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - # yamllint disable rule:line-length - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from Global Jenkins\ - \ configuration in case if the stuff is done on none-LF HW." - # yamllint enable rule:line-length - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-virtual6 - default-slaves: - - huawei-virtual6 - - scm: - - git-scm - - triggers: - - timed: '@midnight' - - builders: - - shell: | - cd $WORKSPACE/ci - ./deploy.sh - -################### -# parameter macros -################### -- parameter: - name: 'container4nfv-defaults' - parameters: - - string: - name: GS_URL - default: artifacts.opnfv.org/$PROJECT{gs-pathname} - description: "URL to Google Storage." diff --git a/jjb/container4nfv/container4nfv-rtd-jobs.yaml b/jjb/container4nfv/container4nfv-rtd-jobs.yaml deleted file mode 100644 index 70512a985..000000000 --- a/jjb/container4nfv/container4nfv-rtd-jobs.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -- project: - name: container4nfv-rtd - project: container4nfv - project-name: container4nfv - - gerrit-skip-vote: true - project-pattern: 'container4nfv' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-container4nfv/47359/' - rtd-token: '82f917a788d006dc15df14ecd3c991115490bf8a' - - stream: - - master: - branch: '{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/container4nfv/container4nfv-views.yaml b/jjb/container4nfv/container4nfv-views.yaml deleted file mode 100644 index f57e7f0da..000000000 --- a/jjb/container4nfv/container4nfv-views.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- project: - name: container4nfv-view - views: - - common-view - view-name: container4nfv - view-regex: (^container.*|^yardstick-arm64.*) diff --git a/jjb/doctor/doctor-env-presetup.sh b/jjb/doctor/doctor-env-presetup.sh deleted file mode 100755 index ebbf32c01..000000000 --- a/jjb/doctor/doctor-env-presetup.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env bash -set -o errexit -set -o pipefail - -# set vars from env if not provided by user as options -installer_key_file=${installer_key_file:-$HOME/installer_key_file} -opnfv_installer=${opnfv_installer:-$HOME/opnfv-installer.sh} - -# Fetch INSTALLER_IP for APEX deployments -if [[ ${INSTALLER_TYPE} == 'apex' ]]; then - - echo "Gathering IP information for Apex installer VM" - ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" - if sudo virsh list | grep undercloud; then - echo "Installer VM detected" - undercloud_mac=$(sudo virsh domiflist undercloud | grep default | \ - grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+") - export INSTALLER_IP=$(/usr/sbin/arp -e | grep ${undercloud_mac} | awk {'print $1'}) - echo "Installer ip is ${INSTALLER_IP}" - else - echo "No available installer VM exists and no credentials provided...exiting" - exit 1 - fi - - sudo cp /root/.ssh/id_rsa ${installer_key_file} - sudo chown `whoami`:`whoami` ${installer_key_file} - -elif [[ ${INSTALLER_TYPE} == 'daisy' ]]; then - echo "Gathering IP information for Daisy installer VM" - if sudo virsh list | grep daisy; then - echo "Installer VM detected" - - bridge_name=$(sudo virsh domiflist daisy | grep vnet | awk '{print $3}') - echo "Bridge is $bridge_name" - - installer_mac=$(sudo virsh domiflist daisy | grep vnet | \ - grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+") - export INSTALLER_IP=$(/usr/sbin/arp -e -i $bridge_name | grep ${installer_mac} | head -n 1 | awk {'print $1'}) - - echo "Installer ip is ${INSTALLER_IP}" - else - echo "No available installer VM exists...exiting" - exit 1 - fi - -elif [[ ${INSTALLER_TYPE} == 'fuel' ]]; then - if [[ ! "${BRANCH}" =~ "danube" ]]; then - export SSH_KEY=${SSH_KEY:-/var/lib/opnfv/mcp.rsa} - sudo cp ${SSH_KEY} ${installer_key_file} - sudo chown `whoami`:`whoami` ${installer_key_file} - fi -fi - - -# Checking if destination path is valid -if [ -d $opnfv_installer ]; then - error "Please provide the full destination path for the installer ip file including the filename" -else - # Check if we can create the file (e.g. path is correct) - touch $opnfv_installer || error "Cannot create the file specified. Check that the path is correct and run the script again." -fi - - -# Write the installer info to the file -echo export INSTALLER_TYPE=${INSTALLER_TYPE} > $opnfv_installer -echo export INSTALLER_IP=${INSTALLER_IP} >> $opnfv_installer -if [ -e ${installer_key_file} ]; then - echo export SSH_KEY=${installer_key_file} >> $opnfv_installer -fi diff --git a/jjb/doctor/doctor-rtd-jobs.yaml b/jjb/doctor/doctor-rtd-jobs.yaml deleted file mode 100644 index 52a311389..000000000 --- a/jjb/doctor/doctor-rtd-jobs.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -- project: - name: doctor-rtd - project: doctor - project-name: doctor - - gerrit-skip-vote: true - project-pattern: 'doctor' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-doctor/47362/' - rtd-token: 'bf8640556a3ba3151e4e5602facc5ed982dd88c8' - - stream: - - master: - branch: '{stream}' - disabled: false - - jerma: &jerma - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/doctor/doctor.yaml b/jjb/doctor/doctor.yaml deleted file mode 100644 index bdeecdb17..000000000 --- a/jjb/doctor/doctor.yaml +++ /dev/null @@ -1,260 +0,0 @@ ---- -- project: - name: doctor - - project: '{name}' - project-name: '{name}' - project-pattern: '{project}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - jerma: &jerma - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - installer: - - 'fuel': - scenario: 'os-nosdn-nofeature-noha' - - arch: - - 'x86_64' - - 'aarch64' - - inspector: - - 'sample' - - 'congress' - - jobs: - - 'doctor-verify-{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}' - disabled: '{obj:disabled}' - project-type: 'multijob' - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'doctor-slave-parameter' - scm: - - git-scm-gerrit - triggers: - - 'doctor-verify': - project: '{project}' - branch: '{branch}' - files: 'doctor_tests/**' - - builders: - - shell: | - #!/bin/bash - # we do nothing here as the main stuff will be done - # in phase jobs - echo "Triggering phase jobs!" - - multijob: - name: 'doctor-verify-fuel' - execution-type: PARALLEL - projects: - - name: 'doctor-verify-fault_management-fuel-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-fuel-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 - -- job-template: - name: 'doctor-verify-fault_management-{installer}-{inspector}-{arch}-{stream}' - disabled: '{obj:disabled}' - node: 'zte-virtual4' - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 30 - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - 'doctor-slave-parameter' - - 'doctor-parameter': - inspector: '{inspector}' - scenario: '{scenario}' - test_case: 'fault_management' - admin_tool_type: 'fenix' - app_manager_type: 'vnfm' - 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}' - scenario: '{scenario}' - test_case: 'maintenance' - admin_tool_type: 'fenix' - app_manager_type: 'vnfm' - 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: 'doctor-{installer}-{arch}' - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 50 - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - 'doctor-slave-parameter' - - 'doctor-parameter': - inspector: '{inspector}' - scenario: '{scenario}' - test_case: 'all' - admin_tool_type: 'fenix' - app_manager_type: 'vnfm' - scm: - - git-scm-gerrit - builders: - - 'doctor-verify-installer-inspector-builders-macro' - publishers: - - 'doctor-verify-publishers-macro' - - -# ------------------------------- -# parameter macros -# ------------------------------- -- parameter: - name: 'doctor-parameter' - parameters: - - string: - name: INSPECTOR_TYPE - default: '{inspector}' - description: 'inspector component' - - string: - name: TEST_CASE - default: '{test_case}' - description: 'test case: all, fault_management or maintenance' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - description: 'Scenario to deploy and test' - - string: - name: ADMIN_TOOL_TYPE - default: '{admin_tool_type}' - description: 'admin_tool_type: sample, fenix' - - string: - name: APP_MANAGER_TYPE - default: '{app_manager_type}' - description: 'app_manager_type: sample, vnfm' - -# ------------------------------- -# builder macros -# ------------------------------- - -- builder: - name: 'doctor-verify-installer-inspector-builders-macro' - builders: - # yamllint disable rule:indentation - - shell: !include-raw: - - ./doctor-env-presetup.sh - - ../../utils/fetch_os_creds.sh - - shell: | - #!/bin/bash - - # prepare the env for test - . $HOME/opnfv-openrc.sh - if [ -f $HOME/os_cacert ]; then - export OS_CACERT=$HOME/os_cacert - fi - . $HOME/opnfv-installer.sh - - # run tox to trigger the test - # As Jenkins user, it has no permission to send ICMP package - sudo -E tox -e py36 - - -# ------------------------------- -# publisher macros -# ------------------------------- -- publisher: - name: 'doctor-verify-publishers-macro' - publishers: - - archive: - artifacts: 'doctor_tests/*.log' - - email-jenkins-admins-on-failure - - workspace-cleanup - -##################################### -# trigger macros -##################################### -- trigger: - name: 'doctor-verify' - 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: '{files}' - skip-vote: - successful: true - failed: true - unstable: true - notbuilt: true diff --git a/jjb/dovetail/dovetail-ci-jobs.yaml b/jjb/dovetail/dovetail-ci-jobs.yaml deleted file mode 100644 index 3e5c052f6..000000000 --- a/jjb/dovetail/dovetail-ci-jobs.yaml +++ /dev/null @@ -1,300 +0,0 @@ ---- -################################### -# job configuration for dovetail -################################### -- project: - name: dovetail - - project: '{name}' - - # -------------------------------------- - # BRANCH ANCHORS - # -------------------------------------- - # 1)the stream/branch here represents the SUT(System Under Test) stream/branch - # 2)docker-tag is the docker tag of dovetail(only master by now, then all latest used) - # the dovetail stream is one-to-one mapping with dovetail docker-tag - # the dovetail is not sync with A/B/C release - master: &master - stream: master - branch: '{stream}' - dovetail-branch: '{stream}' - gs-pathname: '' - docker-tag: 'latest' - disabled: true - hunter: &hunter - stream: hunter - branch: 'stable/{stream}' - dovetail-branch: 'master' - gs-pathname: '/{stream}' - docker-tag: 'latest' - - # ---------------------------------- - # POD, PLATFORM, AND BRANCH MAPPING - # ---------------------------------- - # CI PODs - # This section should only contain the SUTs - # that have been switched using labels for slaves - # ----------------------------------------------- - # the pods, SUTs listed here are just examples to - # let the dovetail tool run, there can be more ways beside CI to - # run the dovetail tool. - # pods, SUTs will be added/adjusted when needed - pod: - # fuel CI PODs - - baremetal: - slave-label: fuel-baremetal - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: fuel-virtual - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: fuel-baremetal - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *hunter - - virtual: - slave-label: fuel-virtual - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *hunter - # ------------------------------- - # Installers not using labels - # CI PODs - # This section should only contain the installers - # that have not been switched using labels for slaves - # ------------------------------- - # apex PODs - - virtual: - slave-label: apex-virtual-master - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: apex-baremetal-master - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: apex-virtual-master - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *hunter - - baremetal: - slave-label: apex-baremetal-master - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *hunter - # armband CI PODs - - armband-baremetal: - slave-label: armband-baremetal - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - armband-virtual: - slave-label: armband-virtual - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - # ------------------------------- - # None-CI PODs - # ------------------------------- - - zte-pod1: - slave-label: zte-pod1 - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod2: - slave-label: zte-pod2 - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod3: - slave-label: zte-pod3 - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - # ------------------------------- - testsuite: - - 'default' - - 'proposed_tests' - - testarea: - - 'mandatory' - - 'optional' - - jobs: - - 'dovetail-{SUT}-{pod}-{testsuite}-{stream}' - - 'dovetail-{SUT}-{pod}-{testsuite}-{testarea}-{stream}' - -################################ -# job templates -################################ -- job-template: - name: 'dovetail-{SUT}-{pod}-{testsuite}-{stream}' - - disabled: false - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: 300 - abort: true - - fix-workspace-permissions - - triggers: - - '{auto-trigger-name}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{dovetail-branch}' - - '{SUT}-defaults' - - '{slave-label}-defaults' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull dovetail docker image' - - string: - name: CI_DEBUG - default: 'true' - description: "Show debug output information" - - string: - name: TESTSUITE - default: '{testsuite}' - description: "dovetail testsuite to run" - - string: - name: TESTAREA - default: 'all' - description: "dovetail testarea to run" - - string: - name: DOVETAIL_REPO_DIR - default: "/home/opnfv/dovetail" - description: "Directory where the dovetail repository is cloned" - - string: - name: SUT_BRANCH - default: '{branch}' - description: "SUT branch" - - scm: - - git-scm - - builders: - - description-setter: - description: "POD: $NODE_NAME" - - 'dovetail-cleanup' - - 'dovetail-run' - - publishers: - - archive: - artifacts: 'results/**/*' - allow-empty: true - fingerprint: true - - email-jenkins-admins-on-failure - -- job-template: - name: 'dovetail-{SUT}-{pod}-{testsuite}-{testarea}-{stream}' - - disabled: false - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: 300 - abort: true - - fix-workspace-permissions - - triggers: - - '{auto-trigger-name}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{dovetail-branch}' - - '{SUT}-defaults' - - '{slave-label}-defaults' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull dovetail docker image' - - string: - name: CI_DEBUG - default: 'true' - description: "Show debug output information" - - string: - name: TESTSUITE - default: '{testsuite}' - description: "dovetail testsuite to run" - - string: - name: TESTAREA - default: '{testarea}' - description: "dovetail testarea to run" - - string: - name: DOVETAIL_REPO_DIR - default: "/home/opnfv/dovetail" - description: "Directory where the dovetail repository is cloned" - - string: - name: SUT_BRANCH - default: '{branch}' - description: "SUT branch" - - scm: - - git-scm - - builders: - - description-setter: - description: "POD: $NODE_NAME" - - 'dovetail-cleanup' - - 'dovetail-run' - - publishers: - - archive: - artifacts: 'results/**/*' - allow-empty: true - fingerprint: true - - email-jenkins-admins-on-failure - -# ------------------------- -# builder macros -# ------------------------- -- builder: - name: dovetail-run - builders: - - shell: - !include-raw: ./dovetail-run.sh - -- builder: - name: dovetail-cleanup - builders: - - shell: - !include-raw: ./dovetail-cleanup.sh diff --git a/jjb/edgecloud/edgecloud-rtd-jobs.yaml b/jjb/edgecloud/edgecloud-rtd-jobs.yaml deleted file mode 100644 index 41b013716..000000000 --- a/jjb/edgecloud/edgecloud-rtd-jobs.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -- project: - name: edgecloud-rtd - project: edgecloud - project-name: edgecloud - - project-pattern: 'edgecloud' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-edgecloud/52895/' - rtd-token: '47989bec8e8da44ab2f33491cd6031f0411d319b' - - stream: - - master: - branch: '{stream}' - disabled: false - - hunter: &hunter - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - gambia: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/edgecloud/edgecloud-views.yaml b/jjb/edgecloud/edgecloud-views.yaml deleted file mode 100644 index 2e865ddd0..000000000 --- a/jjb/edgecloud/edgecloud-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: edgecloud-rtd-view - views: - - project-view - project-name: edgecloud diff --git a/jjb/fds/fds-rtd-jobs.yaml b/jjb/fds/fds-rtd-jobs.yaml deleted file mode 100644 index 9bf47b956..000000000 --- a/jjb/fds/fds-rtd-jobs.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -- project: - name: fds-rtd - project: fds - project-name: fds - - project-pattern: 'fds' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-fds/47367/' - rtd-token: '756989c50a7c8f3350c4943f3d39a73762a4cd85' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/fds/fds-views.yaml b/jjb/fds/fds-views.yaml deleted file mode 100644 index d06b1af0b..000000000 --- a/jjb/fds/fds-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: fds-view - views: - - project-view - project-name: fds diff --git a/jjb/fuel/fuel-daily-jobs.yaml b/jjb/fuel/fuel-daily-jobs.yaml deleted file mode 100644 index ceb86c995..000000000 --- a/jjb/fuel/fuel-daily-jobs.yaml +++ /dev/null @@ -1,704 +0,0 @@ ---- -# jenkins job templates for Fuel -- project: - - name: 'fuel' - - project: '{name}' - - installer: '{name}' - - # ------------------------------- - # BRANCH ANCHORS - # ------------------------------- - master: &master - stream: master - branch: '{stream}' - disabled: true - gs-pathname: '' - functest_docker_tag: iruya - iruya: &iruya - stream: iruya - branch: 'stable/{stream}' - disabled: true - gs-pathname: '/{stream}' - functest_docker_tag: '{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 - <<: *iruya - - virtual: - slave-label: fuel-virtual - <<: *iruya - # ------------------------------- - # None-CI PODs - # ------------------------------- - - zte-pod1: - slave-label: zte-pod1 - <<: *master - - itri-pod1: - slave-label: itri-pod1 - <<: *master - disabled: true - # ------------------------------- - # scenarios - # ------------------------------- - scenario: - # HA scenarios - - 'os-nosdn-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-odl-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-ovs-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-fdio-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - # NOHA scenarios - - 'os-nosdn-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-odl-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-odl-sfc-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-odl-bgpvpn-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-ovs-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-fdio-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'k8-calico-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - jobs: - - 'fuel-{scenario}-{pod}-daily-{stream}' - - 'fuel-deploy-{pod}-daily-{stream}' - - 'fuel-collect-logs-{pod}-daily-{stream}' - -######################## -# job templates -######################## -- job-template: - name: 'fuel-{scenario}-{pod}-daily-{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|k8)-.*?-{pod}-daily-.*' - - 'fuel-verify-.*' - blocking-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}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - same-node: true - block: true - - trigger-builds: - - project: 'functest-fuel-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - DOCKER_TAG={functest_docker_tag} - same-node: true - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - trigger-builds: - - project: 'yardstick-fuel-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - # 1.here the stream means the SUT stream, dovetail stream is defined in its own job - # 2.testsuite default here is for the test cases already added into OVP - # 3.run default testsuite mandatory test cases against ha scenario - # 4.run default testsuite optional test cases against ha scenario twice one week - # 5.run proposed_tests testsuite optional test cases against ha scenario - # 6.not used for release criteria or compliance, only to debug the dovetail tool bugs - - conditional-step: - condition-kind: and - condition-operands: - - condition-kind: regex-match - regex: '.*-ha' - label: '{scenario}' - steps: - - trigger-builds: - - project: 'dovetail-fuel-{pod}-default-mandatory-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - project: 'dovetail-fuel-{pod}-proposed_tests-optional-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - 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: '.*-ha' - label: '{scenario}' - - condition-kind: day-of-week - day-selector: select-days - days: - MON: true - WED: true - use-build-time: true - steps: - - trigger-builds: - - project: 'dovetail-fuel-{pod}-default-optional-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - 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} - INSTALLER_VERSION={stream} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - publishers: - - email-jenkins-admins-on-failure - -- job-template: - name: 'fuel-deploy-{pod}-daily-{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-.*' - blocking-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-jenkins-admins-on-failure - - report-provision-result - -- job-template: - name: 'fuel-collect-logs-{pod}-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - 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" - - shell: - !include-raw-escape: ./fuel-logs.sh - - publishers: - - email-jenkins-admins-on-failure - -######################## -# trigger macros -######################## -# ---------------------------------------------- -# Triggers for job running on fuel-baremetal against master branch -# ---------------------------------------------- -# HA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-master-trigger' - triggers: - - timed: '5 20 * * 1,2,4,6,7' -- trigger: - name: 'fuel-os-odl-nofeature-ha-baremetal-daily-master-trigger' - triggers: - - timed: '5 2 * * *' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-master-trigger' - triggers: - - timed: '5 5 * * *' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-baremetal-daily-master-trigger' - triggers: - - timed: '' - -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-nofeature-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-sfc-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-ovs-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-fdio-noha-baremetal-daily-master-trigger' - triggers: - - timed: '5 20 * * 3,5' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -# ---------------------------------------------- -# Triggers for job running on fuel-baremetal against iruya branch -# ---------------------------------------------- -# HA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 20 * * 1,4,7' -- trigger: - name: 'fuel-os-odl-nofeature-ha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 2 * * *' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 5 * * *' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-nofeature-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-sfc-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 20 * * 6' -- trigger: - name: 'fuel-os-odl-ovs-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 20 * * 2' -- trigger: - name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 20 * * 3,5' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -# ---------------------------------------------- -# Triggers for job running on fuel-virtual against master branch -# ---------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-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-ovs-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 13 * * *' -- trigger: - name: 'fuel-os-odl-nofeature-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 18 * * *' -- trigger: - name: 'fuel-os-odl-sfc-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 4 * * 1,4' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 6 * * 2,5' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 23 * * *' -- trigger: - name: 'fuel-os-odl-ovs-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 2 * * *' -- trigger: - name: 'fuel-os-nosdn-ovs-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 9 * * *' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 20 * * *' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 16 * * *' -# ---------------------------------------------- -# Triggers for job running on fuel-virtual against iruya branch -# ---------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-virtual-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-nofeature-ha-virtual-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-virtual-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-virtual-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-virtual-daily-iruya-trigger' - triggers: - - timed: '' -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 13 * * *' -- trigger: - name: 'fuel-os-odl-nofeature-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 18 * * *' -- trigger: - name: 'fuel-os-odl-sfc-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 4 * * 1,4' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 7 * * 2,5' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 23 * * *' -- trigger: - name: 'fuel-os-odl-ovs-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 2 * * *' -- trigger: - name: 'fuel-os-nosdn-ovs-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 9 * * *' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 13 * * 6,7' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '5 13 * * 6,7' -# ---------------------------------------------- -# ZTE POD1 Triggers running against master branch -# ---------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '0 10 * * *' -- trigger: - name: 'fuel-os-odl-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-ovs-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-sfc-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-ovs-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-fdio-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -# ---------------------------------------------- -# ITRI POD1 Triggers running against master branch -# ---------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 1' -- trigger: - name: 'fuel-os-odl-nofeature-ha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 17 * * 1' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 2' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 17 * * 2' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-itri-pod1-daily-master-trigger' - triggers: - - timed: '' -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 3' -- trigger: - name: 'fuel-os-odl-nofeature-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 17 * * 3' -- trigger: - name: 'fuel-os-odl-sfc-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 4' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 17 * * 4' -- trigger: - name: 'fuel-os-odl-ovs-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 5' -- trigger: - name: 'fuel-os-nosdn-ovs-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 17 * * 5' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 6' diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh deleted file mode 100755 index dd89447e6..000000000 --- a/jjb/fuel/fuel-deploy.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# 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 -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -set -o nounset -set -o pipefail - -export TERM="vt220" - -# set deployment parameters -export TMPDIR=${HOME}/tmpdir -# shellcheck disable=SC2153 -LAB_NAME=${NODE_NAME/-*} -# shellcheck disable=SC2153 -POD_NAME=${NODE_NAME/*-} - -# Fuel currently supports arm, enea, ericsson, intel, lf, unh, zte and itri labs -if [[ ! "${LAB_NAME}" =~ (arm|enea|ericsson|intel|lf|unh|zte|itri) ]]; then - echo "Unsupported/unidentified lab ${LAB_NAME}. Cannot continue!" - exit 1 -fi - -echo "Using configuration for ${LAB_NAME}" - -# create TMPDIR if it doesn't exist, change permissions -mkdir -p "${TMPDIR}" -sudo chmod a+x "${HOME}" "${TMPDIR}" - -cd "${WORKSPACE}" || exit 1 - -# 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' - -# turn on DEBUG mode -[[ ${CI_DEBUG,,} == true ]] && EXTRA_ARGS="-D ${EXTRA_ARGS:-}" - -# construct the command -DEPLOY_COMMAND="${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 -echo "Deployment parameters" -echo "--------------------------------------------------------" -echo "Scenario: ${DEPLOY_SCENARIO}" -echo "Lab: ${LAB_NAME}" -echo "POD: ${POD_NAME}" -echo -echo "Starting the deployment using ${INSTALLER_TYPE}. This could take some time..." -echo "--------------------------------------------------------" -echo - -# start the deployment -echo "Issuing command" -echo "${DEPLOY_COMMAND}" -echo - -${DEPLOY_COMMAND} -exit_code=$? - -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 ]]; then - echo "Uploading deployment logs" - gsutil cp "${WORKSPACE}/${FUEL_LOG_FILENAME}" \ - "gs://${GS_URL}/logs/${FUEL_LOG_FILENAME}" > /dev/null 2>&1 - echo "Logs are available at http://${GS_URL}/logs/${FUEL_LOG_FILENAME}" -fi - -if [[ "${exit_code}" -ne 0 ]]; then - echo "Deployment failed!" - exit "${exit_code}" -fi - -echo "Deployment is successful!" -exit 0 diff --git a/jjb/fuel/fuel-docker-jobs.yaml b/jjb/fuel/fuel-docker-jobs.yaml deleted file mode 100644 index 922ff5c53..000000000 --- a/jjb/fuel/fuel-docker-jobs.yaml +++ /dev/null @@ -1,221 +0,0 @@ ---- -############################################## -# job configuration for docker build and push -############################################## -- project: - - name: fuel-docker - - project: fuel - - stream: - - master: - branch: '{stream}' - disabled: true - - iruya: - branch: 'stable/{stream}' - disabled: true - - arch_tag: - - 'amd64': - slave_label: 'opnfv-build-ubuntu' - - 'arm64': - slave_label: 'opnfv-build-ubuntu-arm' - - # settings for jobs run in multijob phases - build-job-settings: &build-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: | - PUSH_IMAGE=$PUSH_IMAGE - CACHE_INVALIDATE=$CACHE_INVALIDATE - COMMIT_ID=$COMMIT_ID - GERRIT_REFNAME=$GERRIT_REFNAME - kill-phase-on: FAILURE - abort-all-jobs: false - - manifest-job-settings: &manifest-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: - GERRIT_REFNAME=$GERRIT_REFNAME - kill-phase-on: FAILURE - abort-all-jobs: false - - jobs: - - "fuel-docker-{stream}" - - "fuel-docker-build-{arch_tag}-{stream}" - - "fuel-docker-manifest-{stream}" - -######################## -# job templates -######################## -- job-template: - name: 'fuel-docker-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - parameters: - - fuel-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: 'opnfv-build-ubuntu' - arch_tag: 'amd64' - - properties: - - throttle: - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-docker-.*' - blocking-level: 'NODE' - - scm: - - git-scm - - triggers: - - pollscm: - cron: "*/25 * * * *" - - gerrit-trigger-tag-created: - project: '{project}' - - builders: - - multijob: - name: 'build fuel images' - execution-type: PARALLEL - projects: - - name: 'fuel-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'fuel-docker-build-arm64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish fuel manifests' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'fuel-docker-manifest-{stream}' - <<: *manifest-job-settings - -- job-template: - name: 'fuel-docker-build-{arch_tag}-{stream}' - disabled: '{obj:disabled}' - parameters: - - fuel-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: '{slave_label}' - arch_tag: '{arch_tag}' - properties: - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-docker-build-.*' - blocking-level: 'NODE' - scm: - - git-scm - builders: - - shell: | - #!/bin/bash -ex - case "{stream}" in - "master") - tag="latest" ;; - *) - tag="{stream}" ;; - esac - ./ci/build.sh $tag - -- job-template: - name: 'fuel-docker-manifest-{stream}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'opnfv-build-ubuntu' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: REPO - default: "opnfv" - description: "Repository name for fuel-docker images" - - - disabled: '{obj:disabled}' - - builders: - - shell: | - #!/bin/bash -ex - case "{stream}" in - "master") - tag="latest" ;; - *) - tag="{stream}" ;; - esac - sudo manifest-tool push from-args \ - --platforms linux/amd64,linux/arm64 \ - --template $REPO/fuel:saltmaster-reclass-ARCH-$tag \ - --target $REPO/fuel:saltmaster-reclass-$tag - sudo manifest-tool push from-args \ - --platforms linux/amd64,linux/arm64 \ - --template $REPO/fuel:saltminion-maas-ARCH-$tag \ - --target $REPO/fuel:saltminion-maas-$tag - exit $? - -# parameter macro -- parameter: - name: fuel-job-parameters - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: '{slave_label}' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: CACHE_INVALIDATE - default: "0" - description: "Set to any non-zero value to force a Docker cache cleanup" - - string: - name: COMMIT_ID - default: "" - description: "commit id to make a snapshot docker image" - - string: - name: GERRIT_REFNAME - default: "" - description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: REPO - default: "opnfv" - description: "Repository name for fuel-docker images" diff --git a/jjb/fuel/fuel-logs.sh b/jjb/fuel/fuel-logs.sh deleted file mode 100755 index a7d852685..000000000 --- a/jjb/fuel/fuel-logs.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2017 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 -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -set -o nounset -set -o pipefail - -# Fuel requires deploy script to be ran with sudo, Armband does not -SUDO='sudo -E' -[ "${PROJECT}" = 'fuel' ] || SUDO= - -# Log file name -FUEL_PM_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}_pm.log.tar.gz" - -# Construct the command -LOG_COMMAND="${SUDO} ${WORKSPACE}/mcp/scripts/log.sh \ - ${WORKSPACE}/${FUEL_PM_LOG_FILENAME}" - -# Log info to console -echo "Collecting post mortem logs ..." -echo "--------------------------------------------------------" -echo "${LOG_COMMAND}" - -${LOG_COMMAND} - -# Upload logs for both baremetal and virtual deployments -echo "Uploading deployment logs" -echo "--------------------------------------------------------" -gsutil cp "${WORKSPACE}/${FUEL_PM_LOG_FILENAME}" \ - "gs://${GS_URL}/logs/${FUEL_PM_LOG_FILENAME}" > /dev/null 2>&1 -echo "Logs are available at http://${GS_URL}/logs/${FUEL_PM_LOG_FILENAME}" diff --git a/jjb/fuel/fuel-rtd-jobs.yaml b/jjb/fuel/fuel-rtd-jobs.yaml deleted file mode 100644 index b93eeddf7..000000000 --- a/jjb/fuel/fuel-rtd-jobs.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -- project: - name: fuel-rtd - project: fuel - project-name: fuel - - project-pattern: 'fuel' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-fuel/47205/' - rtd-token: '38f40bf6c08fd4bccb930871bc29b08404cf98b0' - - stream: - - master: - branch: '{stream}' - disabled: true - - iruya: - branch: 'stable/{stream}' - disabled: true - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/fuel/fuel-set-scenario.sh b/jjb/fuel/fuel-set-scenario.sh deleted file mode 100755 index 4c8ed7334..000000000 --- a/jjb/fuel/fuel-set-scenario.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/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: -# reverify: -# 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 deleted file mode 100644 index 7fd7317ba..000000000 --- a/jjb/fuel/fuel-verify-jobs.yaml +++ /dev/null @@ -1,271 +0,0 @@ ---- -- project: - name: 'fuel-verify-jobs' - - project: 'fuel' - - installer: 'fuel' - ##################################### - # branch definitions - ##################################### - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: true - functest_docker_tag: iruya - - iruya: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true - functest_docker_tag: '{stream}' - ##################################### - # cluster architectures - ##################################### - # Note: arm64 was removed since it was basically a no-op - arch_tag: - - 'amd64': - slave-label: 'fuel' - functest-suite-label: 'fuel' - ##################################### - # cluster types - ##################################### - type: - - 'virtual' - - 'baremetal' - ##################################### - # patch verification phases - ##################################### - phase: - - 'docker-build' - - 'deploy' - ##################################### - # jobs - ##################################### - jobs: - - 'fuel-verify-{type}-{arch_tag}-{stream}' - - 'fuel-verify-{phase}-{type}-{arch_tag}-{stream}' -##################################### -# job templates -##################################### -- job-template: - name: 'fuel-verify-{type}-{arch_tag}-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-(os|k8)-.*?-daily-.*' - - 'fuel-verify-.*' - blocking-level: 'NODE' - - scm: - - git-scm-gerrit - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true - - triggers: - - 'fuel-verify-{type}-{arch_tag}-trigger': - project: '{project}' - branch: '{branch}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-{type}-defaults': - installer: '{installer}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - builders: - - 'fuel-verify-set-scenario-macro' - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/scenario.properties" - - description-setter: - 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 - condition: SUCCESSFUL - projects: - - 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 - 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-{functest-suite-label}-{type}-suite-{stream}' - current-parameters: false - predefined-parameters: | - FUNCTEST_MODE=tier - FUNCTEST_TIER=healthcheck - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - DOCKER_TAG={functest_docker_tag} - node-parameters: true - enable-condition: "def m = ! ('$NODE_LABELS' =~ /armband-virtual/)" - kill-phase-on: NEVER - abort-all-job: true - -- job-template: - name: 'fuel-verify-{phase}-{type}-{arch_tag}-{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: - - 'fuel-verify-docker-build-.*' - - 'fuel-verify-deploy-.*' - blocking-level: 'NODE' - - scm: - - git-scm-gerrit - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-{type}-defaults': - installer: '{installer}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - builders: - - 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-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 -E ./ci/build.sh 'verify' '' diff --git a/jjb/functest/functest-docker.yaml b/jjb/functest/functest-docker.yaml deleted file mode 100644 index 6915ab4fd..000000000 --- a/jjb/functest/functest-docker.yaml +++ /dev/null @@ -1,319 +0,0 @@ ---- -############################################## -# job configuration for docker build and push -############################################## -- project: - - name: functest-docker - - project: functest - - stream: - - master: - branch: '{stream}' - disabled: false - - leguer: - branch: 'stable/{stream}' - disabled: false - - kali: - branch: 'stable/{stream}' - disabled: false - - jerma: - branch: 'stable/{stream}' - disabled: false - - iruya: - branch: 'stable/{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - arch_tag: - - 'amd64': - slave_label: 'lf-build2' - - # yamllint disable rule:key-duplicates - image: - - 'core' - - 'tempest' - - 'healthcheck' - - 'smoke' - - 'benchmarking' - - 'vnf' - - 'smoke-cntt' - - 'benchmarking-cntt' - - 'features' - - exclude: - - stream: 'master' - image: 'tempest' - - stream: 'leguer' - image: 'tempest' - - stream: 'kali' - image: 'tempest' - - stream: 'jerma' - image: 'tempest' - - stream: 'master' - image: 'features' - - stream: 'leguer' - image: 'features' - - stream: 'kali' - image: 'features' - - stream: 'jerma' - image: 'features' - - stream: 'iruya' - image: 'features' - - # settings for jobs run in multijob phases - build-job-settings: &build-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: | - PUSH_IMAGE=$PUSH_IMAGE - COMMIT_ID=$COMMIT_ID - GERRIT_REFNAME=$GERRIT_REFNAME - DOCKERFILE=$DOCKERFILE - kill-phase-on: FAILURE - abort-all-jobs: false - - manifest-job-settings: &manifest-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: - GERRIT_REFNAME=$GERRIT_REFNAME - kill-phase-on: FAILURE - abort-all-jobs: false - - # yamllint enable rule:key-duplicates - jobs: - - "functest-docker-{stream}" - - "functest-{image}-docker-build-{arch_tag}-{stream}" - - "functest-{image}-docker-manifest-{stream}" - -######################## -# job templates -######################## -- job-template: - name: 'functest-docker-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - parameters: - - functest-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: 'lf-build2' - arch_tag: 'amd64' - - properties: - - throttle: - max-per-node: 1 - option: 'project' - - scm: - - git-scm - - triggers: - - pollscm: - cron: "*/30 * * * *" - - gerrit-trigger-tag-created: - project: '{project}' - - builders: - - multijob: - name: 'build functest-core images' - execution-type: PARALLEL - projects: - - name: 'functest-core-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish functest-core manifests' - execution-type: PARALLEL - projects: - - name: 'functest-core-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build functest-tempest images' - execution-type: PARALLEL - projects: - - name: 'functest-tempest-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish functest-tempest manifests' - execution-type: PARALLEL - projects: - - name: 'functest-tempest-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build all functest images' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-healthcheck-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-smoke-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-benchmarking-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-vnf-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-features-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish all manifests' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-healthcheck-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-smoke-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-benchmarking-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-vnf-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-features-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build all functest cntt images' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-smoke-cntt-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-benchmarking-cntt-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish all cntt manifests' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-smoke-cntt-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-benchmarking-cntt-docker-manifest-{stream}' - <<: *manifest-job-settings - - publishers: - - 'functest-amd64-recipients' - -- job-template: - name: 'functest-{image}-docker-build-{arch_tag}-{stream}' - disabled: '{obj:disabled}' - parameters: - - functest-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: '{slave_label}' - arch_tag: '{arch_tag}' - scm: - - git-scm - builders: - - shell: | - #!/bin/bash -ex - sudo amd64_dirs=docker/{image} arm64_dirs= arm_dirs= bash ./build.sh - exit $? - -- job-template: - name: 'functest-{image}-docker-manifest-{stream}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'lf-build2' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: REPO - default: "opnfv" - description: "Repository name for functest images" - - - disabled: '{obj:disabled}' - - builders: - - shell: | - #!/bin/bash -ex - case "{stream}" in - "master") - tag="latest" ;; - *) - tag="{stream}" ;; - esac - sudo manifest-tool push from-args \ - --platforms linux/amd64 \ - --template $REPO/functest-{image}:ARCH-$tag \ - --target $REPO/functest-{image}:$tag - exit $? - -# parameter macro -- parameter: - name: functest-job-parameters - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: '{slave_label}' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: COMMIT_ID - default: "" - description: "commit id to make a snapshot docker image" - - string: - name: GERRIT_REFNAME - default: "" - description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" - - string: - name: DOCKERFILE - default: "Dockerfile" - description: "Dockerfile to use for creating the image." - - string: - name: ARCH_TAG - default: "{arch_tag}" - description: "If set, this value will be added to the docker image tag as a prefix" - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: REPO - default: "opnfv" - description: "Repository name for functest images" - -# publisher macros -- publisher: - name: 'functest-amd64-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 - valentin.boucher@kontron.com diff --git a/jjb/functest/functest-kubernetes-docker.yaml b/jjb/functest/functest-kubernetes-docker.yaml deleted file mode 100644 index 444d1b1c5..000000000 --- a/jjb/functest/functest-kubernetes-docker.yaml +++ /dev/null @@ -1,284 +0,0 @@ ---- -############################################## -# job configuration for docker build and push -############################################## -- project: - - name: functest-kubernetes-docker - - project: functest-kubernetes - - stream: - - master: - branch: '{stream}' - disabled: false - - leguer: - branch: 'stable/{stream}' - disabled: false - - kali: - branch: 'stable/{stream}' - disabled: false - - jerma: - branch: 'stable/{stream}' - disabled: false - - iruya: - branch: 'stable/{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - arch_tag: - - 'amd64': - slave_label: 'lf-build2' - - # yamllint disable rule:key-duplicates - image: - - 'core' - - 'healthcheck' - - 'smoke' - - 'cnf' - - 'security' - - 'benchmarking' - - # settings for jobs run in multijob phases - build-job-settings: &build-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: | - PUSH_IMAGE=$PUSH_IMAGE - COMMIT_ID=$COMMIT_ID - GERRIT_REFNAME=$GERRIT_REFNAME - DOCKERFILE=$DOCKERFILE - kill-phase-on: FAILURE - abort-all-jobs: false - - manifest-job-settings: &manifest-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: - GERRIT_REFNAME=$GERRIT_REFNAME - kill-phase-on: FAILURE - abort-all-jobs: false - - # yamllint enable rule:key-duplicates - jobs: - - "functest-kubernetes-docker-{stream}" - - "functest-kubernetes-{image}-docker-build-{arch_tag}-{stream}" - - "functest-kubernetes-{image}-docker-manifest-{stream}" - -######################## -# job templates -######################## -- job-template: - name: 'functest-kubernetes-docker-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - parameters: - - functest-kubernetes-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: 'lf-build2' - arch_tag: 'amd64' - - properties: - - throttle: - max-per-node: 1 - option: 'project' - - scm: - - git-scm - - triggers: - - pollscm: - cron: "*/30 * * * *" - - gerrit-trigger-tag-created: - project: '{project}' - - builders: - - multijob: - name: 'build functest-kubernetes-core images' - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-core-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish functest-kubernetes-core manifests' - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-core-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build functest-kubernetes-[healthcheck,cnf,security] images' - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-healthcheck-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-kubernetes-cnf-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-kubernetes-security-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish functest-kubernetes-[healthcheck,cnf,security] manifests' - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-healthcheck-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-kubernetes-cnf-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-kubernetes-security-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build functest-kubernetes-smoke image' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-smoke-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish functest-kubernetes-smoke manifests' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-smoke-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build functest-kubernetes-benchmarking image' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-benchmarking-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish functest-kubernetes-benchmarking manifests' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-benchmarking-docker-manifest-{stream}' - <<: *manifest-job-settings - - publishers: - - 'functest-kubernetes-amd64-recipients' - -- job-template: - name: 'functest-kubernetes-{image}-docker-build-{arch_tag}-{stream}' - disabled: '{obj:disabled}' - parameters: - - functest-kubernetes-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: '{slave_label}' - arch_tag: '{arch_tag}' - scm: - - git-scm - builders: - - shell: | - #!/bin/bash -ex - sudo amd64_dirs=docker/{image} arm_dirs= arm64_dirs= bash ./build.sh - exit $? - -- job-template: - name: 'functest-kubernetes-{image}-docker-manifest-{stream}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'lf-build2' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: REPO - default: "opnfv" - description: "Repository name for functest-kubernetes images" - - - disabled: '{obj:disabled}' - - builders: - - shell: | - #!/bin/bash -ex - case "{stream}" in - "master") - tag="latest" ;; - *) - tag="{stream}" ;; - esac - sudo manifest-tool push from-args \ - --platforms linux/amd64 \ - --template $REPO/functest-kubernetes-{image}:ARCH-$tag \ - --target $REPO/functest-kubernetes-{image}:$tag - exit $? - -# parameter macro -- parameter: - name: functest-kubernetes-job-parameters - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: '{slave_label}' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: COMMIT_ID - default: "" - description: "commit id to make a snapshot docker image" - - string: - name: GERRIT_REFNAME - default: "" - description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" - - string: - name: DOCKERFILE - default: "Dockerfile" - description: "Dockerfile to use for creating the image." - - string: - name: ARCH_TAG - default: "{arch_tag}" - description: "If set, this value will be added to the docker image tag as a prefix" - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: REPO - default: "opnfv" - description: "Repository name for functest-kubernetes images" - -# publisher macros -- publisher: - name: 'functest-kubernetes-amd64-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 - valentin.boucher@kontron.com diff --git a/jjb/functest/functest-kubernetes-ng.yaml b/jjb/functest/functest-kubernetes-ng.yaml new file mode 100644 index 000000000..c447d5398 --- /dev/null +++ b/jjb/functest/functest-kubernetes-ng.yaml @@ -0,0 +1,426 @@ +--- +- functest-kubernetes-ng-containers: &functest-kubernetes-ng-containers + name: 'functest-kubernetes-ng-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' + +- functest-kubernetes-ng-params: &functest-kubernetes-ng-params + name: 'functest-kubernetes-ng-params' + repo: 'opnfv' + port: + tag: + - v1.20: + buildargs: + branch: stable/leguer + slave: lf-virtual1 + dependency: 3.12 + from: s/:leguer$/:v1.20/g + - v1.19: + buildargs: + branch: stable/kali + slave: lf-virtual1 + dependency: 3.11 + from: s/:kali$/:v1.19/g + - v1.18: + branch: stable/kali + slave: lf-virtual1 + dependency: 3.11 + buildargs: --build-arg K8S_TAG=1.18 + from: s/:kali$/:v1.18/g + - v1.17: + buildargs: + branch: stable/jerma + slave: lf-virtual1 + dependency: 3.10 + from: s/:jerma$/:v1.17/g + - v1.16: + branch: stable/jerma + slave: lf-virtual1 + dependency: 3.10 + buildargs: --build-arg K8S_TAG=1.16 + from: s/:jerma$/:v1.16/g + - v1.15: + buildargs: + branch: stable/iruya + slave: lf-virtual1 + dependency: 3.9 + from: s/:iruya$/:v1.15/g + - v1.14: + branch: stable/iruya + slave: lf-virtual1 + dependency: 3.9 + buildargs: --build-arg K8S_TAG=1.14 + from: s/:iruya$/:v1.14/g + - v1.13: + buildargs: + branch: stable/hunter + slave: lf-virtual1 + dependency: 3.9 + from: s/:hunter$/:v1.13/g + +- functest-kubernetes-ng-jobs: &functest-kubernetes-ng-jobs + name: 'functest-kubernetes-ng-jobs' + current-parameters: true + +- parameter: + name: functest-kubernetes-ng-slave + parameters: + - label: + name: slave + default: '{slave}' + + +- functest-kubernetes-ng-build-containers: &functest-kubernetes-ng-build-containers + name: 'functest-kubernetes-ng-build-containers' + <<: *functest-kubernetes-ng-containers + ref_arg: '{ref_arg}' + path: '{path}' + buildargs: '{buildargs}' + from: '{from}' + +- builder: + name: functest-kubernetes-ng-build-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + build_args="" + if [ "{buildargs}" != "None" ]; then + build_args="{buildargs}" + fi + if [ "{ref_arg}" != "None" ]; then + build_args="$build_args --build-arg {ref_arg}={ref}" + fi + cd {path} + if [ "{from}" != "None" ]; then + sed -i {from} Dockerfile + fi + sudo docker build $build_args \ + --pull=false --no-cache --force-rm=true \ + -t $image . + +- scm: + name: functest-kubernetes-ng-scm + scm: + - git: + url: 'https://gerrit.opnfv.org/gerrit/functest-kubernetes' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + branches: + - '{ref}' + +- functest-kubernetes-ng-dep: &functest-kubernetes-ng-dep + name: 'functest-kubernetes-ng-containers' + repo: '{repo}' + port: '{port}' + tag: '{tag}' + dependency: '{dependency}' + +- builder: + name: functest-kubernetes-ng-pull-dep-images + builders: + - shell: | + set +x + if [ "_" = "_" ]; then + image=alpine:{dependency} + elif [ "_" = "None" ]; then + image=_/alpine:{dependency} + else + image=_:/alpine{dependency} + fi + sudo docker pull $image || true + +- builder: + name: functest-kubernetes-ng-remove-dep-images + builders: + - shell: | + set +x + if [ "_" = "_" ]; then + image=alpine:{dependency} + elif [ "_" = "None" ]; then + image=_/alpine:{dependency} + else + image=_:/alpine{dependency} + fi + sudo docker rmi $image || true + +- job-template: + name: 'functest-kubernetes-ng-{repo}-{tag}-dep-pull' + parameters: + - functest-kubernetes-ng-slave: + slave: '{slave}' + builders: + - functest-kubernetes-ng-pull-dep-images: + <<: *functest-kubernetes-ng-dep + +- project: + name: 'functest-kubernetes-ng-{repo}-{tag}-dep-pull' + <<: *functest-kubernetes-ng-params + jobs: + - 'functest-kubernetes-ng-{repo}-{tag}-dep-pull' + +- job-template: + name: 'functest-kubernetes-ng-{repo}-{tag}-dep-rmi' + parameters: + - functest-kubernetes-ng-slave: + slave: '{slave}' + builders: + - functest-kubernetes-ng-remove-dep-images: + <<: *functest-kubernetes-ng-dep + +- project: + name: 'functest-kubernetes-ng-{repo}-{tag}-dep-rmi' + <<: *functest-kubernetes-ng-params + jobs: + - 'functest-kubernetes-ng-{repo}-{tag}-dep-rmi' + + +- builder: + name: functest-kubernetes-ng-push-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + sudo docker push $image + +- trigger: + name: functest-kubernetes-ng-commit + triggers: + - pollscm: + cron: "*/30 * * * *" + +- job-template: + name: 'functest-kubernetes-ng-{repo}-{container}-{tag}-build' + parameters: + - functest-kubernetes-ng-slave: + slave: '{slave}' + scm: + - functest-kubernetes-ng-scm: + ref: '{branch}' + builders: + - functest-kubernetes-ng-build-containers: + <<: *functest-kubernetes-ng-build-containers + ref: '{branch}' + buildargs: '{buildargs}' + - functest-kubernetes-ng-push-containers: + <<: *functest-kubernetes-ng-build-containers + ref: '{branch}' + +- project: + name: functest-kubernetes-ng-opnfv-functest-kubernetes-core-{tag}-build + <<: *functest-kubernetes-ng-params + container: functest-kubernetes-core + ref_arg: BRANCH + path: docker/core + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build' + +- project: + name: functest-kubernetes-ng-opnfv-functest-kubernetes-healthcheck-{tag}-build + <<: *functest-kubernetes-ng-params + container: functest-kubernetes-healthcheck + ref_arg: + path: docker/healthcheck + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build' + +- project: + name: functest-kubernetes-ng-opnfv-functest-kubernetes-cnf-{tag}-build + <<: *functest-kubernetes-ng-params + container: functest-kubernetes-cnf + ref_arg: BRANCH + path: docker/cnf + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build' + +- project: + name: functest-kubernetes-ng-opnfv-functest-kubernetes-security-{tag}-build + <<: *functest-kubernetes-ng-params + container: functest-kubernetes-security + ref_arg: BRANCH + path: docker/security + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build' + +- project: + name: functest-kubernetes-ng-opnfv-functest-kubernetes-smoke-{tag}-build + <<: *functest-kubernetes-ng-params + container: functest-kubernetes-smoke + ref_arg: + path: docker/smoke + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build' + +- project: + name: functest-kubernetes-ng-opnfv-functest-kubernetes-benchmarking-{tag}-build + <<: *functest-kubernetes-ng-params + container: functest-kubernetes-benchmarking + ref_arg: + path: docker/benchmarking + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-build' + + +- job-template: + name: 'functest-kubernetes-ng-{tag}-docker' + project-type: multijob + triggers: + - functest-kubernetes-ng-commit + scm: + - functest-kubernetes-ng-scm: + ref: '{branch}' + parameters: + - functest-kubernetes-ng-slave: + slave: '{slave}' + properties: + - build-blocker: + use-build-blocker: true + blocking-level: 'NODE' + blocking-jobs: + - '^functest-kubernetes-ng-{tag}-(daily|docker|review)$' + builders: + - multijob: + name: remove dependency + projects: + - name: 'functest-kubernetes-ng-{repo}-{tag}-dep-rmi' + <<: *functest-kubernetes-ng-jobs + - multijob: + name: pull dependency + projects: + - name: 'functest-kubernetes-ng-{repo}-{tag}-dep-pull' + <<: *functest-kubernetes-ng-jobs + - multijob: + name: build opnfv/functest-kubernetes-core + projects: + - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-core-{tag}-build' + <<: *functest-kubernetes-ng-jobs + - multijob: + name: build containers + projects: + - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-healthcheck-{tag}-build' + <<: *functest-kubernetes-ng-jobs + - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-cnf-{tag}-build' + <<: *functest-kubernetes-ng-jobs + - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-security-{tag}-build' + <<: *functest-kubernetes-ng-jobs + - multijob: + name: build opnfv/functest-kubernetes-smoke + projects: + - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-smoke-{tag}-build' + <<: *functest-kubernetes-ng-jobs + - multijob: + name: build opnfv/functest-kubernetes-benchmarking + projects: + - name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-benchmarking-{tag}-build' + <<: *functest-kubernetes-ng-jobs + +- builder: + name: functest-kubernetes-ng-trivy + builders: + - shell: | + sudo apt-get update && sudo apt-get install curl -y + curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b . + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + ./trivy --exit-code 1 $image + +- job-template: + name: 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy' + triggers: + - timed: '@daily' + parameters: + - functest-kubernetes-ng-slave: + slave: '{slave}' + builders: + - functest-kubernetes-ng-trivy: + <<: *functest-kubernetes-ng-containers + +- project: + name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-core-trivy' + <<: *functest-kubernetes-ng-params + container: 'functest-kubernetes-core' + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-healthcheck-trivy' + <<: *functest-kubernetes-ng-params + container: 'functest-kubernetes-healthcheck' + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-cnf-trivy' + <<: *functest-kubernetes-ng-params + container: 'functest-kubernetes-cnf' + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-security-trivy' + <<: *functest-kubernetes-ng-params + container: 'functest-kubernetes-security' + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-smoke-trivy' + <<: *functest-kubernetes-ng-params + container: 'functest-kubernetes-smoke' + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-kubernetes-ng-opnfv-functest-kubernetes-benchmarking-trivy' + <<: *functest-kubernetes-ng-params + container: 'functest-kubernetes-benchmarking' + jobs: + - 'functest-kubernetes-ng-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-kubernetes-ng' + <<: *functest-kubernetes-ng-params + jobs: + - 'functest-kubernetes-ng-{tag}-docker' + +- view: + name: functest-kubernetes-ng-docker + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-kubernetes-ng-[a-z0-9.]+-docker$ + +- view: + name: functest-kubernetes-ng-trivy + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-kubernetes-ng-[a-z0-9-.]+-trivy$ diff --git a/jjb/functest/functest-kubernetes-pi.yaml b/jjb/functest/functest-kubernetes-pi.yaml index 88603663d..803e74eff 100644 --- a/jjb/functest/functest-kubernetes-pi.yaml +++ b/jjb/functest/functest-kubernetes-pi.yaml @@ -1,7 +1,10 @@ --- -- functest-kubernetes-pi-jobs: &functest-kubernetes-pi-jobs - name: 'functest-kubernetes-pi-jobs' - current-parameters: true +- functest-kubernetes-pi-containers: &functest-kubernetes-pi-containers + name: 'functest-kubernetes-pi-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - functest-kubernetes-pi-params: &functest-kubernetes-pi-params name: 'functest-kubernetes-pi-params' @@ -9,60 +12,46 @@ port: tag: - latest: - branch: master slave: lf-virtual1-6 - leguer: - branch: stable/leguer slave: lf-virtual1-5 - kali: - branch: stable/kali slave: lf-virtual1-4 - jerma: - branch: stable/jerma slave: lf-virtual1-3 - iruya: - branch: stable/iruya slave: lf-virtual1-2 - hunter: - branch: stable/hunter slave: lf-virtual1-1 - arm-latest: - branch: master slave: lf-virtual1-6 - arm-leguer: - branch: stable/leguer slave: lf-virtual1-5 - arm-kali: - branch: stable/kali slave: lf-virtual1-4 - arm-jerma: - branch: stable/jerma slave: lf-virtual1-3 - arm-iruya: - branch: stable/iruya slave: lf-virtual1-2 - arm-hunter: - branch: stable/hunter slave: lf-virtual1-1 - arm64-latest: - branch: master slave: lf-virtual1-6 - arm64-leguer: - branch: stable/leguer slave: lf-virtual1-5 - arm64-kali: - branch: stable/kali slave: lf-virtual1-4 - arm64-jerma: - branch: stable/jerma slave: lf-virtual1-3 - arm64-iruya: - branch: stable/iruya slave: lf-virtual1-2 - arm64-hunter: - branch: stable/hunter slave: lf-virtual1-1 +- functest-kubernetes-pi-jobs: &functest-kubernetes-pi-jobs + name: 'functest-kubernetes-pi-jobs' + current-parameters: true + - parameter: name: functest-kubernetes-pi-slave parameters: @@ -76,32 +65,12 @@ - random-string: name: build_tag -- parameter: - name: functest-kubernetes-pi-branch - parameters: - - string: - name: branch - default: '{branch}' - - parameter: name: functest-kubernetes-pi-DEPLOY_SCENARIO parameters: - string: name: DEPLOY_SCENARIO default: k8-nosdn-nofeature-noha -- parameter: - name: functest-kubernetes-pi-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- functest-kubernetes-pi-containers: &functest-kubernetes-pi-containers - name: 'functest-kubernetes-pi-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - functest-kubernetes-pi-run-containers: &functest-kubernetes-pi-run-containers name: 'functest-kubernetes-pi-run-containers' @@ -129,7 +98,7 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -143,15 +112,14 @@ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e NODE_NAME=$slave \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \ - -e DEBUG=$DEBUG \ -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \ - -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ $image run_tests -t {test} -p -r - builder: @@ -168,7 +136,6 @@ fi docker rmi $image || true - - job-template: name: 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull' parameters: @@ -182,9 +149,6 @@ name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-pull' <<: *functest-kubernetes-pi-params container: 'functest-kubernetes-healthcheck' - exclude: - - tag: arm-hunter - - tag: arm64-hunter jobs: - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull' @@ -192,9 +156,6 @@ name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-pull' <<: *functest-kubernetes-pi-params container: 'functest-kubernetes-smoke' - exclude: - - tag: arm-hunter - - tag: arm64-hunter jobs: - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull' @@ -209,9 +170,6 @@ name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-pull' <<: *functest-kubernetes-pi-params container: 'functest-kubernetes-benchmarking' - exclude: - - tag: arm-hunter - - tag: arm64-hunter jobs: - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull' @@ -235,9 +193,6 @@ name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-rmi' <<: *functest-kubernetes-pi-params container: 'functest-kubernetes-healthcheck' - exclude: - - tag: arm-hunter - - tag: arm64-hunter jobs: - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi' @@ -245,9 +200,6 @@ name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-rmi' <<: *functest-kubernetes-pi-params container: 'functest-kubernetes-smoke' - exclude: - - tag: arm-hunter - - tag: arm64-hunter jobs: - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi' @@ -262,9 +214,6 @@ name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-rmi' <<: *functest-kubernetes-pi-params container: 'functest-kubernetes-benchmarking' - exclude: - - tag: arm-hunter - - tag: arm64-hunter jobs: - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi' @@ -284,8 +233,6 @@ build_tag: '' - functest-kubernetes-pi-DEPLOY_SCENARIO: DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-pi-DEBUG: - DEBUG: 'true' builders: - functest-kubernetes-pi-run-containers: <<: *functest-kubernetes-pi-run-containers @@ -297,9 +244,6 @@ test: - k8s_quick - k8s_smoke - exclude: - - tag: arm-hunter - - tag: arm64-hunter privileged: 'false' network: bridge jobs: @@ -312,11 +256,57 @@ test: - xrally_kubernetes - k8s_conformance - exclude: - - tag: arm-hunter - - tag: arm64-hunter + - sig_network + - sig_network_features + - sig_storage privileged: 'false' network: bridge + exclude: + - {'tag': 'leguer', 'test': 'sig_network'} + - {'tag': 'leguer', 'test': 'sig_network_features'} + - {'tag': 'leguer', 'test': 'sig_storage'} + - {'tag': 'kali', 'test': 'sig_network'} + - {'tag': 'kali', 'test': 'sig_network_features'} + - {'tag': 'kali', 'test': 'sig_storage'} + - {'tag': 'jerma', 'test': 'sig_network'} + - {'tag': 'jerma', 'test': 'sig_network_features'} + - {'tag': 'jerma', 'test': 'sig_storage'} + - {'tag': 'iruya', 'test': 'sig_network'} + - {'tag': 'iruya', 'test': 'sig_network_features'} + - {'tag': 'iruya', 'test': 'sig_storage'} + - {'tag': 'hunter', 'test': 'sig_network'} + - {'tag': 'hunter', 'test': 'sig_network_features'} + - {'tag': 'hunter', 'test': 'sig_storage'} + - {'tag': 'arm-leguer', 'test': 'sig_network'} + - {'tag': 'arm-leguer', 'test': 'sig_network_features'} + - {'tag': 'arm-leguer', 'test': 'sig_storage'} + - {'tag': 'arm-kali', 'test': 'sig_network'} + - {'tag': 'arm-kali', 'test': 'sig_network_features'} + - {'tag': 'arm-kali', 'test': 'sig_storage'} + - {'tag': 'arm-jerma', 'test': 'sig_network'} + - {'tag': 'arm-jerma', 'test': 'sig_network_features'} + - {'tag': 'arm-jerma', 'test': 'sig_storage'} + - {'tag': 'arm-iruya', 'test': 'sig_network'} + - {'tag': 'arm-iruya', 'test': 'sig_network_features'} + - {'tag': 'arm-iruya', 'test': 'sig_storage'} + - {'tag': 'arm-hunter', 'test': 'sig_network'} + - {'tag': 'arm-hunter', 'test': 'sig_network_features'} + - {'tag': 'arm-hunter', 'test': 'sig_storage'} + - {'tag': 'arm64-leguer', 'test': 'sig_network'} + - {'tag': 'arm64-leguer', 'test': 'sig_network_features'} + - {'tag': 'arm64-leguer', 'test': 'sig_storage'} + - {'tag': 'arm64-kali', 'test': 'sig_network'} + - {'tag': 'arm64-kali', 'test': 'sig_network_features'} + - {'tag': 'arm64-kali', 'test': 'sig_storage'} + - {'tag': 'arm64-jerma', 'test': 'sig_network'} + - {'tag': 'arm64-jerma', 'test': 'sig_network_features'} + - {'tag': 'arm64-jerma', 'test': 'sig_storage'} + - {'tag': 'arm64-iruya', 'test': 'sig_network'} + - {'tag': 'arm64-iruya', 'test': 'sig_network_features'} + - {'tag': 'arm64-iruya', 'test': 'sig_storage'} + - {'tag': 'arm64-hunter', 'test': 'sig_network'} + - {'tag': 'arm64-hunter', 'test': 'sig_network_features'} + - {'tag': 'arm64-hunter', 'test': 'sig_storage'} jobs: - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run' @@ -339,9 +329,6 @@ container: 'functest-kubernetes-benchmarking' test: - xrally_kubernetes_full - exclude: - - tag: arm-hunter - - tag: arm64-hunter privileged: 'false' network: bridge jobs: @@ -355,19 +342,6 @@ - k8s_vims - helm_vims - cnf_conformance - exclude: - - tag: iruya - test: k8s_vims - - tag: iruya - test: helm_vims - - tag: arm-iruya - test: k8s_vims - - tag: arm-iruya - test: helm_vims - - tag: arm64-iruya - test: k8s_vims - - tag: arm64-iruya - test: helm_vims privileged: 'false' network: bridge jobs: @@ -379,7 +353,7 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -391,14 +365,13 @@ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes \ + -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \ - -e DEBUG=$DEBUG \ -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \ - -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ $image zip_campaign - job-template: @@ -410,8 +383,6 @@ build_tag: '' - functest-kubernetes-pi-DEPLOY_SCENARIO: DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-pi-DEBUG: - DEBUG: 'true' builders: - functest-kubernetes-pi-zip: <<: *functest-kubernetes-pi-containers @@ -419,7 +390,7 @@ - project: name: 'functest-kubernetes-pi-{tag}-zip' <<: *functest-kubernetes-pi-params - container: 'functest-kubernetes-security' + container: 'functest-kubernetes-healthcheck' jobs: - 'functest-kubernetes-pi-{tag}-zip' @@ -435,14 +406,12 @@ build_tag: '' - functest-kubernetes-pi-DEPLOY_SCENARIO: DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-pi-DEBUG: - DEBUG: 'true' properties: - build-blocker: use-build-blocker: true - blocking-level: 'GLOBAL' + blocking-level: 'NODE' blocking-jobs: - - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - '^functest-kubernetes-pi-{tag}-(daily|docker|review)$' builders: - multijob: name: remove former images @@ -484,6 +453,12 @@ <<: *functest-kubernetes-pi-jobs - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-k8s_conformance-run' <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_network-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_network_features-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_storage-run' + <<: *functest-kubernetes-pi-jobs - multijob: name: ollivier/functest-kubernetes-security:{tag} projects: @@ -513,9 +488,8 @@ - name: 'functest-kubernetes-pi-{tag}-zip' <<: *functest-kubernetes-pi-jobs - - project: - name: 'functest-kubernetes-pi' + name: 'functest-kubernetes-pi-daily' <<: *functest-kubernetes-pi-params jobs: - 'functest-kubernetes-pi-{tag}-daily' @@ -530,4 +504,4 @@ - last-success - last-failure - last-duration - regex: ^functest-kubernetes-pi-(arm.*-|amd64-)*[a-z]+-daily$ + regex: ^functest-kubernetes-pi-[a-z-0-9.]+-daily$ diff --git a/jjb/functest/functest-kubernetes-project-jobs.yaml b/jjb/functest/functest-kubernetes-project-jobs.yaml deleted file mode 100644 index 956527656..000000000 --- a/jjb/functest/functest-kubernetes-project-jobs.yaml +++ /dev/null @@ -1,86 +0,0 @@ ---- -- functest-kubernetes-project-params: &functest-kubernetes-project-params - name: 'functest-kubernetes-project-params' - tag: - - latest: - branch: master - slave: lf-virtual1 - - leguer: - branch: stable/leguer - slave: lf-virtual1 - - kali: - branch: stable/kali - slave: lf-virtual1 - - jerma: - branch: stable/jerma - slave: lf-virtual1 - - iruya: - branch: stable/iruya - slave: lf-virtual1 - - hunter: - branch: stable/hunter - slave: lf-virtual1 - -- builder: - name: functest-kubernetes-run-tox - builders: - - shell: tox - -- trigger: - name: functest-kubernetes-project-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest-kubernetes' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - -- parameter: - name: functest-kubernetes-project-slave - parameters: - - label: - name: slave - default: '{slave}' - -- scm: - name: functest-kubernetes-project-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest-kubernetes - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - -- job-template: - name: 'functest-kubernetes-run-tox-{tag}' - triggers: - - functest-kubernetes-project-patchset-created: - branch: '{branch}' - scm: - - functest-kubernetes-project-scm: - ref: $GERRIT_REFSPEC - parameters: - - functest-kubernetes-project-slave: - slave: '{slave}' - builders: - - functest-kubernetes-run-tox - -- project: - name: 'functest-kubernetes-run-tox' - <<: *functest-kubernetes-project-params - jobs: - - 'functest-kubernetes-run-tox-{tag}' diff --git a/jjb/functest/functest-kubernetes.yaml b/jjb/functest/functest-kubernetes.yaml index 01022dfff..2c584b309 100644 --- a/jjb/functest/functest-kubernetes.yaml +++ b/jjb/functest/functest-kubernetes.yaml @@ -1,7 +1,10 @@ --- -- functest-kubernetes-jobs: &functest-kubernetes-jobs - name: 'functest-kubernetes-jobs' - current-parameters: true +- functest-kubernetes-containers: &functest-kubernetes-containers + name: 'functest-kubernetes-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - functest-kubernetes-params: &functest-kubernetes-params name: 'functest-kubernetes-params' @@ -9,23 +12,45 @@ port: tag: - latest: + from: + buildargs: branch: master slave: lf-virtual1-6 + dependency: 3.13 - leguer: + from: + buildargs: branch: stable/leguer slave: lf-virtual1-5 + dependency: 3.12 - kali: + from: + buildargs: branch: stable/kali slave: lf-virtual1-4 + dependency: 3.11 - jerma: + from: + buildargs: branch: stable/jerma slave: lf-virtual1-3 + dependency: 3.10 - iruya: + from: + buildargs: branch: stable/iruya slave: lf-virtual1-2 + dependency: 3.9 - hunter: + from: + buildargs: branch: stable/hunter slave: lf-virtual1-1 + dependency: 3.9 + +- functest-kubernetes-jobs: &functest-kubernetes-jobs + name: 'functest-kubernetes-jobs' + current-parameters: true - parameter: name: functest-kubernetes-slave @@ -40,32 +65,12 @@ - random-string: name: build_tag -- parameter: - name: functest-kubernetes-branch - parameters: - - string: - name: branch - default: '{branch}' - - parameter: name: functest-kubernetes-DEPLOY_SCENARIO parameters: - string: name: DEPLOY_SCENARIO default: k8-nosdn-nofeature-noha -- parameter: - name: functest-kubernetes-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- functest-kubernetes-containers: &functest-kubernetes-containers - name: 'functest-kubernetes-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - functest-kubernetes-run-containers: &functest-kubernetes-run-containers name: 'functest-kubernetes-run-containers' @@ -93,7 +98,7 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -107,15 +112,14 @@ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e NODE_NAME=$slave \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \ - -e DEBUG=$DEBUG \ -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \ - -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ $image run_tests -t {test} -p -r - builder: @@ -132,43 +136,6 @@ fi docker rmi $image || true -- functest-kubernetes-build-containers: &functest-kubernetes-build-containers - name: 'functest-kubernetes-build-containers' - <<: *functest-kubernetes-containers - ref_arg: '{ref_arg}' - path: '{path}' - -- builder: - name: functest-kubernetes-build-containers - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - if [ "{ref_arg}" = "None" ]; then - build_arg="" - else - build_arg="--build-arg {ref_arg}={ref}" - fi - cd {path} - docker build $build_arg \ - --pull=false --no-cache --force-rm=true \ - -t $image . - -- scm: - name: functest-kubernetes-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest-kubernetes - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - - job-template: name: 'functest-kubernetes-{repo}-{container}-{tag}-pull' parameters: @@ -266,8 +233,6 @@ build_tag: '' - functest-kubernetes-DEPLOY_SCENARIO: DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-DEBUG: - DEBUG: 'true' builders: - functest-kubernetes-run-containers: <<: *functest-kubernetes-run-containers @@ -291,8 +256,27 @@ test: - xrally_kubernetes - k8s_conformance + - sig_network + - sig_network_features + - sig_storage privileged: 'false' network: bridge + exclude: + - {'tag': 'leguer', 'test': 'sig_network'} + - {'tag': 'leguer', 'test': 'sig_network_features'} + - {'tag': 'leguer', 'test': 'sig_storage'} + - {'tag': 'kali', 'test': 'sig_network'} + - {'tag': 'kali', 'test': 'sig_network_features'} + - {'tag': 'kali', 'test': 'sig_storage'} + - {'tag': 'jerma', 'test': 'sig_network'} + - {'tag': 'jerma', 'test': 'sig_network_features'} + - {'tag': 'jerma', 'test': 'sig_storage'} + - {'tag': 'iruya', 'test': 'sig_network'} + - {'tag': 'iruya', 'test': 'sig_network_features'} + - {'tag': 'iruya', 'test': 'sig_storage'} + - {'tag': 'hunter', 'test': 'sig_network'} + - {'tag': 'hunter', 'test': 'sig_network_features'} + - {'tag': 'hunter', 'test': 'sig_storage'} jobs: - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run' @@ -328,11 +312,6 @@ - k8s_vims - helm_vims - cnf_conformance - exclude: - - tag: iruya - test: k8s_vims - - tag: iruya - test: helm_vims privileged: 'false' network: bridge jobs: @@ -344,7 +323,7 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -356,14 +335,13 @@ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes \ + -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \ - -e DEBUG=$DEBUG \ -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \ - -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ $image zip_campaign - job-template: @@ -375,8 +353,6 @@ build_tag: '' - functest-kubernetes-DEPLOY_SCENARIO: DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-DEBUG: - DEBUG: 'true' builders: - functest-kubernetes-zip: <<: *functest-kubernetes-containers @@ -400,14 +376,12 @@ build_tag: '' - functest-kubernetes-DEPLOY_SCENARIO: DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-DEBUG: - DEBUG: 'true' properties: - build-blocker: use-build-blocker: true - blocking-level: 'GLOBAL' + blocking-level: 'NODE' blocking-jobs: - - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - '^functest-kubernetes-{tag}-(daily|docker|review)$' builders: - multijob: name: remove former images @@ -418,7 +392,7 @@ <<: *functest-kubernetes-jobs - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi' <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-pull' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi' <<: *functest-kubernetes-jobs - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi' <<: *functest-kubernetes-jobs @@ -449,6 +423,12 @@ <<: *functest-kubernetes-jobs - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run' <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network_features-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run' + <<: *functest-kubernetes-jobs - multijob: name: opnfv/functest-kubernetes-security:{tag} projects: @@ -478,134 +458,272 @@ - name: 'functest-kubernetes-{tag}-zip' <<: *functest-kubernetes-jobs +- project: + name: 'functest-kubernetes-daily' + <<: *functest-kubernetes-params + jobs: + - 'functest-kubernetes-{tag}-daily' + +- view: + name: functest-kubernetes + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-kubernetes-[a-z0-9.]+-daily$ + +- functest-kubernetes-build-containers: &functest-kubernetes-build-containers + name: 'functest-kubernetes-build-containers' + <<: *functest-kubernetes-containers + ref_arg: '{ref_arg}' + path: '{path}' + buildargs: '{buildargs}' + from: '{from}' + +- builder: + name: functest-kubernetes-build-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + build_args="" + if [ "{buildargs}" != "None" ]; then + build_args="{buildargs}" + fi + if [ "{ref_arg}" != "None" ]; then + build_args="$build_args --build-arg {ref_arg}={ref}" + fi + cd {path} + if [ "{from}" != "None" ]; then + sed -i {from} Dockerfile + fi + docker build $build_args \ + --pull=false --no-cache --force-rm=true \ + -t $image . + +- scm: + name: functest-kubernetes-scm + scm: + - git: + url: 'https://gerrit.opnfv.org/gerrit/functest-kubernetes' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + branches: + - '{ref}' + +- functest-kubernetes-dep: &functest-kubernetes-dep + name: 'functest-kubernetes-containers' + repo: '{repo}' + port: '{port}' + tag: '{tag}' + dependency: '{dependency}' + +- builder: + name: functest-kubernetes-pull-dep-images + builders: + - shell: | + set +x + if [ "_" = "_" ]; then + image=alpine:{dependency} + elif [ "_" = "None" ]; then + image=_/alpine:{dependency} + else + image=_:/alpine{dependency} + fi + docker pull $image || true + +- builder: + name: functest-kubernetes-remove-dep-images + builders: + - shell: | + set +x + if [ "_" = "_" ]; then + image=alpine:{dependency} + elif [ "_" = "None" ]; then + image=_/alpine:{dependency} + else + image=_:/alpine{dependency} + fi + docker rmi $image || true + - job-template: - name: 'functest-kubernetes-{repo}-{container}-{tag}-gate' + name: 'functest-kubernetes-{repo}-{tag}-dep-pull' + parameters: + - functest-kubernetes-slave: + slave: '{slave}' + builders: + - functest-kubernetes-pull-dep-images: + <<: *functest-kubernetes-dep + +- project: + name: 'functest-kubernetes-{repo}-{tag}-dep-pull' + <<: *functest-kubernetes-params + jobs: + - 'functest-kubernetes-{repo}-{tag}-dep-pull' + +- job-template: + name: 'functest-kubernetes-{repo}-{tag}-dep-rmi' parameters: - functest-kubernetes-slave: slave: '{slave}' + builders: + - functest-kubernetes-remove-dep-images: + <<: *functest-kubernetes-dep + +- project: + name: 'functest-kubernetes-{repo}-{tag}-dep-rmi' + <<: *functest-kubernetes-params + jobs: + - 'functest-kubernetes-{repo}-{tag}-dep-rmi' + +- builder: + name: functest-kubernetes-tox + builders: + - shell: | + set +x + apt-get update && apt-get install software-properties-common gpg -y + add-apt-repository -y ppa:deadsnakes/ppa + apt-get update && apt-get install python3.8 python3.8-dev \ + python3.8-distutils \ + python3.7 python3.7-dev python3.6 python3.6-dev \ + python python-dev python3-pip enchant -y + pip3 install tox tox-pip-version + tox + +- job-template: + name: 'functest-kubernetes-{tag}-tox' scm: - functest-kubernetes-scm: ref: $GERRIT_REFSPEC + triggers: + - functest-kubernetes-patchset-created: + branch: '{branch}' + parameters: + - functest-kubernetes-slave: + slave: '{slave}' builders: - - functest-kubernetes-build-containers: - <<: *functest-kubernetes-build-containers - ref: $GERRIT_REFSPEC + - functest-kubernetes-tox: + +- project: + name: functest-kubernetes-tox + <<: *functest-kubernetes-params + jobs: + - 'functest-kubernetes-{tag}-tox' - job-template: - name: 'functest-kubernetes-{repo}-{container}-{tag}-check' + name: 'functest-kubernetes-{repo}-{container}-{tag}-gate' parameters: - functest-kubernetes-slave: slave: '{slave}' - - functest-kubernetes-branch: - branch: '{branch}' scm: - functest-kubernetes-scm: - ref: $branch + ref: $GERRIT_REFSPEC builders: - functest-kubernetes-build-containers: <<: *functest-kubernetes-build-containers - ref: $branch - -- project: - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-rmi' - repo: _ - port: - container: golang - tag: '1.15-alpine3.12' - slave: master - jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-pull' - repo: _ - port: - container: golang - tag: '1.15-alpine3.12' - slave: master - jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-pull' + ref: $GERRIT_REFSPEC + buildargs: '{buildargs}' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate <<: *functest-kubernetes-params container: functest-kubernetes-core ref_arg: BRANCH path: docker/core jobs: - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate <<: *functest-kubernetes-params container: functest-kubernetes-healthcheck ref_arg: path: docker/healthcheck jobs: - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate <<: *functest-kubernetes-params container: functest-kubernetes-cnf ref_arg: BRANCH path: docker/cnf jobs: - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate <<: *functest-kubernetes-params container: functest-kubernetes-security ref_arg: BRANCH path: docker/security jobs: - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate <<: *functest-kubernetes-params container: functest-kubernetes-smoke ref_arg: path: docker/smoke jobs: - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate <<: *functest-kubernetes-params container: functest-kubernetes-benchmarking ref_arg: path: docker/benchmarking jobs: - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' + + +- trigger: + name: functest-kubernetes-patchset-created + triggers: + - gerrit: + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: 'functest-kubernetes' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' - job-template: - name: 'functest-kubernetes-{tag}-check' + name: 'functest-kubernetes-{tag}-review' project-type: multijob + triggers: + - functest-kubernetes-patchset-created: + branch: '{branch}' parameters: - functest-kubernetes-slave: slave: '{slave}' - functest-kubernetes-build_tag: build_tag: '' - - functest-kubernetes-branch: - branch: '{branch}' - functest-kubernetes-DEPLOY_SCENARIO: DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-DEBUG: - DEBUG: 'true' properties: - build-blocker: use-build-blocker: true - blocking-level: 'GLOBAL' + blocking-level: 'NODE' blocking-jobs: - - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - '^functest-kubernetes-{tag}-(daily|docker|review)$' builders: - multijob: name: remove former images @@ -621,38 +739,38 @@ - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi' <<: *functest-kubernetes-jobs - multijob: - name: remove dependencies + name: remove dependency projects: - - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-rmi' + - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi' <<: *functest-kubernetes-jobs - multijob: - name: pull dependencies + name: pull dependency projects: - - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-pull' + - name: 'functest-kubernetes-{repo}-{tag}-dep-pull' <<: *functest-kubernetes-jobs - multijob: name: build opnfv/functest-kubernetes-core projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-check' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate' <<: *functest-kubernetes-jobs - multijob: - name: build opnfv/functest-kubernetes-healthcheck + name: build containers projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-check' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate' <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-check' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate' <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-check' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate' <<: *functest-kubernetes-jobs - multijob: - name: build containers + name: build opnfv/functest-kubernetes-smoke projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-check' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate' <<: *functest-kubernetes-jobs - multijob: name: build opnfv/functest-kubernetes-benchmarking projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-check' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate' <<: *functest-kubernetes-jobs - multijob: name: opnfv/functest-kubernetes-healthcheck:{tag} @@ -668,10 +786,11 @@ <<: *functest-kubernetes-jobs - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run' <<: *functest-kubernetes-jobs - - multijob: - name: opnfv/functest-kubernetes-benchmarking:{tag} - projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network_features-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run' <<: *functest-kubernetes-jobs - multijob: name: opnfv/functest-kubernetes-security:{tag} @@ -682,6 +801,11 @@ <<: *functest-kubernetes-jobs - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run' <<: *functest-kubernetes-jobs + - multijob: + name: opnfv/functest-kubernetes-benchmarking:{tag} + projects: + - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run' + <<: *functest-kubernetes-jobs - multijob: name: opnfv/functest-kubernetes-cnf:{tag} projects: @@ -692,151 +816,257 @@ - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_conformance-run' <<: *functest-kubernetes-jobs +- project: + name: 'functest-kubernetes-review' + <<: *functest-kubernetes-params + jobs: + - 'functest-kubernetes-{tag}-review' + +- view: + name: functest-kubernetes-review + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-kubernetes-[a-z0-9.]+-review$ + +- view: + name: functest-kubernetes-tox + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-kubernetes-[a-z0-9.]+-tox$ + +- builder: + name: functest-kubernetes-push-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + docker push $image + - trigger: - name: functest-kubernetes-patchset-created + name: functest-kubernetes-commit triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest-kubernetes' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false + - pollscm: + cron: "*/30 * * * *" - job-template: - name: 'functest-kubernetes-{tag}-gate' + name: 'functest-kubernetes-{repo}-{container}-{tag}-build' + parameters: + - functest-kubernetes-slave: + slave: '{slave}' + scm: + - functest-kubernetes-scm: + ref: '{branch}' + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + buildargs: '{buildargs}' + - functest-kubernetes-push-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build + <<: *functest-kubernetes-params + container: functest-kubernetes-core + ref_arg: BRANCH + path: docker/core + jobs: + - 'functest-kubernetes-{repo}-{container}-{tag}-build' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build + <<: *functest-kubernetes-params + container: functest-kubernetes-healthcheck + ref_arg: + path: docker/healthcheck + jobs: + - 'functest-kubernetes-{repo}-{container}-{tag}-build' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build + <<: *functest-kubernetes-params + container: functest-kubernetes-cnf + ref_arg: BRANCH + path: docker/cnf + jobs: + - 'functest-kubernetes-{repo}-{container}-{tag}-build' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build + <<: *functest-kubernetes-params + container: functest-kubernetes-security + ref_arg: BRANCH + path: docker/security + jobs: + - 'functest-kubernetes-{repo}-{container}-{tag}-build' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build + <<: *functest-kubernetes-params + container: functest-kubernetes-smoke + ref_arg: + path: docker/smoke + jobs: + - 'functest-kubernetes-{repo}-{container}-{tag}-build' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build + <<: *functest-kubernetes-params + container: functest-kubernetes-benchmarking + ref_arg: + path: docker/benchmarking + jobs: + - 'functest-kubernetes-{repo}-{container}-{tag}-build' + + +- job-template: + name: 'functest-kubernetes-{tag}-docker' project-type: multijob triggers: - - functest-kubernetes-patchset-created: - branch: '{branch}' + - functest-kubernetes-commit + scm: + - functest-kubernetes-scm: + ref: '{branch}' parameters: - functest-kubernetes-slave: slave: '{slave}' - - functest-kubernetes-build_tag: - build_tag: '' - - functest-kubernetes-DEPLOY_SCENARIO: - DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-DEBUG: - DEBUG: 'true' properties: - build-blocker: use-build-blocker: true - blocking-level: 'GLOBAL' + blocking-level: 'NODE' blocking-jobs: - - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - '^functest-kubernetes-{tag}-(daily|docker|review)$' builders: - multijob: - name: remove former images + name: remove dependency projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi' + - name: 'functest-kubernetes-{repo}-{tag}-dep-rmi' <<: *functest-kubernetes-jobs - multijob: - name: remove dependencies + name: pull dependency projects: - - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-rmi' - <<: *functest-kubernetes-jobs - - multijob: - name: pull dependencies - projects: - - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-pull' + - name: 'functest-kubernetes-{repo}-{tag}-dep-pull' <<: *functest-kubernetes-jobs - multijob: name: build opnfv/functest-kubernetes-core projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate' - <<: *functest-kubernetes-jobs - - multijob: - name: build opnfv/functest-kubernetes-healthcheck - projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build' <<: *functest-kubernetes-jobs - multijob: name: build containers projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate' - <<: *functest-kubernetes-jobs - - multijob: - name: build opnfv/functest-kubernetes-benchmarking - projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate' - <<: *functest-kubernetes-jobs - - multijob: - name: opnfv/functest-kubernetes-healthcheck:{tag} - projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run' - <<: *functest-kubernetes-jobs - - multijob: - name: opnfv/functest-kubernetes-smoke:{tag} - projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run' - <<: *functest-kubernetes-jobs - - multijob: - name: opnfv/functest-kubernetes-security:{tag} - projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build' <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build' <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build' <<: *functest-kubernetes-jobs - multijob: - name: opnfv/functest-kubernetes-benchmarking:{tag} + name: build opnfv/functest-kubernetes-smoke projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build' <<: *functest-kubernetes-jobs - multijob: - name: opnfv/functest-kubernetes-cnf:{tag} + name: build opnfv/functest-kubernetes-benchmarking projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_conformance-run' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build' <<: *functest-kubernetes-jobs +- builder: + name: functest-kubernetes-trivy + builders: + - shell: | + apt-get update && apt-get install curl -y + curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b . + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + ./trivy --exit-code 1 $image + +- job-template: + name: 'functest-kubernetes-{repo}-{container}-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-slave: + slave: '{slave}' + builders: + - functest-kubernetes-trivy: + <<: *functest-kubernetes-containers + - project: - name: 'functest-kubernetes' + name: 'functest-kubernetes-opnfv-functest-kubernetes-core-trivy' <<: *functest-kubernetes-params + container: 'functest-kubernetes-core' jobs: - - 'functest-kubernetes-{tag}-daily' + - 'functest-kubernetes-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-trivy' + <<: *functest-kubernetes-params + container: 'functest-kubernetes-healthcheck' + jobs: + - 'functest-kubernetes-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-trivy' + <<: *functest-kubernetes-params + container: 'functest-kubernetes-cnf' + jobs: + - 'functest-kubernetes-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-trivy' + <<: *functest-kubernetes-params + container: 'functest-kubernetes-security' + jobs: + - 'functest-kubernetes-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-trivy' + <<: *functest-kubernetes-params + container: 'functest-kubernetes-smoke' + jobs: + - 'functest-kubernetes-{repo}-{container}-{tag}-trivy' - project: - name: 'functest-kubernetes-gate' + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-trivy' <<: *functest-kubernetes-params + container: 'functest-kubernetes-benchmarking' jobs: - - 'functest-kubernetes-{tag}-check' - - 'functest-kubernetes-{tag}-gate' + - 'functest-kubernetes-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-kubernetes' + <<: *functest-kubernetes-params + jobs: + - 'functest-kubernetes-{tag}-docker' - view: - name: functest-kubernetes + name: functest-kubernetes-docker view-type: list columns: - status @@ -845,10 +1075,10 @@ - last-success - last-failure - last-duration - regex: ^functest-kubernetes-(amd64-)*[a-z]+-daily$ + regex: ^functest-kubernetes-[a-z0-9.]+-docker$ - view: - name: functest-kubernetes-gate + name: functest-kubernetes-trivy view-type: list columns: - status @@ -857,4 +1087,4 @@ - last-success - last-failure - last-duration - regex: ^functest-kubernetes-(amd64-)*[a-z]+-gate$ + regex: (?!functest-kubernetes-pi)(?!functest-kubernetes-ng)^functest-kubernetes-[a-z-0-9.]+-trivy$ diff --git a/jjb/functest/functest-pi.yaml b/jjb/functest/functest-pi.yaml index 045a38ea6..78635d7c8 100644 --- a/jjb/functest/functest-pi.yaml +++ b/jjb/functest/functest-pi.yaml @@ -1,7 +1,10 @@ --- -- functest-pi-jobs: &functest-pi-jobs - name: 'functest-pi-jobs' - current-parameters: true +- functest-pi-containers: &functest-pi-containers + name: 'functest-pi-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - functest-pi-params: &functest-pi-params name: 'functest-pi-params' @@ -9,77 +12,63 @@ port: tag: - latest: - branch: master slave: lf-virtual9 - dashboard_url: http://172.30.13.94 + DASHBOARD_URL: http://172.30.13.94 - leguer: - branch: stable/leguer slave: lf-virtual9 - dashboard_url: http://172.30.13.94 + DASHBOARD_URL: http://172.30.13.94 - kali: - branch: stable/kali slave: lf-pod4-3 - dashboard_url: http://172.30.12.88 + DASHBOARD_URL: http://172.30.12.88 - jerma: - branch: stable/jerma slave: lf-pod4 - dashboard_url: http://172.30.12.83 + DASHBOARD_URL: http://172.30.12.83 - iruya: - branch: stable/iruya slave: lf-virtual4 - dashboard_url: http://172.30.13.89 + DASHBOARD_URL: http://172.30.13.89 - hunter: - branch: stable/hunter slave: lf-virtual6 - dashboard_url: http://172.30.13.91 + DASHBOARD_URL: http://172.30.13.91 - arm-latest: - branch: master slave: lf-virtual9 - dashboard_url: http://172.30.13.94 + DASHBOARD_URL: http://172.30.13.94 - arm-leguer: - branch: stable/leguer slave: lf-virtual9 - dashboard_url: http://172.30.13.94 + DASHBOARD_URL: http://172.30.13.94 - arm-kali: - branch: stable/kali slave: lf-pod4-3 - dashboard_url: http://172.30.12.88 + DASHBOARD_URL: http://172.30.12.88 - arm-jerma: - branch: stable/jerma slave: lf-pod4 - dashboard_url: http://172.30.12.83 + DASHBOARD_URL: http://172.30.12.83 - arm-iruya: - branch: stable/iruya slave: lf-virtual4 - dashboard_url: http://172.30.13.89 + DASHBOARD_URL: http://172.30.13.89 - arm-hunter: - branch: stable/hunter slave: lf-virtual6 - dashboard_url: http://172.30.13.91 + DASHBOARD_URL: http://172.30.13.91 - arm64-latest: - branch: master slave: lf-virtual9 - dashboard_url: http://172.30.13.94 + DASHBOARD_URL: http://172.30.13.94 - arm64-leguer: - branch: stable/leguer slave: lf-virtual9 - dashboard_url: http://172.30.13.94 + DASHBOARD_URL: http://172.30.13.94 - arm64-kali: - branch: stable/kali slave: lf-pod4-3 - dashboard_url: http://172.30.12.88 + DASHBOARD_URL: http://172.30.12.88 - arm64-jerma: - branch: stable/jerma slave: lf-pod4 - dashboard_url: http://172.30.12.83 + DASHBOARD_URL: http://172.30.12.83 - arm64-iruya: - branch: stable/iruya slave: lf-virtual4 - dashboard_url: http://172.30.13.89 + DASHBOARD_URL: http://172.30.13.89 - arm64-hunter: - branch: stable/hunter slave: lf-virtual6 - dashboard_url: http://172.30.13.91 + DASHBOARD_URL: http://172.30.13.91 + +- functest-pi-jobs: &functest-pi-jobs + name: 'functest-pi-jobs' + current-parameters: true - parameter: name: functest-pi-slave @@ -94,19 +83,6 @@ - random-string: name: build_tag -- parameter: - name: functest-pi-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: - name: functest-pi-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - parameter: name: functest-pi-EXTERNAL_NETWORK parameters: @@ -126,20 +102,13 @@ name: IMAGE_PROPERTIES default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi -- functest-pi-containers: &functest-pi-containers - name: 'functest-pi-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - - functest-pi-run-containers: &functest-pi-run-containers name: 'functest-pi-run-containers' <<: *functest-pi-containers test: '{test}' - dashboard_url: '{dashboard_url}' privileged: '{privileged}' network: '{network}' + DASHBOARD_URL: '{DASHBOARD_URL}' - builder: name: functest-pi-pull-containers @@ -160,7 +129,7 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -168,33 +137,25 @@ else image={repo}:{port}/{container}:{tag} fi - volumes="" - case "{tag}" in - arm-hunter) - volumes="-v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static" ;; - arm64-hunter) - volumes="-v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static" ;; - esac sudo docker run --rm \ --privileged={privileged} \ --network={network} \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/functest/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e NODE_NAME=$slave \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ - -e DASHBOARD_URL={dashboard_url} \ -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \ -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \ - -v /home/opnfv/functest/.boto:/root/.boto \ + -e DASHBOARD_URL={DASHBOARD_URL} \ -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ -v /home/opnfv/functest/images:/home/opnfv/functest/images \ - $volumes $image run_tests -t {test} -r -p + $image run_tests -t {test} -p -r - builder: name: functest-pi-remove-images @@ -319,8 +280,6 @@ slave: '{slave}' - functest-pi-build_tag: build_tag: '' - - functest-pi-DEBUG: - DEBUG: 'true' - functest-pi-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-pi-VOLUME_DEVICE_NAME: @@ -381,219 +340,114 @@ - tempest_barbican - tempest_octavia - tempest_cyborg - exclude: - - tag: latest - test: refstack_defcore - - tag: latest - test: networking-bgpvpn - - tag: latest - test: networking-sfc - - tag: latest - test: patrole - - tag: leguer - test: refstack_defcore - - tag: leguer - test: networking-bgpvpn - - tag: leguer - test: networking-sfc - - tag: leguer - test: patrole - - tag: kali - test: refstack_defcore - - tag: kali - test: networking-bgpvpn - - tag: kali - test: networking-sfc - - tag: kali - test: patrole_admin - - tag: kali - test: patrole_member - - tag: kali - test: patrole_reader - - tag: jerma - test: refstack_defcore - - tag: jerma - test: networking-bgpvpn - - tag: jerma - test: networking-sfc - - tag: jerma - test: patrole_admin - - tag: jerma - test: patrole_member - - tag: jerma - test: patrole_reader - - tag: jerma - test: tempest_cyborg - - tag: iruya - test: refstack_defcore - - tag: iruya - test: patrole_admin - - tag: iruya - test: patrole_member - - tag: iruya - test: patrole_reader - - tag: iruya - test: tempest_cyborg - - tag: hunter - test: refstack_compute - - tag: hunter - test: refstack_object - - tag: hunter - test: refstack_platform - - tag: hunter - test: tempest_octavia - - tag: hunter - test: tempest_telemetry - - tag: hunter - test: patrole_admin - - tag: hunter - test: patrole_member - - tag: hunter - test: patrole_reader - - tag: hunter - test: tempest_cyborg - - tag: arm-latest - test: refstack_defcore - - tag: arm-latest - test: networking-bgpvpn - - tag: arm-latest - test: networking-sfc - - tag: arm-latest - test: patrole - - tag: arm-leguer - test: refstack_defcore - - tag: arm-leguer - test: networking-bgpvpn - - tag: arm-leguer - test: networking-sfc - - tag: arm-leguer - test: patrole - - tag: arm-kali - test: refstack_defcore - - tag: arm-kali - test: networking-bgpvpn - - tag: arm-kali - test: networking-sfc - - tag: arm-kali - test: patrole_admin - - tag: arm-kali - test: patrole_member - - tag: arm-kali - test: patrole_reader - - tag: arm-jerma - test: refstack_defcore - - tag: arm-jerma - test: networking-bgpvpn - - tag: arm-jerma - test: networking-sfc - - tag: arm-jerma - test: patrole_admin - - tag: arm-jerma - test: patrole_member - - tag: arm-jerma - test: patrole_reader - - tag: arm-jerma - test: tempest_cyborg - - tag: arm-iruya - test: refstack_defcore - - tag: arm-iruya - test: patrole_admin - - tag: arm-iruya - test: patrole_member - - tag: arm-iruya - test: patrole_reader - - tag: arm-iruya - test: tempest_cyborg - - tag: arm-hunter - test: refstack_compute - - tag: arm-hunter - test: refstack_object - - tag: arm-hunter - test: refstack_platform - - tag: arm-hunter - test: tempest_octavia - - tag: arm-hunter - test: tempest_telemetry - - tag: arm-hunter - test: patrole_admin - - tag: arm-hunter - test: patrole_member - - tag: arm-hunter - test: patrole_reader - - tag: arm-hunter - test: tempest_cyborg - - tag: arm64-latest - test: refstack_defcore - - tag: arm64-latest - test: networking-bgpvpn - - tag: arm64-latest - test: networking-sfc - - tag: arm64-latest - test: patrole - - tag: arm64-leguer - test: refstack_defcore - - tag: arm64-leguer - test: networking-bgpvpn - - tag: arm64-leguer - test: networking-sfc - - tag: arm64-leguer - test: patrole - - tag: arm64-kali - test: refstack_defcore - - tag: arm64-kali - test: networking-bgpvpn - - tag: arm64-kali - test: networking-sfc - - tag: arm64-kali - test: patrole_admin - - tag: arm64-kali - test: patrole_member - - tag: arm64-kali - test: patrole_reader - - tag: arm64-jerma - test: refstack_defcore - - tag: arm64-jerma - test: networking-bgpvpn - - tag: arm64-jerma - test: networking-sfc - - tag: arm64-jerma - test: patrole_admin - - tag: arm64-jerma - test: patrole_member - - tag: arm64-jerma - test: patrole_reader - - tag: arm64-jerma - test: tempest_cyborg - - tag: arm64-iruya - test: refstack_defcore - - tag: arm64-iruya - test: patrole_admin - - tag: arm64-iruya - test: patrole_member - - tag: arm64-iruya - test: patrole_reader - - tag: arm64-iruya - test: tempest_cyborg - - tag: arm64-hunter - test: refstack_compute - - tag: arm64-hunter - test: refstack_object - - tag: arm64-hunter - test: refstack_platform - - tag: arm64-hunter - test: tempest_octavia - - tag: arm64-hunter - test: tempest_telemetry - - tag: arm64-hunter - test: patrole_admin - - tag: arm64-hunter - test: patrole_member - - tag: arm64-hunter - test: patrole_reader - - tag: arm64-hunter - test: tempest_cyborg privileged: 'false' network: bridge + exclude: + - {'tag': 'latest', 'test': 'refstack_defcore'} + - {'tag': 'latest', 'test': 'networking-bgpvpn'} + - {'tag': 'latest', 'test': 'networking-sfc'} + - {'tag': 'latest', 'test': 'patrole'} + - {'tag': 'leguer', 'test': 'refstack_defcore'} + - {'tag': 'leguer', 'test': 'networking-bgpvpn'} + - {'tag': 'leguer', 'test': 'networking-sfc'} + - {'tag': 'leguer', 'test': 'patrole'} + - {'tag': 'kali', 'test': 'refstack_defcore'} + - {'tag': 'kali', 'test': 'networking-bgpvpn'} + - {'tag': 'kali', 'test': 'networking-sfc'} + - {'tag': 'kali', 'test': 'patrole_admin'} + - {'tag': 'kali', 'test': 'patrole_member'} + - {'tag': 'kali', 'test': 'patrole_reader'} + - {'tag': 'jerma', 'test': 'refstack_defcore'} + - {'tag': 'jerma', 'test': 'networking-bgpvpn'} + - {'tag': 'jerma', 'test': 'networking-sfc'} + - {'tag': 'jerma', 'test': 'patrole_admin'} + - {'tag': 'jerma', 'test': 'patrole_member'} + - {'tag': 'jerma', 'test': 'patrole_reader'} + - {'tag': 'jerma', 'test': 'tempest_cyborg'} + - {'tag': 'iruya', 'test': 'refstack_defcore'} + - {'tag': 'iruya', 'test': 'patrole_admin'} + - {'tag': 'iruya', 'test': 'patrole_member'} + - {'tag': 'iruya', 'test': 'patrole_reader'} + - {'tag': 'iruya', 'test': 'tempest_cyborg'} + - {'tag': 'hunter', 'test': 'refstack_compute'} + - {'tag': 'hunter', 'test': 'refstack_object'} + - {'tag': 'hunter', 'test': 'refstack_platform'} + - {'tag': 'hunter', 'test': 'tempest_octavia'} + - {'tag': 'hunter', 'test': 'tempest_telemetry'} + - {'tag': 'hunter', 'test': 'patrole_admin'} + - {'tag': 'hunter', 'test': 'patrole_member'} + - {'tag': 'hunter', 'test': 'patrole_reader'} + - {'tag': 'hunter', 'test': 'tempest_cyborg'} + - {'tag': 'arm-latest', 'test': 'refstack_defcore'} + - {'tag': 'arm-latest', 'test': 'networking-bgpvpn'} + - {'tag': 'arm-latest', 'test': 'networking-sfc'} + - {'tag': 'arm-latest', 'test': 'patrole'} + - {'tag': 'arm-leguer', 'test': 'refstack_defcore'} + - {'tag': 'arm-leguer', 'test': 'networking-bgpvpn'} + - {'tag': 'arm-leguer', 'test': 'networking-sfc'} + - {'tag': 'arm-leguer', 'test': 'patrole'} + - {'tag': 'arm-kali', 'test': 'refstack_defcore'} + - {'tag': 'arm-kali', 'test': 'networking-bgpvpn'} + - {'tag': 'arm-kali', 'test': 'networking-sfc'} + - {'tag': 'arm-kali', 'test': 'patrole_admin'} + - {'tag': 'arm-kali', 'test': 'patrole_member'} + - {'tag': 'arm-kali', 'test': 'patrole_reader'} + - {'tag': 'arm-jerma', 'test': 'refstack_defcore'} + - {'tag': 'arm-jerma', 'test': 'networking-bgpvpn'} + - {'tag': 'arm-jerma', 'test': 'networking-sfc'} + - {'tag': 'arm-jerma', 'test': 'patrole_admin'} + - {'tag': 'arm-jerma', 'test': 'patrole_member'} + - {'tag': 'arm-jerma', 'test': 'patrole_reader'} + - {'tag': 'arm-jerma', 'test': 'tempest_cyborg'} + - {'tag': 'arm-iruya', 'test': 'refstack_defcore'} + - {'tag': 'arm-iruya', 'test': 'patrole_admin'} + - {'tag': 'arm-iruya', 'test': 'patrole_member'} + - {'tag': 'arm-iruya', 'test': 'patrole_reader'} + - {'tag': 'arm-iruya', 'test': 'tempest_cyborg'} + - {'tag': 'arm-hunter', 'test': 'refstack_compute'} + - {'tag': 'arm-hunter', 'test': 'refstack_object'} + - {'tag': 'arm-hunter', 'test': 'refstack_platform'} + - {'tag': 'arm-hunter', 'test': 'tempest_octavia'} + - {'tag': 'arm-hunter', 'test': 'tempest_telemetry'} + - {'tag': 'arm-hunter', 'test': 'patrole_admin'} + - {'tag': 'arm-hunter', 'test': 'patrole_member'} + - {'tag': 'arm-hunter', 'test': 'patrole_reader'} + - {'tag': 'arm-hunter', 'test': 'tempest_cyborg'} + - {'tag': 'arm64-latest', 'test': 'refstack_defcore'} + - {'tag': 'arm64-latest', 'test': 'networking-bgpvpn'} + - {'tag': 'arm64-latest', 'test': 'networking-sfc'} + - {'tag': 'arm64-latest', 'test': 'patrole'} + - {'tag': 'arm64-leguer', 'test': 'refstack_defcore'} + - {'tag': 'arm64-leguer', 'test': 'networking-bgpvpn'} + - {'tag': 'arm64-leguer', 'test': 'networking-sfc'} + - {'tag': 'arm64-leguer', 'test': 'patrole'} + - {'tag': 'arm64-kali', 'test': 'refstack_defcore'} + - {'tag': 'arm64-kali', 'test': 'networking-bgpvpn'} + - {'tag': 'arm64-kali', 'test': 'networking-sfc'} + - {'tag': 'arm64-kali', 'test': 'patrole_admin'} + - {'tag': 'arm64-kali', 'test': 'patrole_member'} + - {'tag': 'arm64-kali', 'test': 'patrole_reader'} + - {'tag': 'arm64-jerma', 'test': 'refstack_defcore'} + - {'tag': 'arm64-jerma', 'test': 'networking-bgpvpn'} + - {'tag': 'arm64-jerma', 'test': 'networking-sfc'} + - {'tag': 'arm64-jerma', 'test': 'patrole_admin'} + - {'tag': 'arm64-jerma', 'test': 'patrole_member'} + - {'tag': 'arm64-jerma', 'test': 'patrole_reader'} + - {'tag': 'arm64-jerma', 'test': 'tempest_cyborg'} + - {'tag': 'arm64-iruya', 'test': 'refstack_defcore'} + - {'tag': 'arm64-iruya', 'test': 'patrole_admin'} + - {'tag': 'arm64-iruya', 'test': 'patrole_member'} + - {'tag': 'arm64-iruya', 'test': 'patrole_reader'} + - {'tag': 'arm64-iruya', 'test': 'tempest_cyborg'} + - {'tag': 'arm64-hunter', 'test': 'refstack_compute'} + - {'tag': 'arm64-hunter', 'test': 'refstack_object'} + - {'tag': 'arm64-hunter', 'test': 'refstack_platform'} + - {'tag': 'arm64-hunter', 'test': 'tempest_octavia'} + - {'tag': 'arm64-hunter', 'test': 'tempest_telemetry'} + - {'tag': 'arm64-hunter', 'test': 'patrole_admin'} + - {'tag': 'arm64-hunter', 'test': 'patrole_member'} + - {'tag': 'arm64-hunter', 'test': 'patrole_reader'} + - {'tag': 'arm64-hunter', 'test': 'tempest_cyborg'} jobs: - 'functest-pi-{repo}-{container}-{tag}-{test}-run' @@ -662,7 +516,7 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -670,29 +524,21 @@ else image={repo}:{port}/{container}:{tag} fi - volumes="" - case "{tag}" in - arm-hunter) - volumes="-v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static" ;; - arm64-hunter) - volumes="-v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static" ;; - esac sudo docker run --rm \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \ + -v /home/opnfv/functest/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \ -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \ - -v /home/opnfv/functest/.boto:/root/.boto \ -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ -v /home/opnfv/functest/images:/home/opnfv/functest/images \ - $volumes $image zip_campaign + $image zip_campaign - job-template: name: 'functest-pi-{tag}-zip' @@ -701,8 +547,6 @@ slave: '{slave}' - functest-pi-build_tag: build_tag: '' - - functest-pi-DEBUG: - DEBUG: 'true' - functest-pi-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-pi-VOLUME_DEVICE_NAME: @@ -730,8 +574,6 @@ slave: '{slave}' - functest-pi-build_tag: build_tag: '' - - functest-pi-DEBUG: - DEBUG: 'true' - functest-pi-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-pi-VOLUME_DEVICE_NAME: @@ -743,7 +585,7 @@ use-build-blocker: true blocking-level: 'NODE' blocking-jobs: - - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - '^functest-pi-{tag}-(daily|docker|review)$' builders: - multijob: name: remove former images @@ -908,7 +750,7 @@ <<: *functest-pi-jobs - project: - name: 'functest-pi' + name: 'functest-pi-daily' <<: *functest-pi-params jobs: - 'functest-pi-{tag}-daily' @@ -923,4 +765,4 @@ - last-success - last-failure - last-duration - regex: ^functest-pi(-ovn)?-(arm.*-|amd64-)*[a-z]+-daily$ + regex: ^functest-pi-[a-z-0-9.]+-daily$ diff --git a/jjb/functest/functest-project-jobs.yaml b/jjb/functest/functest-project-jobs.yaml deleted file mode 100644 index 438fb4d81..000000000 --- a/jjb/functest/functest-project-jobs.yaml +++ /dev/null @@ -1,86 +0,0 @@ ---- -- functest-project-params: &functest-project-params - name: 'functest-project-params' - tag: - - latest: - branch: master - slave: lf-virtual1 - - leguer: - branch: stable/leguer - slave: lf-virtual1 - - kali: - branch: stable/kali - slave: lf-virtual1 - - jerma: - branch: stable/jerma - slave: lf-virtual1 - - iruya: - branch: stable/iruya - slave: lf-virtual1 - - hunter: - branch: stable/hunter - slave: lf-virtual1 - -- builder: - name: functest-run-tox - builders: - - shell: tox - -- trigger: - name: functest-project-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - -- parameter: - name: functest-project-slave - parameters: - - label: - name: slave - default: '{slave}' - -- scm: - name: functest-project-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - -- job-template: - name: 'functest-run-tox-{tag}' - triggers: - - functest-project-patchset-created: - branch: '{branch}' - scm: - - functest-project-scm: - ref: $GERRIT_REFSPEC - parameters: - - functest-project-slave: - slave: '{slave}' - builders: - - functest-run-tox - -- project: - name: 'functest-run-tox' - <<: *functest-project-params - jobs: - - 'functest-run-tox-{tag}' diff --git a/jjb/functest/functest.ovn.yaml b/jjb/functest/functest.ovn.yaml deleted file mode 100644 index 3bd858527..000000000 --- a/jjb/functest/functest.ovn.yaml +++ /dev/null @@ -1,1243 +0,0 @@ ---- -- functest-ovn-jobs: &functest-ovn-jobs - name: 'functest-ovn-jobs' - current-parameters: true - -- functest-ovn-params: &functest-ovn-params - name: 'functest-ovn-params' - repo: 'opnfv' - port: - tag: - - latest: - branch: master - slave: lf-pod4-2 - dashboard_url: http://172.30.12.85 - -- parameter: - name: functest-ovn-slave - parameters: - - label: - name: slave - default: '{slave}' - -- parameter: - name: functest-ovn-build_tag - parameters: - - random-string: - name: build_tag - -- parameter: - name: functest-ovn-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: - name: functest-ovn-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- parameter: - name: functest-ovn-EXTERNAL_NETWORK - parameters: - - string: - name: EXTERNAL_NETWORK - default: public - -- functest-ovn-containers: &functest-ovn-containers - name: 'functest-ovn-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - -- functest-ovn-run-containers: &functest-ovn-run-containers - name: 'functest-ovn-run-containers' - <<: *functest-ovn-containers - test: '{test}' - dashboard_url: '{dashboard_url}' - -- functest-ovn-build-containers: &functest-ovn-build-containers - name: 'functest-ovn-build-containers' - <<: *functest-ovn-containers - ref_arg: '{ref_arg}' - path: '{path}' - -- builder: - name: functest-ovn-pull-containers - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - sudo docker pull $image - -- builder: - name: functest-ovn-build-containers - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - if [ "{ref_arg}" = "None" ]; then - build_arg="" - else - build_arg="--build-arg {ref_arg}={ref}" - fi - cd {path} - sudo docker build $build_arg \ - --pull=false --no-cache --force-rm=true \ - -t $image . - -- builder: - name: functest-ovn-run-containers - builders: - - shell: | - set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - if [ "{tag}" = "latest" ]; then - py=3.8 - elif [ "{tag}" = "kali" ]; then - py=3.8 - elif [ "{tag}" = "jerma" ]; then - py=3.7 - elif [ "{tag}" = "iruya" ]; then - py=3.6 - else - py=2.7 - fi - sudo docker run --rm \ - -e S3_ENDPOINT_URL=https://storage.googleapis.com \ - -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ - -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ - -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e NODE_NAME=$slave \ - -e BUILD_TAG=$BUILD_TAG \ - -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -e DEPLOY_SCENARIO=os-ovn-nofeature-noha \ - -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ - -e DASHBOARD_URL={dashboard_url} \ - -e VOLUME_DEVICE_NAME=sdb \ - -e IMAGE_PROPERTIES=hw_scsi_model:virtio-scsi,hw_disk_bus:scsi \ - -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ - -v /home/opnfv/functest/images:/home/opnfv/functest/images \ - -v /home/opnfv/functest/tempest_conf.yaml:/src/functest/\ - functest/opnfv_tests/openstack/tempest/custom_tests/\ - tempest_conf.yaml \ - -v /home/opnfv/functest/.boto:/root/.boto \ - $image run_tests -t {test} -r -p - -- builder: - name: functest-ovn-remove-images - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - sudo docker rmi $image || true - -- scm: - name: functest-ovn-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - -- job-template: - name: 'functest-ovn-{repo}-{container}-{tag}-pull' - parameters: - - functest-ovn-slave: - slave: '{slave}' - builders: - - functest-ovn-pull-containers: - <<: *functest-ovn-containers - -- project: - name: 'functest-ovn-opnfv-functest-healthcheck-pull' - <<: *functest-ovn-params - container: 'functest-healthcheck' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: 'functest-ovn-opnfv-functest-smoke-pull' - <<: *functest-ovn-params - container: 'functest-smoke' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: 'functest-ovn-opnfv-functest-smoke-cntt-pull' - <<: *functest-ovn-params - container: 'functest-smoke-cntt' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking-pull' - <<: *functest-ovn-params - container: 'functest-benchmarking' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-pull' - <<: *functest-ovn-params - container: 'functest-benchmarking-cntt' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: 'functest-ovn-opnfv-functest-vnf-pull' - <<: *functest-ovn-params - container: 'functest-vnf' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- job-template: - name: 'functest-ovn-{repo}-{container}-{tag}-rmi' - parameters: - - functest-ovn-slave: - slave: '{slave}' - builders: - - functest-ovn-remove-images: - <<: *functest-ovn-containers - -- project: - name: 'functest-ovn-opnfv-functest-healthcheck-rmi' - <<: *functest-ovn-params - container: 'functest-healthcheck' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-opnfv-functest-smoke-rmi' - <<: *functest-ovn-params - container: 'functest-smoke' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-opnfv-functest-smoke-cntt-rmi' - <<: *functest-ovn-params - container: 'functest-smoke-cntt' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking-rmi' - <<: *functest-ovn-params - container: 'functest-benchmarking' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-rmi' - <<: *functest-ovn-params - container: 'functest-benchmarking-cntt' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-opnfv-functest-vnf-rmi' - <<: *functest-ovn-params - container: 'functest-vnf' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- job-template: - name: 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - parameters: - - functest-ovn-slave: - slave: '{slave}' - - functest-ovn-build_tag: - build_tag: '' - - functest-ovn-DEBUG: - DEBUG: 'true' - - functest-ovn-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - builders: - - functest-ovn-run-containers: - <<: *functest-ovn-run-containers - -- project: - name: 'functest-ovn-opnfv-functest-healthcheck' - <<: *functest-ovn-params - container: 'functest-healthcheck' - test: - - connection_check - - tenantnetwork1 - - tenantnetwork2 - - vmready1 - - vmready2 - - singlevm1 - - singlevm2 - - vping_ssh - - vping_userdata - - cinder_test - - odl - - tempest_smoke - - tempest_horizon - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'functest-ovn-opnfv-functest-smoke' - <<: *functest-ovn-params - container: 'functest-smoke' - test: - - tempest_neutron - - tempest_cinder - - tempest_keystone - - tempest_heat - - tempest_telemetry - - rally_sanity - - refstack_defcore - - refstack_compute - - refstack_object - - refstack_platform - - tempest_full - - tempest_scenario - - tempest_slow - - patrole - - patrole_admin - - patrole_member - - patrole_reader - - networking-bgpvpn - - networking-sfc - - tempest_barbican - - tempest_octavia - - tempest_cyborg - exclude: - - tag: latest - test: refstack_defcore - - tag: latest - test: networking-bgpvpn - - tag: latest - test: networking-sfc - - tag: latest - test: patrole - - tag: kali - test: refstack_defcore - - tag: kali - test: networking-bgpvpn - - tag: kali - test: networking-sfc - - tag: kali - test: patrole_admin - - tag: kali - test: patrole_member - - tag: kali - test: patrole_reader - - tag: jerma - test: refstack_defcore - - tag: jerma - test: networking-bgpvpn - - tag: jerma - test: networking-sfc - - tag: jerma - test: patrole_admin - - tag: jerma - test: patrole_member - - tag: jerma - test: patrole_reader - - tag: jerma - test: tempest_cyborg - - tag: iruya - test: refstack_defcore - - tag: iruya - test: patrole_admin - - tag: iruya - test: patrole_member - - tag: iruya - test: patrole_reader - - tag: iruya - test: tempest_cyborg - - tag: hunter - test: refstack_compute - - tag: hunter - test: refstack_object - - tag: hunter - test: refstack_platform - - tag: hunter - test: tempest_octavia - - tag: hunter - test: tempest_telemetry - - tag: hunter - test: patrole_admin - - tag: hunter - test: patrole_member - - tag: hunter - test: patrole_reader - - tag: hunter - test: tempest_cyborg - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'functest-ovn-opnfv-functest-smoke-cntt' - <<: *functest-ovn-params - container: 'functest-smoke-cntt' - test: - - tempest_neutron_cntt - - tempest_cinder_cntt - - tempest_keystone_cntt - - tempest_heat_cntt - - rally_sanity_cntt - - tempest_full_cntt - - tempest_scenario_cntt - - tempest_slow_cntt - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking' - <<: *functest-ovn-params - container: 'functest-benchmarking' - test: - - rally_full - - rally_jobs - - vmtp - - shaker - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking-cntt' - <<: *functest-ovn-params - container: 'functest-benchmarking-cntt' - test: - - rally_full_cntt - - rally_jobs_cntt - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'functest-ovn-opnfv-functest-vnf' - <<: *functest-ovn-params - container: 'functest-vnf' - test: - - cloudify - - cloudify_ims - - heat_ims - - vyos_vrouter - - juju_epc - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- builder: - name: functest-ovn-zip - builders: - - shell: | - set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - sudo docker run --rm \ - -e S3_ENDPOINT_URL=https://storage.googleapis.com \ - -e S3_DST_URL=s3://artifacts.opnfv.org/functest \ - -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \ - -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e BUILD_TAG=$BUILD_TAG \ - -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -v /home/opnfv/functest/.boto:/root/.boto \ - $image zip_campaign - -- job-template: - name: 'functest-ovn-{tag}-zip' - parameters: - - functest-ovn-build_tag: - build_tag: '' - builders: - - functest-ovn-zip: - <<: *functest-ovn-containers - -- project: - name: 'functest-ovn-{tag}-zip' - <<: *functest-ovn-params - container: 'functest-healthcheck' - jobs: - - 'functest-ovn-{tag}-zip' - -- job-template: - name: 'functest-ovn-{tag}-daily' - project-type: multijob - triggers: - - timed: '@daily' - parameters: - - functest-ovn-slave: - slave: '{slave}' - - functest-ovn-build_tag: - build_tag: '' - - functest-ovn-DEBUG: - DEBUG: 'true' - - functest-ovn-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - properties: - - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' - blocking-jobs: - - '^functest-ovn-{tag}-(daily|check|gate)$' - builders: - - multijob: - name: remove former images - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-rmi' - <<: *functest-ovn-jobs - - multijob: - name: pull containers - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-pull' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-pull' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-pull' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-pull' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-pull' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-pull' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-healthcheck:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_userdata-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-odl-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_smoke-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_horizon-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_neutron-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cinder-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_keystone-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_heat-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_telemetry-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rally_sanity-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_defcore-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_compute-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_object-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_platform-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_scenario-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_slow-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_admin-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_member-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_reader-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_barbican-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_octavia-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cyborg-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_jobs-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-vmtp-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-shaker-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-vnf:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-heat_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-vyos_vrouter-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-juju_epc-run' - <<: *functest-ovn-jobs - - multijob: - name: dump all campaign data - projects: - - name: 'functest-ovn-{tag}-zip' - <<: *functest-ovn-jobs - -- job-template: - name: 'functest-ovn-{repo}-{container}-{tag}-gate' - parameters: - - functest-ovn-slave: - slave: '{slave}' - scm: - - functest-ovn-scm: - ref: $GERRIT_REFSPEC - builders: - - functest-ovn-build-containers: - <<: *functest-ovn-build-containers - ref: $GERRIT_REFSPEC - -- job-template: - name: 'functest-ovn-{repo}-{container}-{tag}-check' - parameters: - - functest-ovn-slave: - slave: '{slave}' - - functest-ovn-branch: - branch: '{branch}' - scm: - - functest-ovn-scm: - ref: $branch - builders: - - functest-ovn-build-containers: - <<: *functest-ovn-build-containers - ref: $branch - -- project: - name: 'functest-ovn-_-alpine-3.12-rmi' - repo: _ - port: - container: alpine - tag: '3.12' - slave: master - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-_-alpine-3.12-pull' - repo: _ - port: - container: alpine - tag: '3.12' - slave: master - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: functest-ovn-opnfv-functest-core-{tag}-build - <<: *functest-ovn-params - container: functest-core - ref_arg: BRANCH - path: docker/core - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-tempest-{tag}-build - <<: *functest-ovn-params - container: functest-tempest - ref_arg: BRANCH - path: docker/tempest - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - exclude: - - tag: latest - - tag: kali - - tag: jerma - -- project: - name: functest-ovn-opnfv-functest-healthcheck-{tag}-build - <<: *functest-ovn-params - container: functest-healthcheck - ref_arg: BRANCH - path: docker/healthcheck - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-smoke-{tag}-build - <<: *functest-ovn-params - container: functest-smoke - ref_arg: BRANCH - path: docker/smoke - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-smoke-cntt-{tag}-build - <<: *functest-ovn-params - container: functest-smoke-cntt - ref_arg: BRANCH - path: docker/smoke-cntt - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-benchmarking-{tag}-build - <<: *functest-ovn-params - container: functest-benchmarking - ref_arg: BRANCH - path: docker/benchmarking - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-build - <<: *functest-ovn-params - container: functest-benchmarking-cntt - ref_arg: BRANCH - path: docker/benchmarking-cntt - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-vnf-{tag}-build - <<: *functest-ovn-params - container: functest-vnf - ref_arg: - path: docker/vnf - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- job-template: - name: 'functest-ovn-{tag}-check' - project-type: multijob - parameters: - - functest-ovn-slave: - slave: '{slave}' - - functest-ovn-build_tag: - build_tag: '' - - functest-ovn-branch: - branch: '{branch}' - - functest-ovn-DEBUG: - DEBUG: 'true' - - functest-ovn-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - properties: - - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' - blocking-jobs: - - '^functest-ovn-{tag}-(daily|check|gate)$' - builders: - - multijob: - name: remove former images - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-rmi' - <<: *functest-ovn-jobs - - multijob: - name: remove dependencies - projects: - - name: 'functest-ovn-_-alpine-3.12-rmi' - <<: *functest-ovn-jobs - - multijob: - name: pull dependencies - projects: - - name: 'functest-ovn-_-alpine-3.12-pull' - <<: *functest-ovn-jobs - - multijob: - name: build opnfv/functest-core - projects: - - name: 'functest-ovn-opnfv-functest-core-{tag}-check' - <<: *functest-ovn-jobs - - multijob: - name: build opnfv/functest-tempest - projects: - - name: 'functest-ovn-opnfv-functest-tempest-{tag}-check' - <<: *functest-ovn-jobs - - multijob: - name: build containers - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-check' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-check' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-check' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-check' - <<: *functest-ovn-jobs - - multijob: - name: build cntt containers - projects: - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-check' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-check' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-healthcheck:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_userdata-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-odl-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_smoke-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_horizon-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_neutron-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cinder-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_keystone-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_heat-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_telemetry-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rally_sanity-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_defcore-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_compute-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_object-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_platform-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_scenario-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_slow-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_admin-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_member-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_reader-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_barbican-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_octavia-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cyborg-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_jobs-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-vmtp-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-shaker-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-vnf:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-heat_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-vyos_vrouter-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-juju_epc-run' - <<: *functest-ovn-jobs - -- trigger: - name: functest-ovn-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - -- job-template: - name: 'functest-ovn-{tag}-gate' - disabled: true - project-type: multijob - triggers: - - functest-ovn-patchset-created: - branch: '{branch}' - parameters: - - functest-ovn-slave: - slave: '{slave}' - - functest-ovn-build_tag: - build_tag: '' - - functest-ovn-DEBUG: - DEBUG: 'true' - - functest-ovn-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - properties: - - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' - blocking-jobs: - - '^functest-ovn-{tag}-(daily|check|gate)$' - builders: - - multijob: - name: remove former images - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-rmi' - <<: *functest-ovn-jobs - - multijob: - name: remove dependencies - projects: - - name: 'functest-ovn-_-alpine-3.12-rmi' - <<: *functest-ovn-jobs - - multijob: - name: pull dependencies - projects: - - name: 'functest-ovn-_-alpine-3.12-pull' - <<: *functest-ovn-jobs - - multijob: - name: build opnfv/functest-core - projects: - - name: 'functest-ovn-opnfv-functest-core-{tag}-gate' - <<: *functest-ovn-jobs - - multijob: - name: build opnfv/functest-tempest - projects: - - name: 'functest-ovn-opnfv-functest-tempest-{tag}-gate' - <<: *functest-ovn-jobs - - multijob: - name: build containers - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-gate' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-gate' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-gate' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-gate' - <<: *functest-ovn-jobs - - multijob: - name: build cntt containers - projects: - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-gate' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-gate' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-healthcheck:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_userdata-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-odl-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_smoke-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_horizon-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_neutron-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cinder-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_keystone-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_heat-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_telemetry-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rally_sanity-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_defcore-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_compute-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_object-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_platform-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_scenario-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_slow-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_admin-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_member-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_reader-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_barbican-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_octavia-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cyborg-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_jobs-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-vmtp-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-shaker-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-vnf:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-heat_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-vyos_vrouter-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-juju_epc-run' - <<: *functest-ovn-jobs - -- project: - name: 'functest-ovn' - <<: *functest-ovn-params - jobs: - - 'functest-ovn-{tag}-daily' - - 'functest-ovn-{tag}-check' - - 'functest-ovn-{tag}-gate' diff --git a/jjb/functest/functest.yaml b/jjb/functest/functest.yaml index 59a5a12e1..0c16041e2 100644 --- a/jjb/functest/functest.yaml +++ b/jjb/functest/functest.yaml @@ -1,7 +1,10 @@ --- -- functest-jobs: &functest-jobs - name: 'functest-jobs' - current-parameters: true +- functest-containers: &functest-containers + name: 'functest-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - functest-params: &functest-params name: 'functest-params' @@ -9,29 +12,51 @@ port: tag: - latest: + from: + buildargs: branch: master slave: lf-virtual9 - dashboard_url: http://172.30.13.94 + DASHBOARD_URL: http://172.30.13.94 + dependency: 3.13 - leguer: + from: + buildargs: branch: stable/leguer slave: lf-virtual9 - dashboard_url: http://172.30.13.94 + DASHBOARD_URL: http://172.30.13.94 + dependency: 3.12 - kali: + from: + buildargs: branch: stable/kali slave: lf-pod4-3 - dashboard_url: http://172.30.12.88 + DASHBOARD_URL: http://172.30.12.88 + dependency: 3.11 - jerma: + from: + buildargs: branch: stable/jerma slave: lf-pod4 - dashboard_url: http://172.30.12.83 + DASHBOARD_URL: http://172.30.12.83 + dependency: 3.10 - iruya: + from: + buildargs: branch: stable/iruya slave: lf-virtual4 - dashboard_url: http://172.30.13.89 + DASHBOARD_URL: http://172.30.13.89 + dependency: 3.9 - hunter: + from: + buildargs: branch: stable/hunter slave: lf-virtual6 - dashboard_url: http://172.30.13.91 + DASHBOARD_URL: http://172.30.13.91 + dependency: 3.9 + +- functest-jobs: &functest-jobs + name: 'functest-jobs' + current-parameters: true - parameter: name: functest-slave @@ -46,34 +71,18 @@ - random-string: name: build_tag -- parameter: - name: functest-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: - name: functest-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - - parameter: name: functest-EXTERNAL_NETWORK parameters: - string: name: EXTERNAL_NETWORK default: public - - parameter: name: functest-VOLUME_DEVICE_NAME parameters: - string: name: VOLUME_DEVICE_NAME default: sdb - - parameter: name: functest-IMAGE_PROPERTIES parameters: @@ -81,20 +90,13 @@ name: IMAGE_PROPERTIES default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi -- functest-containers: &functest-containers - name: 'functest-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - - functest-run-containers: &functest-run-containers name: 'functest-run-containers' <<: *functest-containers test: '{test}' - dashboard_url: '{dashboard_url}' privileged: '{privileged}' network: '{network}' + DASHBOARD_URL: '{DASHBOARD_URL}' - builder: name: functest-pull-containers @@ -115,7 +117,7 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -129,20 +131,19 @@ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/functest/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e NODE_NAME=$slave \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ - -e DASHBOARD_URL={dashboard_url} \ -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \ -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \ - -v /home/opnfv/functest/.boto:/root/.boto \ + -e DASHBOARD_URL={DASHBOARD_URL} \ -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ -v /home/opnfv/functest/images:/home/opnfv/functest/images \ - $image run_tests -t {test} -r -p + $image run_tests -t {test} -p -r - builder: name: functest-remove-images @@ -158,43 +159,6 @@ fi sudo docker rmi $image || true -- functest-build-containers: &functest-build-containers - name: 'functest-build-containers' - <<: *functest-containers - ref_arg: '{ref_arg}' - path: '{path}' - -- builder: - name: functest-build-containers - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - if [ "{ref_arg}" = "None" ]; then - build_arg="" - else - build_arg="--build-arg {ref_arg}={ref}" - fi - cd {path} - sudo docker build $build_arg \ - --pull=false --no-cache --force-rm=true \ - -t $image . - -- scm: - name: functest-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - - job-template: name: 'functest-{repo}-{container}-{tag}-pull' parameters: @@ -304,8 +268,6 @@ slave: '{slave}' - functest-build_tag: build_tag: '' - - functest-DEBUG: - DEBUG: 'true' - functest-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-VOLUME_DEVICE_NAME: @@ -366,79 +328,44 @@ - tempest_barbican - tempest_octavia - tempest_cyborg - exclude: - - tag: latest - test: refstack_defcore - - tag: latest - test: networking-bgpvpn - - tag: latest - test: networking-sfc - - tag: latest - test: patrole - - tag: leguer - test: refstack_defcore - - tag: leguer - test: networking-bgpvpn - - tag: leguer - test: networking-sfc - - tag: leguer - test: patrole - - tag: kali - test: refstack_defcore - - tag: kali - test: networking-bgpvpn - - tag: kali - test: networking-sfc - - tag: kali - test: patrole_admin - - tag: kali - test: patrole_member - - tag: kali - test: patrole_reader - - tag: jerma - test: refstack_defcore - - tag: jerma - test: networking-bgpvpn - - tag: jerma - test: networking-sfc - - tag: jerma - test: patrole_admin - - tag: jerma - test: patrole_member - - tag: jerma - test: patrole_reader - - tag: jerma - test: tempest_cyborg - - tag: iruya - test: refstack_defcore - - tag: iruya - test: patrole_admin - - tag: iruya - test: patrole_member - - tag: iruya - test: patrole_reader - - tag: iruya - test: tempest_cyborg - - tag: hunter - test: refstack_compute - - tag: hunter - test: refstack_object - - tag: hunter - test: refstack_platform - - tag: hunter - test: tempest_octavia - - tag: hunter - test: tempest_telemetry - - tag: hunter - test: patrole_admin - - tag: hunter - test: patrole_member - - tag: hunter - test: patrole_reader - - tag: hunter - test: tempest_cyborg privileged: 'false' network: bridge + exclude: + - {'tag': 'latest', 'test': 'refstack_defcore'} + - {'tag': 'latest', 'test': 'networking-bgpvpn'} + - {'tag': 'latest', 'test': 'networking-sfc'} + - {'tag': 'latest', 'test': 'patrole'} + - {'tag': 'leguer', 'test': 'refstack_defcore'} + - {'tag': 'leguer', 'test': 'networking-bgpvpn'} + - {'tag': 'leguer', 'test': 'networking-sfc'} + - {'tag': 'leguer', 'test': 'patrole'} + - {'tag': 'kali', 'test': 'refstack_defcore'} + - {'tag': 'kali', 'test': 'networking-bgpvpn'} + - {'tag': 'kali', 'test': 'networking-sfc'} + - {'tag': 'kali', 'test': 'patrole_admin'} + - {'tag': 'kali', 'test': 'patrole_member'} + - {'tag': 'kali', 'test': 'patrole_reader'} + - {'tag': 'jerma', 'test': 'refstack_defcore'} + - {'tag': 'jerma', 'test': 'networking-bgpvpn'} + - {'tag': 'jerma', 'test': 'networking-sfc'} + - {'tag': 'jerma', 'test': 'patrole_admin'} + - {'tag': 'jerma', 'test': 'patrole_member'} + - {'tag': 'jerma', 'test': 'patrole_reader'} + - {'tag': 'jerma', 'test': 'tempest_cyborg'} + - {'tag': 'iruya', 'test': 'refstack_defcore'} + - {'tag': 'iruya', 'test': 'patrole_admin'} + - {'tag': 'iruya', 'test': 'patrole_member'} + - {'tag': 'iruya', 'test': 'patrole_reader'} + - {'tag': 'iruya', 'test': 'tempest_cyborg'} + - {'tag': 'hunter', 'test': 'refstack_compute'} + - {'tag': 'hunter', 'test': 'refstack_object'} + - {'tag': 'hunter', 'test': 'refstack_platform'} + - {'tag': 'hunter', 'test': 'tempest_octavia'} + - {'tag': 'hunter', 'test': 'tempest_telemetry'} + - {'tag': 'hunter', 'test': 'patrole_admin'} + - {'tag': 'hunter', 'test': 'patrole_member'} + - {'tag': 'hunter', 'test': 'patrole_reader'} + - {'tag': 'hunter', 'test': 'tempest_cyborg'} jobs: - 'functest-{repo}-{container}-{tag}-{test}-run' @@ -507,7 +434,7 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -519,15 +446,14 @@ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \ + -v /home/opnfv/functest/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \ -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \ - -v /home/opnfv/functest/.boto:/root/.boto \ -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ -v /home/opnfv/functest/images:/home/opnfv/functest/images \ $image zip_campaign @@ -539,8 +465,6 @@ slave: '{slave}' - functest-build_tag: build_tag: '' - - functest-DEBUG: - DEBUG: 'true' - functest-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-VOLUME_DEVICE_NAME: @@ -568,8 +492,6 @@ slave: '{slave}' - functest-build_tag: build_tag: '' - - functest-DEBUG: - DEBUG: 'true' - functest-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-VOLUME_DEVICE_NAME: @@ -581,7 +503,7 @@ use-build-blocker: true blocking-level: 'NODE' blocking-jobs: - - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - '^functest-{tag}-(daily|docker|review)$' builders: - multijob: name: remove former images @@ -745,151 +667,287 @@ - name: 'functest-{tag}-zip' <<: *functest-jobs +- project: + name: 'functest-daily' + <<: *functest-params + jobs: + - 'functest-{tag}-daily' + +- view: + name: functest + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-[a-z0-9.]+-daily$ + +- functest-build-containers: &functest-build-containers + name: 'functest-build-containers' + <<: *functest-containers + ref_arg: '{ref_arg}' + path: '{path}' + buildargs: '{buildargs}' + from: '{from}' + +- builder: + name: functest-build-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + build_args="" + if [ "{buildargs}" != "None" ]; then + build_args="{buildargs}" + fi + if [ "{ref_arg}" != "None" ]; then + build_args="$build_args --build-arg {ref_arg}={ref}" + fi + cd {path} + if [ "{from}" != "None" ]; then + sed -i {from} Dockerfile + fi + sudo docker build $build_args \ + --pull=false --no-cache --force-rm=true \ + -t $image . + +- scm: + name: functest-scm + scm: + - git: + url: 'https://gerrit.opnfv.org/gerrit/functest' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + branches: + - '{ref}' + +- functest-dep: &functest-dep + name: 'functest-containers' + repo: '{repo}' + port: '{port}' + tag: '{tag}' + dependency: '{dependency}' + +- builder: + name: functest-pull-dep-images + builders: + - shell: | + set +x + if [ "_" = "_" ]; then + image=alpine:{dependency} + elif [ "_" = "None" ]; then + image=_/alpine:{dependency} + else + image=_:/alpine{dependency} + fi + sudo docker pull $image || true + +- builder: + name: functest-remove-dep-images + builders: + - shell: | + set +x + if [ "_" = "_" ]; then + image=alpine:{dependency} + elif [ "_" = "None" ]; then + image=_/alpine:{dependency} + else + image=_:/alpine{dependency} + fi + sudo docker rmi $image || true + - job-template: - name: 'functest-{repo}-{container}-{tag}-gate' + name: 'functest-{repo}-{tag}-dep-pull' + parameters: + - functest-slave: + slave: '{slave}' + builders: + - functest-pull-dep-images: + <<: *functest-dep + +- project: + name: 'functest-{repo}-{tag}-dep-pull' + <<: *functest-params + jobs: + - 'functest-{repo}-{tag}-dep-pull' + +- job-template: + name: 'functest-{repo}-{tag}-dep-rmi' parameters: - functest-slave: slave: '{slave}' + builders: + - functest-remove-dep-images: + <<: *functest-dep + +- project: + name: 'functest-{repo}-{tag}-dep-rmi' + <<: *functest-params + jobs: + - 'functest-{repo}-{tag}-dep-rmi' + +- builder: + name: functest-tox + builders: + - shell: | + set +x + sudo apt-get update && sudo apt-get install software-properties-common gpg -y + sudo add-apt-repository -y ppa:deadsnakes/ppa + sudo apt-get update && sudo apt-get install python3.8 python3.8-dev \ + python3.8-distutils \ + python3.7 python3.7-dev python3.6 python3.6-dev \ + python python-dev python3-pip enchant -y + sudo pip3 install tox tox-pip-version + tox + +- job-template: + name: 'functest-{tag}-tox' scm: - functest-scm: ref: $GERRIT_REFSPEC + triggers: + - functest-patchset-created: + branch: '{branch}' + parameters: + - functest-slave: + slave: '{slave}' builders: - - functest-build-containers: - <<: *functest-build-containers - ref: $GERRIT_REFSPEC + - functest-tox: + +- project: + name: functest-tox + <<: *functest-params + jobs: + - 'functest-{tag}-tox' - job-template: - name: 'functest-{repo}-{container}-{tag}-check' + name: 'functest-{repo}-{container}-{tag}-gate' parameters: - functest-slave: slave: '{slave}' - - functest-branch: - branch: '{branch}' scm: - functest-scm: - ref: $branch + ref: $GERRIT_REFSPEC builders: - functest-build-containers: <<: *functest-build-containers - ref: $branch - -- project: - name: 'functest-_-alpine-3.12-rmi' - repo: _ - port: - container: alpine - tag: '3.12' - slave: master - jobs: - - 'functest-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-_-alpine-3.12-pull' - repo: _ - port: - container: alpine - tag: '3.12' - slave: master - jobs: - - 'functest-{repo}-{container}-{tag}-pull' + ref: $GERRIT_REFSPEC + buildargs: '{buildargs}' - project: - name: functest-opnfv-functest-core-{tag}-build + name: functest-opnfv-functest-core-{tag}-gate <<: *functest-params container: functest-core ref_arg: BRANCH path: docker/core jobs: - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' - project: - name: functest-opnfv-functest-tempest-{tag}-build + name: functest-opnfv-functest-tempest-{tag}-gate <<: *functest-params container: functest-tempest ref_arg: BRANCH path: docker/tempest + exclude: + - {'tag': 'latest'} + - {'tag': 'leguer'} + - {'tag': 'kali'} + - {'tag': 'jerma'} jobs: - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' - exclude: - - tag: latest - - tag: leguer - - tag: kali - - tag: jerma - project: - name: functest-opnfv-functest-healthcheck-{tag}-build + name: functest-opnfv-functest-healthcheck-{tag}-gate <<: *functest-params container: functest-healthcheck ref_arg: BRANCH path: docker/healthcheck jobs: - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' - project: - name: functest-opnfv-functest-smoke-{tag}-build + name: functest-opnfv-functest-smoke-{tag}-gate <<: *functest-params container: functest-smoke ref_arg: BRANCH path: docker/smoke jobs: - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' - project: - name: functest-opnfv-functest-benchmarking-{tag}-build + name: functest-opnfv-functest-benchmarking-{tag}-gate <<: *functest-params container: functest-benchmarking ref_arg: BRANCH path: docker/benchmarking jobs: - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' - project: - name: functest-opnfv-functest-benchmarking-cntt-{tag}-build - <<: *functest-params - container: functest-benchmarking-cntt - ref_arg: BRANCH - path: docker/benchmarking-cntt - jobs: - - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' - -- project: - name: functest-opnfv-functest-vnf-{tag}-build + name: functest-opnfv-functest-vnf-{tag}-gate <<: *functest-params container: functest-vnf ref_arg: path: docker/vnf jobs: - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' - project: - name: functest-opnfv-functest-smoke-cntt-{tag}-build + name: functest-opnfv-functest-smoke-cntt-{tag}-gate <<: *functest-params container: functest-smoke-cntt ref_arg: BRANCH path: docker/smoke-cntt jobs: - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' + +- project: + name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate + <<: *functest-params + container: functest-benchmarking-cntt + ref_arg: BRANCH + path: docker/benchmarking-cntt + jobs: + - 'functest-{repo}-{container}-{tag}-gate' + + +- trigger: + name: functest-patchset-created + triggers: + - gerrit: + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: 'functest' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' - job-template: - name: 'functest-{tag}-check' + name: 'functest-{tag}-review' project-type: multijob + triggers: + - functest-patchset-created: + branch: '{branch}' parameters: - functest-slave: slave: '{slave}' - functest-build_tag: build_tag: '' - - functest-branch: - branch: '{branch}' - - functest-DEBUG: - DEBUG: 'true' - functest-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-VOLUME_DEVICE_NAME: @@ -901,7 +959,7 @@ use-build-blocker: true blocking-level: 'NODE' blocking-jobs: - - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - '^functest-{tag}-(daily|docker|review)$' builders: - multijob: name: remove former images @@ -919,42 +977,42 @@ - name: 'functest-opnfv-functest-vnf-{tag}-rmi' <<: *functest-jobs - multijob: - name: remove dependencies + name: remove dependency projects: - - name: 'functest-_-alpine-3.12-rmi' + - name: 'functest-{repo}-{tag}-dep-rmi' <<: *functest-jobs - multijob: - name: pull dependencies + name: pull dependency projects: - - name: 'functest-_-alpine-3.12-pull' + - name: 'functest-{repo}-{tag}-dep-pull' <<: *functest-jobs - multijob: name: build opnfv/functest-core projects: - - name: 'functest-opnfv-functest-core-{tag}-check' + - name: 'functest-opnfv-functest-core-{tag}-gate' <<: *functest-jobs - multijob: name: build opnfv/functest-tempest projects: - - name: 'functest-opnfv-functest-tempest-{tag}-check' + - name: 'functest-opnfv-functest-tempest-{tag}-gate' <<: *functest-jobs - multijob: name: build containers projects: - - name: 'functest-opnfv-functest-healthcheck-{tag}-check' + - name: 'functest-opnfv-functest-healthcheck-{tag}-gate' <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-check' + - name: 'functest-opnfv-functest-smoke-{tag}-gate' <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-check' + - name: 'functest-opnfv-functest-benchmarking-{tag}-gate' <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-check' + - name: 'functest-opnfv-functest-vnf-{tag}-gate' <<: *functest-jobs - multijob: name: build cntt containers projects: - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-check' + - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate' <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-check' + - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate' <<: *functest-jobs - multijob: name: opnfv/functest-healthcheck:{tag} @@ -1083,250 +1141,298 @@ - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run' <<: *functest-jobs -- trigger: - name: functest-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false +- project: + name: 'functest-review' + <<: *functest-params + jobs: + - 'functest-{tag}-review' + +- view: + name: functest-review + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-[a-z0-9.]+-review$ + +- view: + name: functest-tox + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-[a-z0-9.]+-tox$ + +- builder: + name: functest-push-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + sudo docker push $image + +- trigger: + name: functest-commit + triggers: + - pollscm: + cron: "*/30 * * * *" + +- job-template: + name: 'functest-{repo}-{container}-{tag}-build' + parameters: + - functest-slave: + slave: '{slave}' + scm: + - functest-scm: + ref: '{branch}' + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: '{branch}' + buildargs: '{buildargs}' + - functest-push-containers: + <<: *functest-build-containers + ref: '{branch}' + +- project: + name: functest-opnfv-functest-core-{tag}-build + <<: *functest-params + container: functest-core + ref_arg: BRANCH + path: docker/core + jobs: + - 'functest-{repo}-{container}-{tag}-build' + +- project: + name: functest-opnfv-functest-tempest-{tag}-build + <<: *functest-params + container: functest-tempest + ref_arg: BRANCH + path: docker/tempest + exclude: + - {'tag': 'latest'} + - {'tag': 'leguer'} + - {'tag': 'kali'} + - {'tag': 'jerma'} + jobs: + - 'functest-{repo}-{container}-{tag}-build' + +- project: + name: functest-opnfv-functest-healthcheck-{tag}-build + <<: *functest-params + container: functest-healthcheck + ref_arg: BRANCH + path: docker/healthcheck + jobs: + - 'functest-{repo}-{container}-{tag}-build' + +- project: + name: functest-opnfv-functest-smoke-{tag}-build + <<: *functest-params + container: functest-smoke + ref_arg: BRANCH + path: docker/smoke + jobs: + - 'functest-{repo}-{container}-{tag}-build' + +- project: + name: functest-opnfv-functest-benchmarking-{tag}-build + <<: *functest-params + container: functest-benchmarking + ref_arg: BRANCH + path: docker/benchmarking + jobs: + - 'functest-{repo}-{container}-{tag}-build' + +- project: + name: functest-opnfv-functest-vnf-{tag}-build + <<: *functest-params + container: functest-vnf + ref_arg: + path: docker/vnf + jobs: + - 'functest-{repo}-{container}-{tag}-build' + +- project: + name: functest-opnfv-functest-smoke-cntt-{tag}-build + <<: *functest-params + container: functest-smoke-cntt + ref_arg: BRANCH + path: docker/smoke-cntt + jobs: + - 'functest-{repo}-{container}-{tag}-build' + +- project: + name: functest-opnfv-functest-benchmarking-cntt-{tag}-build + <<: *functest-params + container: functest-benchmarking-cntt + ref_arg: BRANCH + path: docker/benchmarking-cntt + jobs: + - 'functest-{repo}-{container}-{tag}-build' + - job-template: - name: 'functest-{tag}-gate' + name: 'functest-{tag}-docker' project-type: multijob triggers: - - functest-patchset-created: - branch: '{branch}' + - functest-commit + scm: + - functest-scm: + ref: '{branch}' parameters: - functest-slave: slave: '{slave}' - - functest-build_tag: - build_tag: '' - - functest-DEBUG: - DEBUG: 'true' - - functest-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - - functest-VOLUME_DEVICE_NAME: - VOLUME_DEVICE_NAME: sdb - - functest-IMAGE_PROPERTIES: - IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi properties: - build-blocker: use-build-blocker: true blocking-level: 'NODE' blocking-jobs: - - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - '^functest-{tag}-(daily|docker|review)$' builders: - multijob: - name: remove former images + name: remove dependency projects: - - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-rmi' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi' - <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-rmi' - <<: *functest-jobs - - multijob: - name: remove dependencies - projects: - - name: 'functest-_-alpine-3.12-rmi' + - name: 'functest-{repo}-{tag}-dep-rmi' <<: *functest-jobs - multijob: - name: pull dependencies + name: pull dependency projects: - - name: 'functest-_-alpine-3.12-pull' + - name: 'functest-{repo}-{tag}-dep-pull' <<: *functest-jobs - multijob: name: build opnfv/functest-core projects: - - name: 'functest-opnfv-functest-core-{tag}-gate' + - name: 'functest-opnfv-functest-core-{tag}-build' <<: *functest-jobs - multijob: name: build opnfv/functest-tempest projects: - - name: 'functest-opnfv-functest-tempest-{tag}-gate' + - name: 'functest-opnfv-functest-tempest-{tag}-build' <<: *functest-jobs - multijob: name: build containers projects: - - name: 'functest-opnfv-functest-healthcheck-{tag}-gate' + - name: 'functest-opnfv-functest-healthcheck-{tag}-build' <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-gate' + - name: 'functest-opnfv-functest-smoke-{tag}-build' <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-gate' + - name: 'functest-opnfv-functest-benchmarking-{tag}-build' <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-gate' + - name: 'functest-opnfv-functest-vnf-{tag}-build' <<: *functest-jobs - multijob: name: build cntt containers projects: - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate' + - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build' <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate' - <<: *functest-jobs - - multijob: - name: opnfv/functest-healthcheck:{tag} - projects: - - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run' - <<: *functest-jobs - - multijob: - name: opnfv/functest-smoke:{tag} - projects: - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run' - <<: *functest-jobs - - multijob: - name: opnfv/functest-smoke-cntt:{tag} - projects: - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run' - <<: *functest-jobs - - multijob: - name: opnfv/functest-benchmarking:{tag} - projects: - - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run' - <<: *functest-jobs - - multijob: - name: opnfv/functest-benchmarking-cntt:{tag} - projects: - - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run' - <<: *functest-jobs - - multijob: - name: opnfv/functest-vnf:{tag} - projects: - - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run' + - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build' <<: *functest-jobs +- builder: + name: functest-trivy + builders: + - shell: | + sudo apt-get update && sudo apt-get install curl -y + curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b . + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + ./trivy --exit-code 1 $image + +- job-template: + name: 'functest-{repo}-{container}-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-slave: + slave: '{slave}' + builders: + - functest-trivy: + <<: *functest-containers + - project: - name: 'functest' + name: 'functest-opnfv-functest-core-trivy' <<: *functest-params + container: 'functest-core' jobs: - - 'functest-{tag}-daily' + - 'functest-{repo}-{container}-{tag}-trivy' - project: - name: 'functest-gate' + name: 'functest-opnfv-functest-tempest-trivy' <<: *functest-params + container: 'functest-tempest' jobs: - - 'functest-{tag}-check' - - 'functest-{tag}-gate' + - 'functest-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-opnfv-functest-healthcheck-trivy' + <<: *functest-params + container: 'functest-healthcheck' + jobs: + - 'functest-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-opnfv-functest-smoke-trivy' + <<: *functest-params + container: 'functest-smoke' + jobs: + - 'functest-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-opnfv-functest-benchmarking-trivy' + <<: *functest-params + container: 'functest-benchmarking' + jobs: + - 'functest-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-opnfv-functest-vnf-trivy' + <<: *functest-params + container: 'functest-vnf' + jobs: + - 'functest-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-opnfv-functest-smoke-cntt-trivy' + <<: *functest-params + container: 'functest-smoke-cntt' + jobs: + - 'functest-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest-opnfv-functest-benchmarking-cntt-trivy' + <<: *functest-params + container: 'functest-benchmarking-cntt' + jobs: + - 'functest-{repo}-{container}-{tag}-trivy' + +- project: + name: 'functest' + <<: *functest-params + jobs: + - 'functest-{tag}-docker' - view: - name: functest + name: functest-docker view-type: list columns: - status @@ -1335,10 +1441,10 @@ - last-success - last-failure - last-duration - regex: ^functest(-ovn)?-(amd64-)*[a-z]+-daily$ + regex: ^functest-[a-z0-9.]+-docker$ - view: - name: functest-gate + name: functest-trivy view-type: list columns: - status @@ -1347,4 +1453,4 @@ - last-success - last-failure - last-duration - regex: ^functest(-ovn)?-(amd64-)*[a-z]+-gate$ + regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$ diff --git a/jjb/functest/xtesting-docker.yaml b/jjb/functest/xtesting-docker.yaml deleted file mode 100644 index a2dec355d..000000000 --- a/jjb/functest/xtesting-docker.yaml +++ /dev/null @@ -1,259 +0,0 @@ ---- -############################################## -# job configuration for docker build and push -############################################## -- project: - - name: xtesting-docker - - project: functest-xtesting - - stream: - - master: - branch: '{stream}' - disabled: false - - leguer: - branch: 'stable/{stream}' - disabled: false - - kali: - branch: 'stable/{stream}' - disabled: false - - jerma: - branch: 'stable/{stream}' - disabled: false - - iruya: - branch: 'stable/{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - arch_tag: - - 'amd64': - slave_label: 'lf-build2' - - image: - - 'core' - - 'mts' - - exclude: - - stream: 'kali' - image: 'mts' - - stream: 'jerma' - image: 'mts' - - stream: 'iruya' - image: 'mts' - - stream: 'hunter' - image: 'mts' - - # settings for jobs run in multijob phases - build-job-settings: &build-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: | - PUSH_IMAGE=$PUSH_IMAGE - COMMIT_ID=$COMMIT_ID - GERRIT_REFNAME=$GERRIT_REFNAME - DOCKERFILE=$DOCKERFILE - kill-phase-on: FAILURE - abort-all-jobs: false - - manifest-job-settings: &manifest-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: - GERRIT_REFNAME=$GERRIT_REFNAME - kill-phase-on: FAILURE - abort-all-jobs: false - - # yamllint enable rule:key-duplicates - jobs: - - "xtesting-docker-{stream}" - - "xtesting-{image}-docker-build-{arch_tag}-{stream}" - - "xtesting-{image}-docker-manifest-{stream}" - -######################## -# job templates -######################## -- job-template: - name: 'xtesting-docker-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - parameters: - - xtesting-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: 'lf-build2' - arch_tag: 'amd64' - - properties: - - throttle: - max-per-node: 1 - option: 'project' - - scm: - - git-scm - - triggers: - - pollscm: - cron: "*/30 * * * *" - - gerrit-trigger-tag-created: - project: '{project}' - - builders: - - multijob: - name: 'build xtesting images' - execution-type: PARALLEL - projects: - - name: 'xtesting-core-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish xtesting manifests' - execution-type: PARALLEL - projects: - - name: 'xtesting-core-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build xtesting-mts images' - execution-type: PARALLEL - projects: - - name: 'xtesting-mts-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish xtesting-mts manifests' - execution-type: PARALLEL - projects: - - name: 'xtesting-mts-docker-manifest-{stream}' - <<: *manifest-job-settings - - - publishers: - - 'xtesting-amd64-recipients' - -- job-template: - name: 'xtesting-{image}-docker-build-{arch_tag}-{stream}' - disabled: '{obj:disabled}' - parameters: - - xtesting-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: '{slave_label}' - arch_tag: '{arch_tag}' - scm: - - git-scm - builders: - - shell: | - #!/bin/bash -ex - sudo arch=amd64 amd64_dirs=docker/{image} arm64_dirs= arm_dirs= bash ./build.sh - exit $? - -- job-template: - name: 'xtesting-{image}-docker-manifest-{stream}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'lf-build2' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: REPO - default: "opnfv" - description: "Repository name for xtesting images" - - - disabled: '{obj:disabled}' - - builders: - - shell: | - #!/bin/bash -ex - case "{stream}" in - "master") - tag="latest" ;; - *) - tag="{stream}" ;; - esac - case "{image}" in - "core") - img="" ;; - *) - img="-{image}" ;; - esac - sudo manifest-tool push from-args \ - --platforms linux/amd64 \ - --template $REPO/xtesting$img:ARCH-$tag \ - --target $REPO/xtesting$img:$tag - exit $? - -- parameter: - name: xtesting-job-parameters - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: '{slave_label}' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: COMMIT_ID - default: "" - description: "commit id to make a snapshot docker image" - - string: - name: GERRIT_REFNAME - default: "" - description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" - - string: - name: DOCKERFILE - default: "Dockerfile" - description: "Dockerfile to use for creating the image." - - string: - name: ARCH_TAG - default: "{arch_tag}" - description: "If set, this value will be added to the docker image tag as a prefix" - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: REPO - default: "opnfv" - description: "Repository name for xtesting images" - -# publisher macros -- publisher: - name: 'xtesting-amd64-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 - valentin.boucher@kontron.com diff --git a/jjb/functest/xtesting-pi.yaml b/jjb/functest/xtesting-pi.yaml index ef4609f6c..f07a10581 100644 --- a/jjb/functest/xtesting-pi.yaml +++ b/jjb/functest/xtesting-pi.yaml @@ -1,7 +1,10 @@ --- -- xtesting-pi-jobs: &xtesting-pi-jobs - name: 'xtesting-pi-jobs' - current-parameters: true +- xtesting-pi-containers: &xtesting-pi-containers + name: 'xtesting-pi-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - xtesting-pi-params: &xtesting-pi-params name: 'xtesting-pi-params' @@ -9,60 +12,46 @@ port: tag: - latest: - branch: master slave: lf-virtual1 - leguer: - branch: stable/leguer slave: lf-virtual1 - kali: - branch: stable/kali slave: lf-virtual1 - jerma: - branch: stable/jerma slave: lf-virtual1 - iruya: - branch: stable/iruya slave: lf-virtual1 - hunter: - branch: stable/hunter slave: lf-virtual1 - arm-latest: - branch: master slave: lf-virtual1 - arm-leguer: - branch: stable/leguer slave: lf-virtual1 - arm-kali: - branch: stable/kali slave: lf-virtual1 - arm-jerma: - branch: stable/jerma slave: lf-virtual1 - arm-iruya: - branch: stable/iruya slave: lf-virtual1 - arm-hunter: - branch: stable/hunter slave: lf-virtual1 - arm64-latest: - branch: master slave: lf-virtual1 - arm64-leguer: - branch: stable/leguer slave: lf-virtual1 - arm64-kali: - branch: stable/kali slave: lf-virtual1 - arm64-jerma: - branch: stable/jerma slave: lf-virtual1 - arm64-iruya: - branch: stable/iruya slave: lf-virtual1 - arm64-hunter: - branch: stable/hunter slave: lf-virtual1 +- xtesting-pi-jobs: &xtesting-pi-jobs + name: 'xtesting-pi-jobs' + current-parameters: true + - parameter: name: xtesting-pi-slave parameters: @@ -76,26 +65,6 @@ - random-string: name: build_tag -- parameter: - name: xtesting-pi-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: - name: xtesting-pi-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- xtesting-pi-containers: &xtesting-pi-containers - name: 'xtesting-pi-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - xtesting-pi-run-containers: &xtesting-pi-run-containers name: 'xtesting-pi-run-containers' @@ -123,7 +92,7 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -137,13 +106,12 @@ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/xtesting/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e NODE_NAME=$slave \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/xtesting/.boto:/root/.boto \ $image run_tests -t {test} -p -r - builder: @@ -160,7 +128,6 @@ fi sudo docker rmi $image || true - - job-template: name: 'xtesting-pi-{repo}-{container}-{tag}-pull' parameters: @@ -181,21 +148,6 @@ name: 'xtesting-pi-ollivier-xtesting-mts-pull' <<: *xtesting-pi-params container: 'xtesting-mts' - exclude: - - tag: hunter - - tag: iruya - - tag: jerma - - tag: kali - - tag: arm-hunter - - tag: arm-iruya - - tag: arm-jerma - - tag: arm-kali - - tag: arm-leguer - - tag: arm-latest - - tag: arm64-hunter - - tag: arm64-iruya - - tag: arm64-jerma - - tag: arm64-kali jobs: - 'xtesting-pi-{repo}-{container}-{tag}-pull' @@ -219,21 +171,6 @@ name: 'xtesting-pi-ollivier-xtesting-mts-rmi' <<: *xtesting-pi-params container: 'xtesting-mts' - exclude: - - tag: hunter - - tag: iruya - - tag: jerma - - tag: kali - - tag: arm-hunter - - tag: arm-iruya - - tag: arm-jerma - - tag: arm-kali - - tag: arm-leguer - - tag: arm-latest - - tag: arm64-hunter - - tag: arm64-iruya - - tag: arm64-jerma - - tag: arm64-kali jobs: - 'xtesting-pi-{repo}-{container}-{tag}-rmi' @@ -244,8 +181,6 @@ slave: '{slave}' - xtesting-pi-build_tag: build_tag: '' - - xtesting-pi-DEBUG: - DEBUG: 'true' builders: - xtesting-pi-run-containers: <<: *xtesting-pi-run-containers @@ -261,19 +196,6 @@ - fourth - fifth - sixth - exclude: - - tag: hunter - test: sixth - - tag: iruya - test: sixth - - tag: arm-hunter - test: sixth - - tag: arm-iruya - test: sixth - - tag: arm64-hunter - test: sixth - - tag: arm64-iruya - test: sixth privileged: 'false' network: bridge jobs: @@ -285,35 +207,6 @@ container: 'xtesting-mts' test: - seventh - exclude: - - tag: hunter - test: seventh - - tag: iruya - test: seventh - - tag: jerma - test: seventh - - tag: kali - test: seventh - - tag: arm-hunter - test: seventh - - tag: arm-iruya - test: seventh - - tag: arm-jerma - test: seventh - - tag: arm-kali - test: seventh - - tag: arm-leguer - test: seventh - - tag: arm-latest - test: seventh - - tag: arm64-hunter - test: seventh - - tag: arm64-iruya - test: seventh - - tag: arm64-jerma - test: seventh - - tag: arm64-kali - test: seventh privileged: 'false' network: bridge jobs: @@ -325,7 +218,7 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -337,12 +230,11 @@ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting \ -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting \ + -v /home/opnfv/xtesting/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/xtesting/.boto:/root/.boto \ $image zip_campaign - job-template: @@ -352,8 +244,6 @@ slave: '{slave}' - xtesting-pi-build_tag: build_tag: '' - - xtesting-pi-DEBUG: - DEBUG: 'true' builders: - xtesting-pi-zip: <<: *xtesting-pi-containers @@ -375,14 +265,12 @@ slave: '{slave}' - xtesting-pi-build_tag: build_tag: '' - - xtesting-pi-DEBUG: - DEBUG: 'true' properties: - build-blocker: use-build-blocker: true blocking-level: 'NODE' blocking-jobs: - - '^xtesting-pi-{tag}-(daily|check|gate)$' + - '^xtesting-pi-{tag}-(daily|docker|review)$' builders: - multijob: name: remove former images @@ -424,9 +312,8 @@ - name: 'xtesting-pi-{tag}-zip' <<: *xtesting-pi-jobs - - project: - name: 'xtesting-pi' + name: 'xtesting-pi-daily' <<: *xtesting-pi-params jobs: - 'xtesting-pi-{tag}-daily' @@ -441,4 +328,4 @@ - last-success - last-failure - last-duration - regex: ^xtesting-pi-(arm.*-|amd64-)*[a-z]+-daily$ + regex: ^xtesting-pi-[a-z-0-9.]+-daily$ diff --git a/jjb/functest/xtesting-project-jobs.yaml b/jjb/functest/xtesting-project-jobs.yaml deleted file mode 100644 index 1a42d413f..000000000 --- a/jjb/functest/xtesting-project-jobs.yaml +++ /dev/null @@ -1,86 +0,0 @@ ---- -- xtesting-project-params: &xtesting-project-params - name: 'xtesting-project-params' - tag: - - latest: - branch: master - slave: lf-virtual1 - - leguer: - branch: stable/leguer - slave: lf-virtual1 - - kali: - branch: stable/kali - slave: lf-virtual1 - - jerma: - branch: stable/jerma - slave: lf-virtual1 - - iruya: - branch: stable/iruya - slave: lf-virtual1 - - hunter: - branch: stable/hunter - slave: lf-virtual1 - -- builder: - name: xtesting-run-tox - builders: - - shell: tox - -- trigger: - name: xtesting-project-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest-xtesting' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - -- parameter: - name: xtesting-project-slave - parameters: - - label: - name: slave - default: '{slave}' - -- scm: - name: xtesting-project-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest-xtesting - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - -- job-template: - name: 'xtesting-run-tox-{tag}' - triggers: - - xtesting-project-patchset-created: - branch: '{branch}' - scm: - - xtesting-project-scm: - ref: $GERRIT_REFSPEC - parameters: - - xtesting-project-slave: - slave: '{slave}' - builders: - - xtesting-run-tox - -- project: - name: 'xtesting-run-tox' - <<: *xtesting-project-params - jobs: - - 'xtesting-run-tox-{tag}' diff --git a/jjb/functest/xtesting.yaml b/jjb/functest/xtesting.yaml index 640e3492b..5484a59f7 100644 --- a/jjb/functest/xtesting.yaml +++ b/jjb/functest/xtesting.yaml @@ -1,7 +1,10 @@ --- -- xtesting-jobs: &xtesting-jobs - name: 'xtesting-jobs' - current-parameters: true +- xtesting-containers: &xtesting-containers + name: 'xtesting-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - xtesting-params: &xtesting-params name: 'xtesting-params' @@ -9,23 +12,45 @@ port: tag: - latest: + from: + buildargs: branch: master slave: lf-virtual1 + dependency: 3.13 - leguer: + from: + buildargs: branch: stable/leguer slave: lf-virtual1 + dependency: 3.12 - kali: + from: + buildargs: branch: stable/kali slave: lf-virtual1 + dependency: 3.11 - jerma: + from: + buildargs: branch: stable/jerma slave: lf-virtual1 + dependency: 3.10 - iruya: + from: + buildargs: branch: stable/iruya slave: lf-virtual1 + dependency: 3.9 - hunter: + from: + buildargs: branch: stable/hunter slave: lf-virtual1 + dependency: 3.9 + +- xtesting-jobs: &xtesting-jobs + name: 'xtesting-jobs' + current-parameters: true - parameter: name: xtesting-slave @@ -40,26 +65,6 @@ - random-string: name: build_tag -- parameter: - name: xtesting-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: - name: xtesting-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- xtesting-containers: &xtesting-containers - name: 'xtesting-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - xtesting-run-containers: &xtesting-run-containers name: 'xtesting-run-containers' @@ -87,7 +92,7 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -101,13 +106,12 @@ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/xtesting/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e NODE_NAME=$slave \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/xtesting/.boto:/root/.boto \ $image run_tests -t {test} -p -r - builder: @@ -124,48 +128,6 @@ fi sudo docker rmi $image || true -- xtesting-build-containers: &xtesting-build-containers - name: 'xtesting-build-containers' - <<: *xtesting-containers - ref_arg: '{ref_arg}' - path: '{path}' - -- builder: - name: xtesting-build-containers - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - if [ "{ref_arg}" = "None" ]; then - build_arg="" - else - build_arg="--build-arg {ref_arg}={ref}" - fi - case {tag} in - *latest|*leguer) - cd {path};; - *) - cd docker;; - esac - sudo docker build $build_arg \ - --pull=false --no-cache --force-rm=true \ - -t $image . - -- scm: - name: xtesting-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest-xtesting - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - - job-template: name: 'xtesting-{repo}-{container}-{tag}-pull' parameters: @@ -186,11 +148,6 @@ name: 'xtesting-opnfv-xtesting-mts-pull' <<: *xtesting-params container: 'xtesting-mts' - exclude: - - tag: hunter - - tag: iruya - - tag: jerma - - tag: kali jobs: - 'xtesting-{repo}-{container}-{tag}-pull' @@ -214,11 +171,6 @@ name: 'xtesting-opnfv-xtesting-mts-rmi' <<: *xtesting-params container: 'xtesting-mts' - exclude: - - tag: hunter - - tag: iruya - - tag: jerma - - tag: kali jobs: - 'xtesting-{repo}-{container}-{tag}-rmi' @@ -229,8 +181,6 @@ slave: '{slave}' - xtesting-build_tag: build_tag: '' - - xtesting-DEBUG: - DEBUG: 'true' builders: - xtesting-run-containers: <<: *xtesting-run-containers @@ -246,11 +196,6 @@ - fourth - fifth - sixth - exclude: - - tag: hunter - test: sixth - - tag: iruya - test: sixth privileged: 'false' network: bridge jobs: @@ -262,26 +207,18 @@ container: 'xtesting-mts' test: - seventh - exclude: - - tag: hunter - test: seventh - - tag: iruya - test: seventh - - tag: jerma - test: seventh - - tag: kali - test: seventh privileged: 'false' network: bridge jobs: - 'xtesting-{repo}-{container}-{tag}-{test}-run' + - builder: name: xtesting-zip builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -293,12 +230,11 @@ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting \ -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting \ + -v /home/opnfv/xtesting/.boto:/root/.boto \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/xtesting/.boto:/root/.boto \ $image zip_campaign - job-template: @@ -308,8 +244,6 @@ slave: '{slave}' - xtesting-build_tag: build_tag: '' - - xtesting-DEBUG: - DEBUG: 'true' builders: - xtesting-zip: <<: *xtesting-containers @@ -331,14 +265,12 @@ slave: '{slave}' - xtesting-build_tag: build_tag: '' - - xtesting-DEBUG: - DEBUG: 'true' properties: - build-blocker: use-build-blocker: true blocking-level: 'NODE' blocking-jobs: - - '^xtesting-{tag}-(daily|check|gate)$' + - '^xtesting-{tag}-(daily|docker|review)$' builders: - multijob: name: remove former images @@ -380,97 +312,234 @@ - name: 'xtesting-{tag}-zip' <<: *xtesting-jobs +- project: + name: 'xtesting-daily' + <<: *xtesting-params + jobs: + - 'xtesting-{tag}-daily' + +- view: + name: xtesting + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^xtesting-[a-z0-9.]+-daily$ + +- xtesting-build-containers: &xtesting-build-containers + name: 'xtesting-build-containers' + <<: *xtesting-containers + ref_arg: '{ref_arg}' + path: '{path}' + buildargs: '{buildargs}' + from: '{from}' + +- builder: + name: xtesting-build-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + build_args="" + if [ "{buildargs}" != "None" ]; then + build_args="{buildargs}" + fi + if [ "{ref_arg}" != "None" ]; then + build_args="$build_args --build-arg {ref_arg}={ref}" + fi + cd {path} + if [ "{from}" != "None" ]; then + sed -i {from} Dockerfile + fi + sudo docker build $build_args \ + --pull=false --no-cache --force-rm=true \ + -t $image . + +- scm: + name: xtesting-scm + scm: + - git: + url: 'https://gerrit.opnfv.org/gerrit/functest-xtesting' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + branches: + - '{ref}' + +- xtesting-dep: &xtesting-dep + name: 'xtesting-containers' + repo: '{repo}' + port: '{port}' + tag: '{tag}' + dependency: '{dependency}' + +- builder: + name: xtesting-pull-dep-images + builders: + - shell: | + set +x + if [ "_" = "_" ]; then + image=alpine:{dependency} + elif [ "_" = "None" ]; then + image=_/alpine:{dependency} + else + image=_:/alpine{dependency} + fi + sudo docker pull $image || true + +- builder: + name: xtesting-remove-dep-images + builders: + - shell: | + set +x + if [ "_" = "_" ]; then + image=alpine:{dependency} + elif [ "_" = "None" ]; then + image=_/alpine:{dependency} + else + image=_:/alpine{dependency} + fi + sudo docker rmi $image || true + - job-template: - name: 'xtesting-{repo}-{container}-{tag}-gate' + name: 'xtesting-{repo}-{tag}-dep-pull' + parameters: + - xtesting-slave: + slave: '{slave}' + builders: + - xtesting-pull-dep-images: + <<: *xtesting-dep + +- project: + name: 'xtesting-{repo}-{tag}-dep-pull' + <<: *xtesting-params + jobs: + - 'xtesting-{repo}-{tag}-dep-pull' + +- job-template: + name: 'xtesting-{repo}-{tag}-dep-rmi' parameters: - xtesting-slave: slave: '{slave}' + builders: + - xtesting-remove-dep-images: + <<: *xtesting-dep + +- project: + name: 'xtesting-{repo}-{tag}-dep-rmi' + <<: *xtesting-params + jobs: + - 'xtesting-{repo}-{tag}-dep-rmi' + +- builder: + name: xtesting-tox + builders: + - shell: | + set +x + sudo apt-get update && sudo apt-get install software-properties-common gpg -y + sudo add-apt-repository -y ppa:deadsnakes/ppa + sudo apt-get update && sudo apt-get install python3.8 python3.8-dev \ + python3.8-distutils \ + python3.7 python3.7-dev python3.6 python3.6-dev \ + python python-dev python3-pip enchant -y + sudo pip3 install tox tox-pip-version + tox + +- job-template: + name: 'xtesting-{tag}-tox' scm: - xtesting-scm: ref: $GERRIT_REFSPEC + triggers: + - xtesting-patchset-created: + branch: '{branch}' + parameters: + - xtesting-slave: + slave: '{slave}' builders: - - xtesting-build-containers: - <<: *xtesting-build-containers - ref: $GERRIT_REFSPEC + - xtesting-tox: + +- project: + name: xtesting-tox + <<: *xtesting-params + jobs: + - 'xtesting-{tag}-tox' - job-template: - name: 'xtesting-{repo}-{container}-{tag}-check' + name: 'xtesting-{repo}-{container}-{tag}-gate' parameters: - xtesting-slave: slave: '{slave}' - - xtesting-branch: - branch: '{branch}' scm: - xtesting-scm: - ref: $branch + ref: $GERRIT_REFSPEC builders: - xtesting-build-containers: <<: *xtesting-build-containers - ref: $branch - -- project: - name: 'xtesting-_-alpine-3.12-rmi' - repo: _ - port: - container: alpine - tag: '3.12' - slave: master - jobs: - - 'xtesting-{repo}-{container}-{tag}-rmi' - -- project: - name: 'xtesting-_-alpine-3.12-pull' - repo: _ - port: - container: alpine - tag: '3.12' - slave: master - jobs: - - 'xtesting-{repo}-{container}-{tag}-pull' + ref: $GERRIT_REFSPEC + buildargs: '{buildargs}' - project: - name: xtesting-opnfv-xtesting-{tag}-build + name: xtesting-opnfv-xtesting-{tag}-gate <<: *xtesting-params container: xtesting ref_arg: BRANCH path: docker/core jobs: - 'xtesting-{repo}-{container}-{tag}-gate' - - 'xtesting-{repo}-{container}-{tag}-check' - project: - name: xtesting-opnfv-xtesting-mts-{tag}-build + name: xtesting-opnfv-xtesting-mts-{tag}-gate <<: *xtesting-params container: xtesting-mts ref_arg: BRANCH path: docker/mts - exclude: - - tag: hunter - - tag: iruya - - tag: jerma - - tag: kali jobs: - 'xtesting-{repo}-{container}-{tag}-gate' - - 'xtesting-{repo}-{container}-{tag}-check' + + +- trigger: + name: xtesting-patchset-created + triggers: + - gerrit: + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: 'functest-xtesting' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' - job-template: - name: 'xtesting-{tag}-check' + name: 'xtesting-{tag}-review' project-type: multijob + triggers: + - xtesting-patchset-created: + branch: '{branch}' parameters: - xtesting-slave: slave: '{slave}' - xtesting-build_tag: build_tag: '' - - xtesting-branch: - branch: '{branch}' - - xtesting-DEBUG: - DEBUG: 'true' properties: - build-blocker: use-build-blocker: true blocking-level: 'NODE' blocking-jobs: - - '^xtesting-{tag}-(daily|check|gate)$' + - '^xtesting-{tag}-(daily|docker|review)$' builders: - multijob: name: remove former images @@ -480,24 +549,24 @@ - name: 'xtesting-opnfv-xtesting-mts-{tag}-rmi' <<: *xtesting-jobs - multijob: - name: remove dependencies + name: remove dependency projects: - - name: 'xtesting-_-alpine-3.12-rmi' + - name: 'xtesting-{repo}-{tag}-dep-rmi' <<: *xtesting-jobs - multijob: - name: pull dependencies + name: pull dependency projects: - - name: 'xtesting-_-alpine-3.12-pull' + - name: 'xtesting-{repo}-{tag}-dep-pull' <<: *xtesting-jobs - multijob: name: opnfv/xtesting projects: - - name: 'xtesting-opnfv-xtesting-{tag}-check' + - name: 'xtesting-opnfv-xtesting-{tag}-gate' <<: *xtesting-jobs - multijob: name: opnfv/xtesting-mts projects: - - name: 'xtesting-opnfv-xtesting-mts-{tag}-check' + - name: 'xtesting-opnfv-xtesting-mts-{tag}-gate' <<: *xtesting-jobs - multijob: name: opnfv/xtesting:{tag} @@ -520,112 +589,179 @@ - name: 'xtesting-opnfv-xtesting-mts-{tag}-seventh-run' <<: *xtesting-jobs +- project: + name: 'xtesting-review' + <<: *xtesting-params + jobs: + - 'xtesting-{tag}-review' + +- view: + name: xtesting-review + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^xtesting-[a-z0-9.]+-review$ + +- view: + name: xtesting-tox + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^xtesting-[a-z0-9.]+-tox$ + +- builder: + name: xtesting-push-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + sudo docker push $image + - trigger: - name: xtesting-patchset-created + name: xtesting-commit triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest-xtesting' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false + - pollscm: + cron: "*/30 * * * *" - job-template: - name: 'xtesting-{tag}-gate' + name: 'xtesting-{repo}-{container}-{tag}-build' + parameters: + - xtesting-slave: + slave: '{slave}' + scm: + - xtesting-scm: + ref: '{branch}' + builders: + - xtesting-build-containers: + <<: *xtesting-build-containers + ref: '{branch}' + buildargs: '{buildargs}' + - xtesting-push-containers: + <<: *xtesting-build-containers + ref: '{branch}' + +- project: + name: xtesting-opnfv-xtesting-{tag}-build + <<: *xtesting-params + container: xtesting + ref_arg: BRANCH + path: docker/core + jobs: + - 'xtesting-{repo}-{container}-{tag}-build' + +- project: + name: xtesting-opnfv-xtesting-mts-{tag}-build + <<: *xtesting-params + container: xtesting-mts + ref_arg: BRANCH + path: docker/mts + jobs: + - 'xtesting-{repo}-{container}-{tag}-build' + + +- job-template: + name: 'xtesting-{tag}-docker' project-type: multijob triggers: - - xtesting-patchset-created: - branch: '{branch}' + - xtesting-commit + scm: + - xtesting-scm: + ref: '{branch}' parameters: - xtesting-slave: slave: '{slave}' - - xtesting-build_tag: - build_tag: '' - - xtesting-DEBUG: - DEBUG: 'true' properties: - build-blocker: use-build-blocker: true blocking-level: 'NODE' blocking-jobs: - - '^xtesting-{tag}-(daily|check|gate)$' + - '^xtesting-{tag}-(daily|docker|review)$' builders: - multijob: - name: remove former images + name: remove dependency projects: - - name: 'xtesting-opnfv-xtesting-{tag}-rmi' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-mts-{tag}-rmi' + - name: 'xtesting-{repo}-{tag}-dep-rmi' <<: *xtesting-jobs - multijob: - name: remove dependencies + name: pull dependency projects: - - name: 'xtesting-_-alpine-3.12-rmi' - <<: *xtesting-jobs - - multijob: - name: pull dependencies - projects: - - name: 'xtesting-_-alpine-3.12-pull' + - name: 'xtesting-{repo}-{tag}-dep-pull' <<: *xtesting-jobs - multijob: name: opnfv/xtesting projects: - - name: 'xtesting-opnfv-xtesting-{tag}-gate' + - name: 'xtesting-opnfv-xtesting-{tag}-build' <<: *xtesting-jobs - multijob: name: opnfv/xtesting-mts projects: - - name: 'xtesting-opnfv-xtesting-mts-{tag}-gate' - <<: *xtesting-jobs - - multijob: - name: opnfv/xtesting:{tag} - projects: - - name: 'xtesting-opnfv-xtesting-{tag}-first-run' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-{tag}-second-run' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-{tag}-third-run' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-{tag}-fourth-run' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-{tag}-fifth-run' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-{tag}-sixth-run' - <<: *xtesting-jobs - - multijob: - name: opnfv/xtesting-mts:{tag} - projects: - - name: 'xtesting-opnfv-xtesting-mts-{tag}-seventh-run' + - name: 'xtesting-opnfv-xtesting-mts-{tag}-build' <<: *xtesting-jobs +- builder: + name: xtesting-trivy + builders: + - shell: | + sudo apt-get update && sudo apt-get install curl -y + curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b . + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + ./trivy --exit-code 1 $image + +- job-template: + name: 'xtesting-{repo}-{container}-{tag}-trivy' + triggers: + - timed: '@daily' + parameters: + - xtesting-slave: + slave: '{slave}' + builders: + - xtesting-trivy: + <<: *xtesting-containers + - project: - name: 'xtesting' + name: 'xtesting-opnfv-xtesting-trivy' <<: *xtesting-params + container: 'xtesting' jobs: - - 'xtesting-{tag}-daily' + - 'xtesting-{repo}-{container}-{tag}-trivy' + +- project: + name: 'xtesting-opnfv-xtesting-mts-trivy' + <<: *xtesting-params + container: 'xtesting-mts' + jobs: + - 'xtesting-{repo}-{container}-{tag}-trivy' - project: - name: 'xtesting-gate' + name: 'xtesting' <<: *xtesting-params jobs: - - 'xtesting-{tag}-check' - - 'xtesting-{tag}-gate' + - 'xtesting-{tag}-docker' - view: - name: xtesting + name: xtesting-docker view-type: list columns: - status @@ -634,10 +770,10 @@ - last-success - last-failure - last-duration - regex: ^xtesting-(amd64-)*[a-z]+-daily$ + regex: ^xtesting-[a-z0-9.]+-docker$ - view: - name: xtesting-gate + name: xtesting-trivy view-type: list columns: - status @@ -646,4 +782,4 @@ - last-success - last-failure - last-duration - regex: ^xtesting-(amd64-)*[a-z]+-gate$ + regex: (?!xtesting-pi)^xtesting-[a-z-0-9.]+-trivy$ diff --git a/jjb/nfvbench/nfvbench.yaml b/jjb/nfvbench/nfvbench.yaml index a9efb272a..18e2fc0a1 100644 --- a/jjb/nfvbench/nfvbench.yaml +++ b/jjb/nfvbench/nfvbench.yaml @@ -94,6 +94,7 @@ builders: - shell: | + sudo pip install tox-pip-version cd $WORKSPACE && tox cd $WORKSPACE/nfvbenchvm/dib bash verify-image.sh -v diff --git a/jjb/openci/create-ape.sh b/jjb/openci/create-ape.sh deleted file mode 100755 index 7c9b46cc6..000000000 --- a/jjb/openci/create-ape.sh +++ /dev/null @@ -1,47 +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 - -# 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 < ./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 deleted file mode 100755 index 9780119ce..000000000 --- a/jjb/openci/create-cde.sh +++ /dev/null @@ -1,47 +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 - -export PS1=${PS1:-} - -# This script creates CompositionDefinedEvent - -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 < ./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 ./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 deleted file mode 100755 index 2ece019b0..000000000 --- a/jjb/openci/create-clme.sh +++ /dev/null @@ -1,48 +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 - -export PS1=${PS1:-} - -# This script creates ConfidenceLevelModifiedEvent - -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 < ./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 ./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 deleted file mode 100644 index bdaca5742..000000000 --- a/jjb/openci/openci-odl-daily-jobs.yaml +++ /dev/null @@ -1,81 +0,0 @@ ---- -- project: - name: openci-odl - - project: '{name}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - jobs: - - 'openci-odl-autorelease-daily-{stream}' - - 'openci-odl-promote-daily-{stream}' - -# This job gets triggered manually for the demo purposes. -# -# In prototype, either what this job does needs to be integrated to -# ODL autorelease job or triggered by the upstream autorelease job. -- job-template: - name: 'openci-odl-autorelease-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - string: - name: PUBLISH_EVENT_TYPE - default: ArtifactPublishedEvent - description: 'The type of the event this job publishes' - - string: - name: PUBLISH_EVENT_ORIGIN - default: ODL - description: 'Originating community' - - string: - name: ARTIFACT_LOCATION - default: https://url/to/artifact/on/odl/nexus/$BUILD_NUMBER - description: 'The location of the artifact on ODL Nexus' - - string: - name: CONFIDENCE_LEVEL - default: "'autorelease': 'SUCCESS'" - description: 'The confidence level the published artifact gained' - - 'opnfv-build-defaults' - - builders: - - shell: - !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. -# -# This job is created for the demo purposes and might not be there for -# the prototype. -- job-template: - name: 'openci-odl-promote-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - 'opnfv-build-defaults' - - triggers: - - jms-messaging: - provider-name: openci.activemq - selector: | - JMSType = 'ConfidenceLevelModifiedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = 'os-odl-nofeature-ha' - - builders: - - shell: | - #!/bin/bash - - echo - echo "Triggered by $type" - echo "----------------------------------" - echo $CI_MESSAGE - echo "----------------------------------" - echo " Promoted ODL Autorelease artifact as release candidate!" diff --git a/jjb/openci/openci-onap-daily-jobs.yaml b/jjb/openci/openci-onap-daily-jobs.yaml deleted file mode 100644 index 88589d8ac..000000000 --- a/jjb/openci/openci-onap-daily-jobs.yaml +++ /dev/null @@ -1,81 +0,0 @@ ---- -- project: - name: openci-onap - - project: '{name}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - jobs: - - 'openci-onap-autorelease-daily-{stream}' - - 'openci-onap-promote-daily-{stream}' - -# This job gets triggered manually for the demo purposes. -# -# In prototype, either what this job does needs to be integrated to -# ONAP autorelease job or triggered by the upstream autorelease job. -- job-template: - name: 'openci-onap-autorelease-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - string: - name: PUBLISH_EVENT_TYPE - default: ArtifactPublishedEvent - description: 'The type of the event this job publishes' - - string: - name: PUBLISH_EVENT_ORIGIN - default: ONAP - description: 'Originating community' - - string: - name: ARTIFACT_LOCATION - default: https://url/to/artifact/on/onap/nexus/$BUILD_NUMBER - description: 'The location of the artifact on ONAP Nexus' - - string: - name: CONFIDENCE_LEVEL - default: "'autorelease': 'SUCCESS'" - description: 'The confidence level the published artifact gained' - - 'opnfv-build-defaults' - - builders: - - shell: - !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. -# -# This job is created for the demo purposes and might not be there for -# the prototype. -- job-template: - name: 'openci-onap-promote-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - 'opnfv-build-defaults' - - triggers: - - jms-messaging: - provider-name: openci.activemq - selector: | - JMSType = 'ConfidenceLevelModifiedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = 'k8-nosdn-onap-ha' - - builders: - - shell: | - #!/bin/bash - - echo - echo "Triggered by $type" - echo "----------------------------------" - echo $CI_MESSAGE - echo "----------------------------------" - echo " Promoted ONAP Autorelease artifact as release candidate!" diff --git a/jjb/openci/openci-opnfv-daily-jobs.yaml b/jjb/openci/openci-opnfv-daily-jobs.yaml deleted file mode 100644 index 020171bc2..000000000 --- a/jjb/openci/openci-opnfv-daily-jobs.yaml +++ /dev/null @@ -1,135 +0,0 @@ ---- -- project: - name: openci-opnfv - - project: '{name}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - scenario: - - 'os-odl-nofeature-ha': - origin: ODL - - 'k8-nosdn-onap-ha': - origin: ONAP - - jobs: - - 'openci-opnfv-{scenario}-compose-daily-{stream}' - - 'openci-opnfv-{scenario}-test-daily-{stream}' - -- job-template: - name: 'openci-opnfv-{scenario}-compose-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - string: - name: PUBLISH_EVENT_TYPE - default: CompositionDefinedEvent - description: 'The type of the event this job publishes' - - string: - name: PUBLISH_EVENT_ORIGIN - default: OPNFV - description: 'Originating community' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - description: 'The scenario that is composed' - - string: - name: SCENARIO_METADATA_LOCATION - default: https://url/to/scenario/metadata/on/opnfv/artifact/repo/$BUILD_NUMBER - description: 'The location of the scenario metadata' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - 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: JMSType = 'ArtifactPublishedEvent' and JMSOrigin = '{origin}' - - builders: - - shell: | - #!/bin/bash - - echo - echo "Triggered by $type" - echo "----------------------------------" - echo $CI_MESSAGE - echo "----------------------------------" - - shell: - !include-raw-escape: ./create-cde.sh - -- job-template: - name: 'openci-opnfv-{scenario}-test-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - string: - name: PUBLISH_EVENT_TYPE - default: ConfidenceLevelModifiedEvent - description: 'The type of the event this job publishes' - - string: - name: PUBLISH_EVENT_ORIGIN - default: OPNFV - description: 'Originating community' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - description: 'The scenario that is composed' - - string: - name: SCENARIO_METADATA_LOCATION - default: https://url/to/scenario/metadata/on/opnfv/artifact/repo/$BUILD_NUMBER - description: 'The location of the scenario metadata' - - string: - name: CONFIDENCE_LEVEL - default: "'opnfvdaily': 'SUCCESS'" - description: 'The confidence level the published artifact gained' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - 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: JMSType = 'CompositionDefinedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = '{scenario}' - - builders: - - shell: | - #!/bin/bash - - echo - echo "Triggered by $type" - echo "----------------------------------" - echo $CI_MESSAGE - echo "----------------------------------" - - shell: - !include-raw-escape: ./create-clme.sh diff --git a/jjb/openci/openci-views.yaml b/jjb/openci/openci-views.yaml deleted file mode 100644 index 08cff7c28..000000000 --- a/jjb/openci/openci-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: openci-view - views: - - project-view - project-name: openci diff --git a/jjb/opnfvtsc/opnfvtsc-rtd-jobs.yaml b/jjb/opnfvtsc/opnfvtsc-rtd-jobs.yaml deleted file mode 100644 index b1923f458..000000000 --- a/jjb/opnfvtsc/opnfvtsc-rtd-jobs.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- project: - name: opnfvtsc-rtd - project: opnfvtsc - project-name: opnfvtsc - - gerrit-skip-vote: true - project-pattern: 'opnfvtsc' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-opnfvtsc/47400/' - rtd-token: 'b8cbc26c46f1b1bd98adbf8c4488787a58d68fdd' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/opnfvtsc/opnfvtsc-views.yaml b/jjb/opnfvtsc/opnfvtsc-views.yaml deleted file mode 100644 index 7c2929557..000000000 --- a/jjb/opnfvtsc/opnfvtsc-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: opnfvtsc-view - views: - - project-view - project-name: opnfvtsc diff --git a/jjb/ovn4nfv/golang-make-test.sh b/jjb/ovn4nfv/golang-make-test.sh deleted file mode 100644 index 7ed463277..000000000 --- a/jjb/ovn4nfv/golang-make-test.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 Intel Corporation. -# 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 - -source /etc/os-release || source /usr/lib/os-release -case ${ID,,} in - ubuntu|debian) - sudo add-apt-repository -y ppa:longsleep/golang-backports - sudo apt-get update - sudo apt-get install -y build-essential golang-go - sudo apt-get -y clean && sudo apt-get -y autoremove - ;; -esac - -echo "Running unit tests in Go ${golang_version} ..." -cd $WORKSPACE -make test diff --git a/jjb/ovn4nfv/ovn4nfv-k8s-plugins-project-jobs.yaml b/jjb/ovn4nfv/ovn4nfv-k8s-plugins-project-jobs.yaml deleted file mode 100644 index 849be93c1..000000000 --- a/jjb/ovn4nfv/ovn4nfv-k8s-plugins-project-jobs.yaml +++ /dev/null @@ -1,109 +0,0 @@ ---- -- project: - name: ovn4nfv-k8s-plugin-project-jobs - - project: 'ovn4nfv-k8s-plugin' - - jobs: - - 'ovn4nfv-k8s-plugin-verify-{stream}' - - 'ovn4nfv-k8s-plugin-merge-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - -################################ -# job templates -################################ - -- job-template: - name: 'ovn4nfv-k8s-plugin-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - opnfv-build-defaults - - scm: - - git-scm-gerrit - - 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}' - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 30 - fail: true - - builders: - - ovn4nfv-k8s-plugin-unit-tests-golang - -- job-template: - name: 'ovn4nfv-k8s-plugin-merge-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - opnfv-build-defaults - - scm: - - git-scm - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 30 - fail: true - - builders: - - ovn4nfv-k8s-plugin-unit-tests-golang - -################################ -# job builders -################################ - -- builder: - name: ovn4nfv-k8s-plugin-unit-tests-golang - builders: - - shell: - !include-raw: ./golang-make-test.sh diff --git a/jjb/pharos/check-jinja2.yaml b/jjb/pharos/check-jinja2.yaml deleted file mode 100644 index e3f0df78a..000000000 --- a/jjb/pharos/check-jinja2.yaml +++ /dev/null @@ -1,98 +0,0 @@ ---- -######################## -# Job configuration to validate jinja2 files -######################## -- project: - - name: validate-pdf-templates - - project: 'pharos' - - jobs: - - 'validate-pdf-jinja2-templates-{stream}' - - stream: - - master: - branch: '{stream}' - disabled: false - - fraser: &fraser - branch: 'stable/{stream}' - disabled: false - - euphrates: - branch: 'stable/{stream}' - disabled: false - -######################## -# job templates -######################## - -- job-template: - name: 'validate-pdf-jinja2-templates-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - node: - name: SLAVE_NAME - description: Slave to execute jnija template test - default-slaves: - - lf-build1 - allowed-multiselect: true - ignore-offline-nodes: true - - scm: - - git-scm-gerrit - - 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: 'REG_EXP' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: '**/*.yaml' - - compare-type: ANT - pattern: 'config/utils/*.py' - - compare-type: ANT - pattern: 'config/installers/**/*.j2' - - compare-type: ANT - pattern: 'check-*.sh' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - - builders: - - check-pdf-jinja - - check-pdf-schema - -- builder: - name: check-pdf-jinja - builders: - - shell: | - $WORKSPACE/config/utils/check-jinja2.sh -- builder: - name: check-pdf-schema - builders: - - shell: | - $WORKSPACE/config/utils/check-schema.sh diff --git a/jjb/pharos/pharos-rtd-jobs.yaml b/jjb/pharos/pharos-rtd-jobs.yaml deleted file mode 100644 index 60bcd8a00..000000000 --- a/jjb/pharos/pharos-rtd-jobs.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -- project: - name: pharos-rtd - project: pharos - project-name: pharos - - project-pattern: 'pharos' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-pharos/47385/' - rtd-token: '12cb789478d0c3577fb62c610232b3113d3a16ad' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/pharos/pharos-views.yaml b/jjb/pharos/pharos-views.yaml deleted file mode 100644 index e413632a8..000000000 --- a/jjb/pharos/pharos-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: pharos-view - views: - - project-view - project-name: pharos diff --git a/jjb/pharos/pharos.yaml b/jjb/pharos/pharos.yaml deleted file mode 100644 index 0b5119657..000000000 --- a/jjb/pharos/pharos.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -- project: - name: pharos - - project: - - '{name}' - - disabled: false - - jobs: - - '{project}-verify-basic' diff --git a/jjb/releng/artifact-cleanup.yaml b/jjb/releng/artifact-cleanup.yaml index 2a250618c..f64650b08 100644 --- a/jjb/releng/artifact-cleanup.yaml +++ b/jjb/releng/artifact-cleanup.yaml @@ -21,14 +21,13 @@ # Required Variables: # stream: branch with - in place of / (eg. stable) # branch: branch (eg. stable) - node: master - disabled: false parameters: - project-parameter: project: '{project}' branch: '{branch}' + - opnfv-build-defaults scm: - git-scm diff --git a/jjb/releng/opnfv-docker.yaml b/jjb/releng/opnfv-docker.yaml index 7795ba27c..98d2acc54 100644 --- a/jjb/releng/opnfv-docker.yaml +++ b/jjb/releng/opnfv-docker.yaml @@ -30,6 +30,10 @@ storperf-receivers: &storperf-receivers receivers: > mbeierl@vmware.com + samplevnf-receivers: &samplevnf-receivers + receivers: > + luc.provoost@intel.com + yury.kylulin@intel.com other-receivers: &other-receivers receivers: '' @@ -95,90 +99,6 @@ dockerdir: 'docker/barometer-snmp' <<: *master <<: *other-receivers - - 'clover': - project: 'clover' - dockerdir: '.' - dockerfile: 'docker/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-ns-nginx-lb': - project: 'clover' - dockerdir: 'samples/services/nginx/docker' - dockerfile: 'subservices/lb/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-ns-nginx-proxy': - project: 'clover' - dockerdir: 'samples/services/nginx/docker' - dockerfile: 'subservices/proxy/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-ns-nginx-server': - project: 'clover' - dockerdir: 'samples/services/nginx/docker' - dockerfile: 'subservices/server/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-ns-snort-ids': - project: 'clover' - dockerdir: 'samples/services/snort_ids/docker' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-controller': - project: 'clover' - dockerdir: 'clover/controller' - dockerfile: 'docker/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-collector': - project: 'clover' - dockerdir: 'clover/collector' - dockerfile: 'docker/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-jmeter-master': - project: 'clover' - dockerdir: 'clover/tools/jmeter' - dockerfile: 'jmeter-master/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-jmeter-slave': - project: 'clover' - dockerdir: 'clover/tools/jmeter' - dockerfile: 'jmeter-slave/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-sample-app': - project: 'clover' - dockerdir: 'samples/scenarios/sample_app' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-ns-modsecurity-crs': - project: 'clover' - dockerdir: 'samples/services/modsecurity/docker' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-spark': - project: 'clover' - dockerdir: 'clover/spark/docker/clover-spark' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-spark-submit': - project: 'clover' - dockerdir: 'clover/spark/docker/spark-submit' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-clovisor': - project: 'clover' - dockerdir: 'clover/clovisor' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - 'dovetail': project: 'dovetail' <<: *master @@ -251,6 +171,11 @@ arch_tag: 'x86_64' <<: *master <<: *storperf-receivers + - 'rapid': + project: 'samplevnf' + dockerdir: 'VNFs/DPPD-PROX/helper-scripts/rapid' + <<: *master + <<: *samplevnf-receivers # projects with jobs for hunter - 'dovetail': diff --git a/jjb/releng/opnfv-utils.yaml b/jjb/releng/opnfv-utils.yaml index f85606f7e..d58330416 100644 --- a/jjb/releng/opnfv-utils.yaml +++ b/jjb/releng/opnfv-utils.yaml @@ -24,11 +24,9 @@ name: SLAVE_NAME description: Slaves to prune docker images default-slaves: - - arm-build3 - - arm-build4 - - arm-build5 - - ericsson-build4 - lf-build2 + - lf-build5 + - lf-build6 allowed-multiselect: true ignore-offline-nodes: true diff --git a/jjb/stor4nfv/stor4nfv-project.yaml b/jjb/stor4nfv/stor4nfv-project.yaml deleted file mode 100644 index 6e796cfd4..000000000 --- a/jjb/stor4nfv/stor4nfv-project.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -- project: - name: stor4nfv - - project: '{name}' - - jobs: - - '{project}-verify-basic' diff --git a/jjb/stor4nfv/stor4nfv-rtd-jobs.yaml b/jjb/stor4nfv/stor4nfv-rtd-jobs.yaml deleted file mode 100644 index 0383c77c7..000000000 --- a/jjb/stor4nfv/stor4nfv-rtd-jobs.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -- project: - name: stor4nfv-rtd - project: stor4nfv - project-name: stor4nfv - - project-pattern: 'stor4nfv' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-stor4nfv/47394/' - rtd-token: '9c189b44cf08de75dc06253558cc86ed93982cbb' - - stream: - - master: - branch: '{stream}' - disabled: false - - hunter: &hunter - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - gambia: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/stor4nfv/stor4nfv-views.yaml b/jjb/stor4nfv/stor4nfv-views.yaml deleted file mode 100644 index 74ddd2eea..000000000 --- a/jjb/stor4nfv/stor4nfv-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: stor4nfv-view - views: - - project-view - project-name: stor4nfv diff --git a/jjb/xci/bifrost-cleanup-job.yaml b/jjb/xci/bifrost-cleanup-job.yaml deleted file mode 100644 index d51776173..000000000 --- a/jjb/xci/bifrost-cleanup-job.yaml +++ /dev/null @@ -1,146 +0,0 @@ ---- -- project: - name: 'openstack-bifrost-cleanup' - # ------------------------------- - # branches - # ------------------------------- - stream: - - master: - branch: '{stream}' - - # ------------------------------- - # projects - # ------------------------------- - project: - - 'openstack': - project-repo: 'https://git.openstack.org/openstack/bifrost' - clone-location: '/opt/bifrost' - - 'opnfv': - project-repo: 'https://gerrit.opnfv.org/gerrit/releng-xci' - clone-location: '/opt/releng-xci' - - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - '{project}-bifrost-cleanup-{stream}' - -- job-template: - name: '{project}-bifrost-cleanup-{stream}' - - disabled: true - concurrent: false - - node: bifrost-verify-virtual - - # Make sure no verify job is running on any of the slaves since that would - # produce build logs after we wipe the destination directory. - properties: - - build-blocker: - blocking-jobs: - - '{project}-bifrost-verify-*' - - parameters: - - string: - name: PROJECT - default: '{project}' - - builders: - - shell: | - #!/bin/bash - - set -eu - - # DO NOT change this unless you know what you are doing. - BIFROST_GS_URL="gs://artifacts.opnfv.org/cross-community-ci/openstack/bifrost/$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/" - - # This should never happen... even 'recheck' uses the last jobs' - # gerrit information. Better exit with error so we can investigate - [[ ! -n $GERRIT_NAME ]] || [[ ! -n $GERRIT_CHANGE_NUMBER ]] && exit 1 - - echo "Removing build artifacts for $GERRIT_NAME/$GERRIT_CHANGE_NUMBER" - - if ! [[ "$BIFROST_GS_URL" =~ "/cross-community-ci/openstack/bifrost/" ]]; then - echo "Oops! BIFROST_GS_URL=$BIFROST_GS_URL does not seem like a valid" - echo "bifrost location on the Google storage server. Please double-check" - echo "that it's set properly or fix this line if necessary." - echo "gsutil will not be executed until this is fixed!" - exit 1 - fi - try_to_rm=1 - while [[ $try_to_rm -lt 6 ]]; do - gsutil -m rm -r $BIFROST_GS_URL && _exitcode=$? && break - _exitcode=$? - echo "gsutil rm failed! Trying again... (attempt #$try_to_rm)" - let try_to_rm += 1 - # Give it some time... - sleep 10 - done - exit $_exitcode - - triggers: - - '{project}-gerrit-trigger-cleanup': - branch: '{branch}' - - publishers: - # yamllint disable rule:line-length - - email: - recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com zhang.jun3g@zte.com.cn - # yamllint enable rule:line-length - - email-jenkins-admins-on-failure -# ------------------------------- -# trigger macros -# ------------------------------- -- trigger: - name: 'openstack-gerrit-trigger-cleanup' - triggers: - - gerrit: - server-name: 'review.openstack.org' - escape-quotes: true - trigger-on: - # We only run this when the change is merged or - # abandoned since we don't need the logs anymore - - change-merged-event - - change-abandoned-event - # This is an OPNFV maintenance job. We don't want to provide - # feedback on Gerrit - silent: true - silent-start: true - projects: - - project-compare-type: 'PLAIN' - project-pattern: 'openstack/bifrost' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'doc/**' - - compare-type: ANT - pattern: 'releasenotes/**' - readable-message: true - -- trigger: - name: 'opnfv-gerrit-trigger-cleanup' - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - # We only run this when the change is merged or - # abandoned since we don't need the logs anymore - - change-merged-event - - change-abandoned-event - # This is an OPNFV maintenance job. We don't want to provide - # feedback on Gerrit - silent: true - silent-start: true - projects: - - project-compare-type: 'ANT' - project-pattern: 'releng-xci' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'bifrost/**' - readable-message: true diff --git a/jjb/xci/bifrost-periodic-jobs.yaml b/jjb/xci/bifrost-periodic-jobs.yaml deleted file mode 100644 index 4c61be193..000000000 --- a/jjb/xci/bifrost-periodic-jobs.yaml +++ /dev/null @@ -1,154 +0,0 @@ ---- -- project: - project: 'releng-xci' - - name: 'bifrost-periodic' - # ------------------------------- - # Branch Anchors - # ------------------------------- - # the versions stated here default to branches which then later - # on used for checking out the branches, pulling in head of the branch. - master: &master - stream: master - openstack-bifrost-version: '{stream}' - opnfv-releng-version: 'master' - gs-pathname: '' - ocata: &ocata - stream: ocata - openstack-bifrost-version: 'stable/{stream}' - opnfv-releng-version: 'master' - gs-pathname: '/{stream}' - # ------------------------------- - # XCI PODs - # ------------------------------- - pod: - - virtual: - <<: *master - - virtual: - <<: *ocata - # ------------------------------- - # XCI PODs - # ------------------------------- - # ------------------------------- - # Supported Distros - # ------------------------------- - distro: - - 'xenial': - disabled: false - slave-label: xci-xenial-virtual - dib-os-release: 'xenial' - dib-os-element: 'ubuntu-minimal' - # yamllint disable rule:line-length - dib-os-packages: 'vlan,vim,less,bridge-utils,sudo,language-pack-en,iputils-ping,rsyslog,curl,python,debootstrap,ifenslave,ifenslave-2.6,lsof,lvm2,tcpdump,nfs-kernel-server,chrony,iptables' - # yamllint enable rule:line-length - extra-dib-elements: 'openssh-server' - - 'centos7': - disabled: true - slave-label: xci-centos7-virtual - dib-os-release: '7' - dib-os-element: 'centos7' - dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - 'suse': - disabled: true - slave-label: xci-suse-virtual - dib-os-release: '42.3' - dib-os-element: 'opensuse-minimal' - dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - 'bifrost-provision-{pod}-{distro}-periodic-{stream}' - -# ------------------------------- -# job templates -# ------------------------------- -- job-template: - name: 'bifrost-provision-{pod}-{distro}-periodic-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '^xci-os.*' - - '^xci-deploy.*' - - '^xci-functest.*' - - '^bifrost-.*periodic.*' - - '^osa-.*periodic.*' - blocking-level: 'NODE' - - logrotate-default - - parameters: - - project-parameter: - project: '{project}' - branch: '{opnfv-releng-version}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - - string: - name: XCI_FLAVOR - default: 'ha' - - string: - name: OPENSTACK_BIFROST_VERSION - default: '{openstack-bifrost-version}' - - string: - name: OPNFV_RELENG_VERSION - default: '{opnfv-releng-version}' - - string: - name: DISTRO - default: '{distro}' - - string: - name: DIB_OS_RELEASE - default: '{dib-os-release}' - - string: - name: DIB_OS_ELEMENT - default: '{dib-os-element}' - - string: - name: DIB_OS_PACKAGES - default: '{dib-os-packages}' - - string: - name: EXTRA_DIB_ELEMENTS - default: '{extra-dib-elements}' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - label: - name: SLAVE_LABEL - default: '{slave-label}' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: CI_LOOP - default: 'periodic' - - wrappers: - - fix-workspace-permissions - - scm: - - git-scm - - # trigger is disabled until we know which jobs we will have - # and adjust stuff accordingly - triggers: - - timed: '' # '@midnight' - - builders: - - description-setter: - description: "Built on $NODE_NAME - Flavor: $XCI_FLAVOR" - - 'bifrost-provision-builder' - -# -------------------------- -# builder macros -# -------------------------- -- builder: - name: bifrost-provision-builder - builders: - - shell: - !include-raw: ./bifrost-provision.sh diff --git a/jjb/xci/bifrost-provision.sh b/jjb/xci/bifrost-provision.sh deleted file mode 100755 index 4d646a676..000000000 --- a/jjb/xci/bifrost-provision.sh +++ /dev/null @@ -1,109 +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 - -trap cleanup_and_upload EXIT - -function fix_ownership() { - if [ -z "${JOB_URL+x}" ]; then - echo "Not running as part of Jenkins. Handle the logs manually." - else - # Make sure cache exists - [[ ! -d ${HOME}/.cache ]] && mkdir ${HOME}/.cache - - sudo chown -R jenkins:jenkins $WORKSPACE - sudo chown -R jenkins:jenkins ${HOME}/.cache - fi -} - -function cleanup_and_upload() { - original_exit=$? - fix_ownership - exit $original_exit -} - -# check distro to see if we support it -if [[ ! "$DISTRO" =~ (xenial|centos7|suse) ]]; then - echo "Distro $DISTRO is not supported!" - exit 1 -fi - -# remove previously cloned repos -sudo /bin/rm -rf /opt/bifrost /opt/openstack-ansible /opt/releng-xci /opt/functest - -# Fix up permissions -fix_ownership - -# ensure the versions to checkout are set -export OPENSTACK_BIFROST_VERSION=${OPENSTACK_BIFROST_VERSION:-master} -export OPNFV_RELENG_VERSION=${OPNFV_RELENG_VERSION:-master} - -# log some info -echo -e "\n" -echo "***********************************************************************" -echo "* *" -echo "* Provision OpenStack Nodes *" -echo "* *" -echo " bifrost version: $OPENSTACK_BIFROST_VERSION" -echo " releng version: $OPNFV_RELENG_VERSION" -echo "* *" -echo "***********************************************************************" -echo -e "\n" - -# clone the repos and checkout the versions -sudo git clone --quiet https://git.openstack.org/openstack/bifrost /opt/bifrost -cd /opt/bifrost && sudo git checkout --quiet $OPENSTACK_BIFROST_VERSION -echo "xci: using bifrost commit" -git show --oneline -s --pretty=format:'%h - %s (%cr) <%an>' - -sudo git clone --quiet https://gerrit.opnfv.org/gerrit/releng-xci /opt/releng-xci -cd /opt/releng-xci && sudo git checkout --quiet $OPNFV_RELENG_VERSION -echo "xci: using releng commit" -git show --oneline -s --pretty=format:'%h - %s (%cr) <%an>' - -# source flavor vars -source "$WORKSPACE/xci/config/${XCI_FLAVOR}-vars" - -# combine opnfv and upstream scripts/playbooks -sudo /bin/cp -rf /opt/releng-xci/bifrost/* /opt/bifrost/ - -# cleanup remnants of previous deployment -cd /opt/bifrost -sudo -E ./scripts/destroy-env.sh - -# provision VMs for the flavor -cd /opt/bifrost -./scripts/bifrost-provision.sh - -# list the provisioned VMs -cd /opt/bifrost -source env-vars -ironic node-list -sudo -H -E virsh list - -echo "OpenStack nodes are provisioned!" -# here we have to do something in order to capture what was the working sha1 -# hardcoding stuff for the timebeing - -cd /opt/bifrost -BIFROST_GIT_SHA1=$(git rev-parse HEAD) - -# log some info -echo -e "\n" -echo "***********************************************************************" -echo "* BIFROST SHA1 TO PIN *" -echo "* *" -echo " $BIFROST_GIT_SHA1" -echo "* *" -echo "***********************************************************************" - -echo -e "\n" diff --git a/jjb/xci/bifrost-verify-jobs.yaml b/jjb/xci/bifrost-verify-jobs.yaml deleted file mode 100644 index f895cf672..000000000 --- a/jjb/xci/bifrost-verify-jobs.yaml +++ /dev/null @@ -1,225 +0,0 @@ ---- -- project: - name: 'openstack-bifrost-verify' - # ------------------------------- - # branches - # ------------------------------- - stream: - - master: - branch: '{stream}' - # ------------------------------- - # distros - # ------------------------------- - distro: - - 'xenial': - disabled: true - dib-os-release: 'xenial' - dib-os-element: 'ubuntu-minimal' - dib-os-packages: 'vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - 'centos7': - disabled: true - dib-os-release: '7' - dib-os-element: 'centos-minimal' - dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - 'opensuse423': - disabled: true - dib-os-release: '42.3' - dib-os-element: 'opensuse-minimal' - dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' - extra-dib-elements: 'openssh-server' - # ------------------------------- - # type - # ------------------------------- - type: - - virtual - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - 'openstack-bifrost-verify-{distro}-{type}-{stream}' - -# ------------------------------- -# VM defaults -# ------------------------------- -- defaults: - name: verify_vm_defaults - test-vm-num-nodes: '3' - test-vm-node-names: 'opnfv controller00 compute00' - vm-domain-type: 'kvm' - vm-cpu: '2' - vm-disk: '30' - vm-memory-size: '4096' - vm-disk-cache: 'unsafe' - -# ------------------------------- -# job templates -# ------------------------------- -- job-template: - name: 'openstack-bifrost-verify-{distro}-{type}-{stream}' - - disabled: '{obj:disabled}' - - defaults: verify_vm_defaults - - concurrent: false - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'xci-verify-{distro}-.*' - - 'xci-.*-{distro}-merge-.*' - - '.*-bifrost-verify.*-{type}' - - throttle: - max-per-node: 2 - max-total: 10 - categories: - - xci-verify-virtual - option: category - - blocking-level: 'NODE' - - parameters: - - string: - name: PROJECT_REPO - default: 'https://git.openstack.org/openstack/bifrost' - - string: - name: DISTRO - default: '{distro}' - - string: - name: DIB_OS_RELEASE - default: '{dib-os-release}' - - string: - name: DIB_OS_ELEMENT - default: '{dib-os-element}' - - string: - name: EXTRA_DIB_ELEMENTS - default: '{extra-dib-elements}' - - string: - name: DIB_OS_PACKAGES - default: '{dib-os-packages}' - - string: - name: TEST_VM_NUM_NODES - default: '{test-vm-num-nodes}' - - string: - name: TEST_VM_NODE_NAMES - default: '{test-vm-node-names}' - - string: - name: VM_DOMAIN_TYPE - default: '{vm-domain-type}' - - string: - name: VM_CPU - default: '{vm-cpu}' - - string: - name: VM_DISK - default: '{vm-disk}' - - string: - name: VM_MEMORY_SIZE - default: '{vm-memory-size}' - - string: - name: VM_DISK_CACHE - default: '{vm-disk-cache}' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: CI_LOOP - default: 'verify' - - scm: - - git: - url: '$PROJECT_REPO' - refspec: '$GERRIT_REFSPEC' - branches: - - 'origin/$BRANCH' - skip-tag: true - choosing-strategy: 'gerrit' - timeout: 10 - wipe-workspace: true - - triggers: - - 'openstack-gerrit-trigger': - branch: '{branch}' - - builders: - - bifrost-set-name - - bifrost-build - - wrappers: - - fix-workspace-permissions - - build-timeout: - timeout: 180 - - publishers: - # yamllint disable rule:line-length - - email: - recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com julienjut@gmail.com - # yamllint enable rule:line-length - - email-jenkins-admins-on-failure - - postbuildscript: - builders: - - role: BOTH - build-on: - - ABORTED - - FAILURE - - NOT_BUILT - - SUCCESS - - UNSTABLE - build-steps: - - shell: !include-raw: ./xci-cleanup.sh - mark-unstable-if-failed: true - -# ------------------------------- -# trigger macros -# ------------------------------- -- trigger: - name: 'openstack-gerrit-trigger' - triggers: - - gerrit: - server-name: 'review.openstack.org' - escape-quotes: true - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - comment-added-contains-event: - comment-contains-value: 'recheck' - silent-start: true - custom-url: '* $JOB_NAME $BUILD_URL' - projects: - - project-compare-type: 'PLAIN' - project-pattern: 'openstack/bifrost' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'doc/**' - - compare-type: ANT - pattern: 'releasenotes/**' - readable-message: true - -# -------------------------- -# builder macros -# -------------------------- -- builder: - name: bifrost-set-name - builders: - - description-setter: - description: "Built on $NODE_NAME" - -- builder: - name: bifrost-build - builders: - - shell: - !include-raw: ./bifrost-verify.sh diff --git a/jjb/xci/bifrost-verify.sh b/jjb/xci/bifrost-verify.sh deleted file mode 100755 index c810212e3..000000000 --- a/jjb/xci/bifrost-verify.sh +++ /dev/null @@ -1,54 +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 - -git clone https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE/releng-xci - -cd $WORKSPACE -git fetch $PROJECT_REPO $GERRIT_REFSPEC && sudo git checkout FETCH_HEAD - -# combine opnfv and upstream scripts/playbooks -/bin/cp -rf $WORKSPACE/releng-xci/xci/infra/bifrost/* $WORKSPACE/ - -cd $WORKSPACE/releng-xci -cat > bifrost_test.sh< xci_test.sh< /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 "---------------------------------------------------------------------------------" - - # select the right PDF/IDF - export PDF=$WORKSPACE/xci/var/${NODE_NAME}-pdf.yml - export IDF=$WORKSPACE/xci/var/${NODE_NAME}-idf.yml - if [[ "$NODE_NAME" =~ "virtual" ]]; then - export PDF=$WORKSPACE/xci/var/pdf.yml - export IDF=$WORKSPACE/xci/var/idf.yml - fi - - cd $WORKSPACE/xci && ./xci-deploy.sh -p $PDF -i $IDF - - echo "Prepare OPNFV VM for Tests" - echo "---------------------------------------------------------------------------------" - export XCI_PATH=$WORKSPACE - export XCI_VENV=${XCI_PATH}/venv - source $XCI_VENV/bin/activate - while read var; do - declare -x "\${var}" 2>/dev/null - echo $var - done < ${XCI_PATH}/.cache/xci.env && cd ${XCI_PATH}/xci && \ - ansible-playbook -i playbooks/dynamic_inventory.py playbooks/prepare-tests.yml - ssh root@192.168.122.2 "/root/prepare-tests.sh" - echo "---------------------------------------------------------------------------------" - -- builder: - name: 'xci-daily-functest-macro' - builders: - - shell: | - #!/bin/bash - 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: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - - ssh root@192.168.122.2 "/root/run-yardstick.sh" diff --git a/jjb/xci/xci-deploy.sh b/jjb/xci/xci-deploy.sh deleted file mode 100755 index 71cf96d8d..000000000 --- a/jjb/xci/xci-deploy.sh +++ /dev/null @@ -1,75 +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 - -cd $WORKSPACE/xci - -# for daily jobs, we want to use working versions -# for periodic jobs, we will use whatever is set in the job, probably master -if [[ "$CI_LOOP" == "daily" ]]; then - # source pinned-vars to get releng version - source ./config/pinned-versions - - # checkout the version - git checkout -q $OPNFV_RELENG_VERSION - echo "Info: Using $OPNFV_RELENG_VERSION" -elif [[ "$CI_LOOP" == "periodic" ]]; then - echo "Info: Using $OPNFV_RELENG_VERSION" -fi - -# this is just an example to give the idea about what we need to do -# so ignore this part for the timebeing as we need to adjust xci-deploy.sh -# to take this into account while deploying anyways -# clone openstack-ansible -# stable/ocata already use pinned versions so this is only valid for master -if [[ "$CI_LOOP" == "periodic" && "$OPENSTACK_OSA_VERSION" == "master" ]]; then - cd $WORKSPACE - # get the url to openstack-ansible git - source ./config/env-vars - echo "Info: Capture the ansible role requirement versions before doing anything" - git clone -q $OPENSTACK_OSA_GIT_URL - cd openstack-ansible - cat ansible-role-requirements.yml | while IFS= read -r line - do - if [[ $line =~ "src:" ]]; then - repo_url=$(echo $line | awk {'print $2'}) - repo_sha1=$(git ls-remote $repo_url $OPENSTACK_OSA_VERSION | awk {'print $1'}) - fi - echo "$line" | sed -e "s|master|$repo_sha1|" >> opnfv-ansible-role-requirements.yml - done - echo "Info: SHA1s of ansible role requirements" - echo "-------------------------------------------------------------------------" - cat opnfv-ansible-role-requirements.yml - echo "-------------------------------------------------------------------------" -fi - -# proceed with the deployment -cd $WORKSPACE/xci -./xci-deploy.sh - -if [[ "$JOB_NAME" =~ "periodic" && "$OPENSTACK_OSA_VERSION" == "master" ]]; then - # if we arrived here without failing, it means we have something we can pin - # this is again here to show the intention - cd $WORKSPACE/openstack-ansible - OSA_GIT_SHA1=$(git rev-parse HEAD) - - # log some info - echo -e "\n" - echo "***********************************************************************" - echo "* OSA SHA1 TO PIN *" - echo "* *" - echo " $OSA_GIT_SHA1" - echo "* *" - echo "***********************************************************************" -fi - -echo -e "\n" diff --git a/jjb/xci/xci-merge-jobs.yaml b/jjb/xci/xci-merge-jobs.yaml deleted file mode 100644 index 666ca9680..000000000 --- a/jjb/xci/xci-merge-jobs.yaml +++ /dev/null @@ -1,492 +0,0 @@ ---- -- project: - name: 'opnfv-xci-merge' - - project: releng-xci - # ------------------------------- - # branches - # ------------------------------- - stream: - - master: - branch: '{stream}' - disabled: true - # ------------------------------- - # distros - # ------------------------------- - distro: - - ubuntu: - disabled: true - kill-phase-on: FAILURE - abort-all-job: true - - centos: - disabled: true - kill-phase-on: NEVER - abort-all-job: false - - opensuse: - disabled: true - kill-phase-on: FAILURE - abort-all-job: true - # ------------------------------- - # postmerge promotion phases - # ------------------------------- - phase: - - 'deploy' - - 'healthcheck' - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - 'xci-merge-virtual-{stream}' - - 'xci-merge-promote-virtual-{stream}' - - 'xci-merge-{distro}-virtual-{stream}' - - 'xci-merge-{distro}-{phase}-virtual-{stream}' -# ------------------------------- -# job templates -# ------------------------------- -- job-template: - name: 'xci-merge-virtual-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: 'releng-xci' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'false' - forbidden-file-paths: - - compare-type: ANT - pattern: 'xci/scripts/vm/**' - - compare-type: ANT - pattern: 'docs/**' - - compare-type: ANT - pattern: 'prototypes/**' - - compare-type: ANT - pattern: 'upstream/**' - - compare-type: ANT - pattern: 'INFO.yaml' - - project-compare-type: 'REG_EXP' - project-pattern: 'sfc|sdnvpn|releng-xci-scenarios' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - file-paths: - - compare-type: ANT - pattern: 'scenarios/**' - readable-message: true - custom-url: '* $JOB_NAME $BUILD_URL' - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: CI_LOOP - default: 'merge' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: DISTRO - default: 'all' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - builders: - - 'xci-merge-set-scenario-macro' - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - multijob: - name: deploy and test - condition: SUCCESSFUL - projects: - - name: 'xci-merge-opensuse-virtual-{stream}' - current-parameters: false - predefined-parameters: | - DISTRO=opensuse - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - CI_LOOP=$CI_LOOP - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - name: 'xci-merge-ubuntu-virtual-{stream}' - current-parameters: false - predefined-parameters: | - DISTRO=ubuntu - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - CI_LOOP=$CI_LOOP - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - name: 'xci-merge-centos-virtual-{stream}' - current-parameters: false - predefined-parameters: | - DISTRO=centos - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - CI_LOOP=$CI_LOOP - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: false - kill-phase-on: NEVER - abort-all-job: false - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - multijob: - name: promote - condition: SUCCESSFUL - projects: - - name: 'xci-merge-promote-virtual-{stream}' - current-parameters: true - predefined-parameters: | - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - CI_LOOP=$CI_LOOP - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true - -- job-template: - name: 'xci-merge-{distro}-virtual-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'xci-verify-{distro}-.*' - - 'xci-merge-{distro}-.*' - - 'xci-os.*' - - 'xci-k8.*' - - 'openstack-bifrost-verify-{distro}-.*' - - 'xci-osa-verify-{distro}-.*' - - 'xci-osa-periodic-{distro}-.*' - blocking-level: 'NODE' - - throttle: - max-per-node: 1 - max-total: 3 - categories: - - xci-verify-virtual - option: category - - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-gerrit - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: CI_LOOP - default: 'merge' - - string: - name: FUNCTEST_VERSION - default: 'hunter' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: DISTRO - default: '{distro}' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - builders: - - 'xci-merge-set-scenario-macro' - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'xci-merge-{distro}-deploy-virtual-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - 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}' - - multijob: - name: healthcheck - condition: SUCCESSFUL - projects: - - name: 'xci-merge-{distro}-healthcheck-virtual-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - 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: '{kill-phase-on}' - abort-all-job: '{abort-all-job}' - - publishers: - - postbuildscript: - builders: - - role: BOTH - build-on: - - ABORTED - - FAILURE - - NOT_BUILT - - SUCCESS - - UNSTABLE - build-steps: - - shell: !include-raw: ./xci-cleanup.sh - mark-unstable-if-failed: true - -- job-template: - name: 'xci-merge-{distro}-{phase}-virtual-{stream}' - - disabled: false - - concurrent: false - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '.*-bifrost-verify-.*' - - '.*-bifrost-periodic-.*' - - 'osa-verify-.*' - - 'osa-periodic-.*' - blocking-level: 'NODE' - - parameters: - - string: - name: PROJECT - default: $GERRIT_PROJECT - - string: - name: DISTRO - default: 'ubuntu' - - string: - name: CI_LOOP - default: 'merge' - - string: - name: FUNCTEST_VERSION - default: 'hunter' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: XCI_FLAVOR - default: 'mini' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: OPNFV_RELENG_DEV_PATH - default: $WORKSPACE/ - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - wrappers: - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-gerrit - - builders: - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - 'xci-merge-{phase}-macro' - -- job-template: - name: 'xci-merge-promote-virtual-{stream}' - - disabled: false - - concurrent: false - - properties: - - logrotate-default - - parameters: - - string: - name: PROJECT - default: $GERRIT_PROJECT - - string: - name: CI_LOOP - default: 'merge' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: DISTRO - default: 'all' - - string: - name: OPNFV_RELENG_DEV_PATH - default: $WORKSPACE/ - - string: - name: LOCAL_PROMOTION_METADATA_FILE - default: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - string: - name: REMOTE_PROMOTION_METADATA_FILE - default: "gs://artifacts.opnfv.org/xci/pipeline/merge/$DEPLOY_SCENARIO.properties" - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - wrappers: - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - builders: - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - 'xci-merge-promote-macro' - -# ------------------------------- -# builder macros -# ------------------------------- -- builder: - name: 'xci-merge-set-scenario-macro' - builders: - - shell: - !include-raw: ./xci-set-scenario.sh - -- builder: - name: 'xci-merge-deploy-macro' - builders: - - shell: - !include-raw: ./xci-start-new-vm.sh - - - shell: - !include-raw: ./xci-start-deployment.sh - -- builder: - name: 'xci-merge-healthcheck-macro' - builders: - - shell: - !include-raw: ./xci-run-functest.sh - -- builder: - name: 'xci-merge-promote-macro' - builders: - - shell: - !include-raw: ./xci-promote.sh diff --git a/jjb/xci/xci-promote.sh b/jjb/xci/xci-promote.sh deleted file mode 100755 index d8d61bee2..000000000 --- a/jjb/xci/xci-promote.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 Ericsson 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 -############################################################################## - -#---------------------------------------------------------------------- -# 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. -#---------------------------------------------------------------------- - -# ensure GERRIT_TOPIC is set -GERRIT_TOPIC="${GERRIT_TOPIC:-''}" - -# skip the healthcheck if the patch doesn't impact the deployment -if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then - echo "Skipping the healthcheck!" - exit 0 -fi - -# fail if promotion metadata file doesn't exist -if [ ! -f $LOCAL_PROMOTION_METADATA_FILE ]; then - echo "Unable to find promotion metadata file $LOCAL_PROMOTION_METADATA_FILE" - echo "Skipping promotion!" - exit 1 -fi - -# put additional info into the metadata file so we can use that for displaying the information -echo "PROMOTED_BY=$BUILD_URL" >> $LOCAL_PROMOTION_METADATA_FILE -echo "PROMOTED_ON=$(date -u '+%F_%H:%M'UTC)" >> $LOCAL_PROMOTION_METADATA_FILE - -# upload promotion metadata file to OPNFV artifact repo -echo "Storing promotion metadata as $REMOTE_PROMOTION_METADATA_FILE" -gsutil cp $LOCAL_PROMOTION_METADATA_FILE $REMOTE_PROMOTION_METADATA_FILE > /dev/null 2>&1 - -# update the file metadata on gs to prevent the use of cached version of the file -gsutil -m setmeta -r -h "Content-Type:text/html" \ - -h "Cache-Control:private, max-age=0, no-transform" \ - $REMOTE_PROMOTION_METADATA_FILE > /dev/null 2>&1 - -# log the metadata to console -echo "Stored the metadata for $DEPLOY_SCENARIO" -echo "---------------------------------------------------------------------------------" -gsutil cat $REMOTE_PROMOTION_METADATA_FILE -echo "---------------------------------------------------------------------------------" -echo "Scenario $DEPLOY_SCENARIO has successfully been promoted!" diff --git a/jjb/xci/xci-rtd-jobs.yaml b/jjb/xci/xci-rtd-jobs.yaml deleted file mode 100644 index d21aad5a0..000000000 --- a/jjb/xci/xci-rtd-jobs.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- project: - name: releng-xci-rtd - project: releng-xci - project-name: releng-xci - - gerrit-skip-vote: true - project-pattern: 'releng-xci' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-releng-xci/47389/' - rtd-token: '7dbc774ea9a625296d2e973aff3e79af26b15d4d' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/xci/xci-run-functest.sh b/jjb/xci/xci-run-functest.sh deleted file mode 100755 index 992194ca3..000000000 --- a/jjb/xci/xci-run-functest.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 SUSE 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 nounset - -#---------------------------------------------------------------------- -# 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. -#---------------------------------------------------------------------- - -# ensure GERRIT_TOPIC is set -GERRIT_TOPIC="${GERRIT_TOPIC:-''}" - -# skip the healthcheck if the patch doesn't impact the deployment -if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then - echo "Skipping the healthcheck!" - exit 0 -fi - -# if the scenario is external, we need to wipe WORKSPACE to place releng-xci there since -# the project where the scenario is coming from is cloned and the patch checked out to the -# xci/scenarios/$DEPLOY_SCENARIO to be synched on clean VM -# apart from that, we need releng-xci stuff in WORKSPACE for things to function correctly on Jenkins. -# if the change is coming to releng-xci, we don't need to do anything since the patch is checked -# out to the WORKSPACE anyways -if [[ $GERRIT_PROJECT != "releng-xci" ]]; then - cd $HOME && /bin/rm -rf $WORKSPACE - git clone https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE && cd $WORKSPACE - chmod -R go-rwx $WORKSPACE/xci/scripts/vm -fi - -# skip the deployment if the scenario is not supported on this distro -OPNFV_SCENARIO_REQUIREMENTS=$WORKSPACE/xci/opnfv-scenario-requirements.yml -if ! sed -n "/^- scenario: $DEPLOY_SCENARIO$/,/^$/p" $OPNFV_SCENARIO_REQUIREMENTS | grep -q $DISTRO; then - echo "# SKIPPED: Scenario $DEPLOY_SCENARIO is NOT supported on $DISTRO" - exit 0 -fi - -# set XCI_VENV for ansible -export XCI_PATH=/home/devuser/releng-xci -export XCI_VENV=${XCI_PATH}/venv - -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "source $XCI_VENV/bin/activate; \ - while read var; do declare -x \"\${var}\" 2>/dev/null; done < ${XCI_PATH}/.cache/xci.env && \ - cd releng-xci/xci && ansible-playbook -i playbooks/dynamic_inventory.py playbooks/prepare-tests.yml" -echo "Prepare OPNFV VM for Tests" -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "/root/prepare-tests.sh" -echo "Running Functest" -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "/root/run-functest.sh" -# Record exit code -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 1 - ;; -esac - -echo "Functest log" -echo "---------------------------------------------------------------------------------" -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "cat $FUNCTEST_LOG" -echo "---------------------------------------------------------------------------------" -exit ${functest_exit} diff --git a/jjb/xci/xci-set-scenario.sh b/jjb/xci/xci-set-scenario.sh deleted file mode 100755 index ccea16f87..000000000 --- a/jjb/xci/xci-set-scenario.sh +++ /dev/null @@ -1,265 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 SUSE 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 adding -# the info about installer and scenario into the commit message or using -# the topic branch names. This results in either skipping the real verification -# totally or skipping the determining the installer and scenario programmatically. -# It is important to note that this feature is only available to generic scenarios -# and only single installer/scenario pair is allowed. -# The input in commit message should be placed at the end of the commit message body, -# before the signed-off and change-id lines. -# -# Pattern to be searched in Commit Message -# deploy-scenario: -# installer-type: -# Examples: -# deploy-scenario:os-odl-nofeature -# installer-type:osa -# -# deploy-scenario:k8-nosdn-nofeature -# installer-type:kubespray -# -# Patterns to be searched in topic branch name -# skip-verify -# skip-deployment -# force-verify -function override_scenario() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" - - # ensure the metadata we record is consistent for all types of patches including skipped ones - # extract releng-xci sha - XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD) - - # extract scenario sha which is same as releng-xci sha for generic scenarios - SCENARIO_SHA=$XCI_SHA - - # process topic branch names - if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment|force-verify ]]; then - [[ "$GERRIT_TOPIC" =~ force-verify ]] && echo "Forcing CI verification using default scenario and installer!" - [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]] && echo "Skipping verification!" - echo "INSTALLER_TYPE=osa" >> $WORK_DIRECTORY/scenario.properties - echo "DEPLOY_SCENARIO=os-nosdn-nofeature" >> $WORK_DIRECTORY/scenario.properties - echo "XCI_SHA=$XCI_SHA" >> $WORK_DIRECTORY/scenario.properties - echo "SCENARIO_SHA=$SCENARIO_SHA" >> $WORK_DIRECTORY/scenario.properties - echo "PROJECT_NAME=$GERRIT_PROJECT" >> $WORK_DIRECTORY/scenario.properties - log_scenario_properties - exit 0 - fi - - # process commit message - if [[ "$GERRIT_CHANGE_COMMIT_MESSAGE" =~ "installer-type:" && "$GERRIT_CHANGE_COMMIT_MESSAGE" =~ "deploy-scenario:" ]]; then - INSTALLER_TYPE=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | awk '/installer-type:/' RS=" " | cut -d":" -f2) - DEPLOY_SCENARIO=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | awk '/deploy-scenario:/' RS=" " | cut -d":" -f2) - - if [[ -z "$INSTALLER_TYPE" || -z "$DEPLOY_SCENARIO" ]]; then - echo "Installer type or deploy scenario is not specified. Falling back to programmatically determining them." - else - echo "Recording the installer '$INSTALLER_TYPE' and scenario '$DEPLOY_SCENARIO' for downstream jobs" - echo "INSTALLER_TYPE=$INSTALLER_TYPE" >> $WORK_DIRECTORY/scenario.properties - echo "DEPLOY_SCENARIO=$DEPLOY_SCENARIO" >> $WORK_DIRECTORY/scenario.properties - echo "XCI_SHA=$XCI_SHA" >> $WORK_DIRECTORY/scenario.properties - echo "SCENARIO_SHA=$SCENARIO_SHA" >> $WORK_DIRECTORY/scenario.properties - echo "PROJECT_NAME=$GERRIT_PROJECT" >> $WORK_DIRECTORY/scenario.properties - log_scenario_properties - exit 0 - fi - else - echo "Installer type or deploy scenario is not specified. Falling back to programmatically determining them." - fi -} - -# This function determines the default scenario for changes coming to releng-xci -# by processing the Gerrit change and using diff to see what changed. -# -# The stuff in releng-xci is for the installer and other common things so the -# determination is based on those. -# -# Pattern -# releng-xci/installer//: -function determine_default_scenario() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" - - # get the changeset - cd $WORKSPACE - # We need to set default scenario for changes that mess with installers - INSTALLERS=$(git diff HEAD^..HEAD --name-only -- 'xci/installer' | cut -d "/" -f 3 | uniq) - for CHANGED_INSTALLER in $INSTALLERS; do - case $CHANGED_INSTALLER in - kubespray) - DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='k8-nosdn-nofeature' - ;; - # Default case (including OSA changes) - *) - DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature' - ;; - esac - done - # For all other changes, we only need to set a default scenario if it's not set already - if git diff HEAD^..HEAD --name-only | grep -q -v 'xci/installer'; then - [[ ${#DEPLOY_SCENARIO[@]} -eq 0 ]] && DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature' - fi - - # extract releng-xci sha - XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD) - - # TODO: we need to fix this so we actually extract the scenario sha by cloning releng-xci-scenarios - # for the determined scenario. it is crucial for promotion... - SCENARIO_SHA=$XCI_SHA -} - -# This function determines the impacted scenario by processing the Gerrit -# change and using diff to see what changed. If changed files belong to a scenario -# its name gets recorded for deploying and testing the right scenario. -# -# Pattern -# /scenarios//: -function determine_scenario() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" - - # remove the clone that is done via jenkins and place releng-xci there so the - # things continue functioning properly - cd $HOME && /bin/rm -rf $WORKSPACE - git clone -q https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE && cd $WORKSPACE - - # fix the permissions so ssh doesn't complain due to having world-readable keyfiles - chmod -R go-rwx $WORKSPACE/xci/scripts/vm - - # clone the project repo and fetch the patchset to process for further processing - git clone -q https://gerrit.opnfv.org/gerrit/$GERRIT_PROJECT $WORK_DIRECTORY/$GERRIT_PROJECT - cd $WORK_DIRECTORY/$GERRIT_PROJECT - git fetch -q https://gerrit.opnfv.org/gerrit/$GERRIT_PROJECT $GERRIT_REFSPEC && git checkout -q FETCH_HEAD - - # process the diff to find out what scenario(s) are impacted - there should only be 1 - DEPLOY_SCENARIO+=$(git diff HEAD^..HEAD --name-only | grep scenarios | awk -F '[/|/]' '{print $2}' | uniq) - - # extract releng-xci sha - XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD) - - # extract scenario sha - SCENARIO_SHA=$(cd $WORK_DIRECTORY/$GERRIT_PROJECT && git rev-parse HEAD) -} - -# This function allows developers to specify the specific XCI flavor for the -# impacted scenario by adding the XCI Flavor info about the specific scenario. -# This results in either skipping the real verification -# totally or skipping the determining the installer and scenario programmatically. -# It is important to note that this feature is only available to generic scenarios -# and only single installer/scenario pair is allowed. -# The input in commit message should be placed at the end of the commit message body, -# before the signed-off and change-id lines. -# -# Pattern to be searched in Commit Message -# xci-flavor: -# Examples: -# xci-flavor:noha -function override_xci_flavor() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" - - # process commit message for XCI Flavor - if [[ "$GERRIT_CHANGE_COMMIT_MESSAGE" =~ "xci-flavor:" ]]; then - XCI_FLAVOR=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | awk '/xci-flavor:/' RS=" " | cut -d":" -f2) - - if [[ -z "$XCI_FLAVOR" ]]; then - XCI_FLAVOR='mini' - echo "XCI flavor is not specified. The default is specified instead (i.e. mini). Falling back to programmatically determining them." - echo "XCI_FLAVOR=mini" >> $WORK_DIRECTORY/scenario.properties - else - echo "Recording the XCI flavor '$XCI_FLAVOR' for downstream jobs" - echo "XCI_FLAVOR=$XCI_FLAVOR" >> $WORK_DIRECTORY/scenario.properties - fi - else - XCI_FLAVOR='mini' - echo "XCI flavor is not specified. The default is specified instead (i.e. mini). Falling back to programmatically determining them." - echo "XCI_FLAVOR=mini" >> $WORK_DIRECTORY/scenario.properties - fi - -} - -function log_scenario_properties() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" - echo "-------------------------------------------------------------------------" - cat $WORK_DIRECTORY/scenario.properties - echo "-------------------------------------------------------------------------" -} - -echo "Determining the impacted scenario" - -declare -a DEPLOY_SCENARIO - -# ensure GERRIT_TOPIC is set -GERRIT_TOPIC="${GERRIT_TOPIC:-''}" - -# this directory is where the temporary clones and files are created -# while extracting the impacted scenario -WORK_DIRECTORY=/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO -/bin/rm -rf $WORK_DIRECTORY && mkdir -p $WORK_DIRECTORY - -if [[ $GERRIT_PROJECT == "releng-xci" ]]; then - determine_default_scenario -else - determine_scenario -fi -override_xci_flavor -override_scenario - -# ensure single scenario is impacted - if [[ $(IFS=$'\n' echo ${DEPLOY_SCENARIO[@]} | wc -w) != 1 ]]; then - echo "Change impacts multiple scenarios!" - echo "XCI doesn't support testing of changes that impact multiple scenarios currently." - echo "Please split your change into multiple different/dependent changes, each modifying single scenario." - exit 1 -fi - -# set the installer -case ${DEPLOY_SCENARIO[0]} in - os-*) - INSTALLER_TYPE=osa - ;; - k8-*) - INSTALLER_TYPE=kubespray - ;; - *) - echo "Unable to determine the installer. Exiting!" - exit 1 - ;; -esac - -# save the installer and scenario names into java properties file -# so they can be injected to downstream jobs via envInject -echo "Recording the installer '$INSTALLER_TYPE' and scenario '${DEPLOY_SCENARIO[0]}' and SHAs for downstream jobs" -echo "INSTALLER_TYPE=$INSTALLER_TYPE" >> $WORK_DIRECTORY/scenario.properties -echo "DEPLOY_SCENARIO=$DEPLOY_SCENARIO" >> $WORK_DIRECTORY/scenario.properties -echo "XCI_SHA=$XCI_SHA" >> $WORK_DIRECTORY/scenario.properties -echo "SCENARIO_SHA=$SCENARIO_SHA" >> $WORK_DIRECTORY/scenario.properties -echo "PROJECT_NAME=$GERRIT_PROJECT" >> $WORK_DIRECTORY/scenario.properties - -# log scenario.properties to console to ease the troubleshooting when needed -log_scenario_properties - -# skip scenario support check if the job is promotion job -if [[ "$JOB_NAME" =~ (os|k8) ]]; then - exit 0 -fi - -# skip the deployment if the scenario is not supported on this distro -OPNFV_SCENARIO_REQUIREMENTS=$WORKSPACE/xci/opnfv-scenario-requirements.yml -if ! sed -n "/^- scenario: ${DEPLOY_SCENARIO[0]}$/,/^$/p" $OPNFV_SCENARIO_REQUIREMENTS | grep -q $DISTRO; then - echo "# SKIPPED: Scenario ${DEPLOY_SCENARIO[0]} is NOT supported on $DISTRO" - exit 0 -fi diff --git a/jjb/xci/xci-start-deployment.sh b/jjb/xci/xci-start-deployment.sh deleted file mode 100755 index 102ca41c3..000000000 --- a/jjb/xci/xci-start-deployment.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 SUSE 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 -############################################################################## - -#---------------------------------------------------------------------- -# 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. -#---------------------------------------------------------------------- - -# ensure GERRIT_TOPIC is set -GERRIT_TOPIC="${GERRIT_TOPIC:-''}" - -# skip the deployment if the patch doesn't impact the deployment -if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then - echo "Skipping the deployment!" - exit 0 -fi - -# if the scenario is external, we need to wipe WORKSPACE to place releng-xci there since -# the project where the scenario is coming from is cloned and the patch checked out to the -# xci/scenarios/$DEPLOY_SCENARIO to be synched on clean VM -# apart from that, we need releng-xci stuff in WORKSPACE for things to function correctly on Jenkins. -# if the change is coming to releng-xci, we don't need to do anything since the patch is checked -# out to the WORKSPACE anyways -if [[ $GERRIT_PROJECT != "releng-xci" ]]; then - cd $HOME && /bin/rm -rf $WORKSPACE - git clone https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE && cd $WORKSPACE - chmod -R go-rwx $WORKSPACE/xci/scripts/vm -fi - -# skip the deployment if the scenario is not supported on this distro -OPNFV_SCENARIO_REQUIREMENTS=$WORKSPACE/xci/opnfv-scenario-requirements.yml -if ! sed -n "/^- scenario: $DEPLOY_SCENARIO$/,/^$/p" $OPNFV_SCENARIO_REQUIREMENTS | grep -q $DISTRO; then - echo "# SKIPPED: Scenario $DEPLOY_SCENARIO is NOT supported on $DISTRO" - exit 0 -fi - -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "cd releng-xci && ./xci_test.sh" diff --git a/jjb/xci/xci-start-new-vm.sh b/jjb/xci/xci-start-new-vm.sh deleted file mode 100755 index 79b6a785a..000000000 --- a/jjb/xci/xci-start-new-vm.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 SUSE 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 -############################################################################## - -#---------------------------------------------------------------------- -# 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. -#---------------------------------------------------------------------- - -# ensure GERRIT_TOPIC is set -GERRIT_TOPIC="${GERRIT_TOPIC:-''}" - -# skip the deployment if the patch doesn't impact the deployment -if [[ "$GERRIT_TOPIC" =~ 'skip-verify' ]]; then - echo "Skipping the deployment!" - exit 0 -fi - -# if the scenario is external, we need to wipe WORKSPACE to place releng-xci there since -# the project where the scenario is coming from is cloned and the patch checked out to the -# xci/scenarios/$DEPLOY_SCENARIO to be synched on clean VM -# apart from that, we need releng-xci stuff in WORKSPACE for things to function correctly on Jenkins. -# if the change is coming to releng-xci, we don't need to do anything since the patch is checked -# out to the WORKSPACE anyways -if [[ $GERRIT_PROJECT != "releng-xci" ]]; then - cd $HOME && /bin/rm -rf $WORKSPACE - git clone https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE && cd $WORKSPACE - chmod -R go-rwx $WORKSPACE/xci/scripts/vm -fi - -# skip the deployment if the scenario is not supported on this distro -OPNFV_SCENARIO_REQUIREMENTS=$WORKSPACE/xci/opnfv-scenario-requirements.yml -if ! sed -n "/^- scenario: $DEPLOY_SCENARIO$/,/^$/p" $OPNFV_SCENARIO_REQUIREMENTS | grep -q $DISTRO; then - echo "# SKIPPED: Scenario $DEPLOY_SCENARIO is NOT supported on $DISTRO" - exit 0 -fi - -cd $WORKSPACE - -# The start-new-vm.sh script will copy the entire releng-xci directory -# so lets prepare the test script now so it can be copied by the script. -# Please do not move it elsewhere or you would have to move it to the VM -# yourself. -cat > xci_test.sh< scenario_overrides.yml <<-EOF ---- -xci_scenarios_overrides: - - scenario: $DEPLOY_SCENARIO - version: $GERRIT_PATCHSET_REVISION - refspec: $GERRIT_REFSPEC -EOF -fi - -chmod a+x xci_test.sh - -export XCI_BUILD_CLEAN_VM_OS=false -export XCI_UPDATE_CLEAN_VM_OS=true - -./xci/scripts/vm/start-new-vm.sh $DISTRO diff --git a/jjb/xci/xci-verify-jobs.yaml b/jjb/xci/xci-verify-jobs.yaml deleted file mode 100644 index 799ef6e96..000000000 --- a/jjb/xci/xci-verify-jobs.yaml +++ /dev/null @@ -1,327 +0,0 @@ ---- -- project: - name: 'opnfv-xci-verify' - - project: releng-xci - # ------------------------------- - # branches - # ------------------------------- - stream: - - master: - branch: '{stream}' - # ------------------------------- - # distros - # ------------------------------- - distro: - - ubuntu: - disabled: false - successful: false - failed: false - unstable: false - notbuilt: false - - centos: - disabled: true - successful: true - failed: true - unstable: true - notbuilt: true - - opensuse: - disabled: false - successful: true - failed: true - unstable: true - notbuilt: true - # ------------------------------- - # type - # ------------------------------- - type: - - virtual - # ------------------------------- - # patch verification phases - # ------------------------------- - phase: - - 'deploy' - - 'healthcheck' - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - 'xci-verify-{distro}-{type}-{stream}' - - 'xci-verify-{distro}-{phase}-{type}-{stream}' -# ------------------------------- -# job templates -# ------------------------------- -- job-template: - name: 'xci-verify-{distro}-{type}-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'xci-verify-{distro}-.*' - - 'xci-merge-{distro}-.*' - - 'xci-os-.*' - - 'xci-k8-.*' - - 'openstack-bifrost-verify-{distro}-.*' - - 'xci-osa-verify-{distro}-.*' - - 'xci-osa-periodic-{distro}-.*' - blocking-level: 'NODE' - - throttle: - max-per-node: 2 - max-total: 10 - categories: - - xci-verify-virtual - option: category - - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'true' - - 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: 'releng-xci' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'false' - forbidden-file-paths: - - compare-type: ANT - pattern: 'xci/scripts/vm/**' - - compare-type: ANT - pattern: 'docs/**' - - compare-type: ANT - pattern: 'upstream/**' - - project-compare-type: 'REG_EXP' - project-pattern: 'sfc|sdnvpn|releng-xci-scenarios' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - file-paths: - - compare-type: ANT - pattern: 'scenarios/**' - readable-message: true - custom-url: '* $JOB_NAME $BUILD_URL' - skip-vote: - successful: '{obj:successful}' - failed: '{obj:failed}' - unstable: '{obj:unstable}' - notbuilt: '{obj:notbuilt}' - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: DISTRO - default: '{distro}' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: CI_LOOP - default: 'verify' - - string: - name: FUNCTEST_VERSION - default: 'hunter' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - 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" - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'xci-verify-{distro}-deploy-{type}-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - 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 - - multijob: - name: healthcheck - condition: SUCCESSFUL - projects: - - name: 'xci-verify-{distro}-healthcheck-{type}-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - 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: NEVER - abort-all-job: true - - publishers: - - postbuildscript: - builders: - - role: BOTH - build-on: - - ABORTED - - NOT_BUILT - - SUCCESS - - UNSTABLE - build-steps: - - shell: !include-raw: ./xci-cleanup.sh - mark-unstable-if-failed: true - - -- job-template: - name: 'xci-verify-{distro}-{phase}-{type}-{stream}' - - disabled: false - - concurrent: true - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '.*-bifrost-verify-.*' - - '.*-bifrost-periodic-.*' - - 'osa-verify-.*' - - 'osa-periodic-.*' - blocking-level: 'NODE' - - parameters: - - string: - name: PROJECT - default: $GERRIT_PROJECT - - string: - name: DISTRO - default: 'ubuntu' - - string: - name: CI_LOOP - default: 'verify' - - string: - name: FUNCTEST_VERSION - default: 'hunter' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: XCI_FLAVOR - default: 'mini' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: OPNFV_RELENG_DEV_PATH - default: $WORKSPACE/ - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - wrappers: - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-gerrit - - builders: - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - 'xci-verify-{phase}-macro' - -# ------------------------------- -# 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: - !include-raw: ./xci-set-scenario.sh - -- builder: - name: 'xci-verify-deploy-macro' - builders: - - shell: - !include-raw: ./xci-start-new-vm.sh - - - shell: - !include-raw: ./xci-start-deployment.sh - -- builder: - name: 'xci-verify-healthcheck-macro' - builders: - - shell: - !include-raw: ./xci-run-functest.sh diff --git a/jjb/xci/xci-views.yaml b/jjb/xci/xci-views.yaml deleted file mode 100644 index ee1e53a59..000000000 --- a/jjb/xci/xci-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: xci-view - views: - - project-view - project-name: xci