+---
- project:
name: 'netvirt'
project: 'netvirt'
installer: 'netvirt'
-#####################################
-# branch definitions
-#####################################
+ #####################################
+ # branch definitions
+ #####################################
stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
- - carbon:
- branch: 'stable/carbon'
- gs-pathname: ''
- disabled: false
-#####################################
-# patch verification phases
-#####################################
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ - carbon:
+ branch: 'stable/carbon'
+ gs-pathname: ''
+ disabled: false
+ #####################################
+ # patch verification phases
+ #####################################
phase:
- - 'create-apex-vms':
- slave-label: 'odl-netvirt-virtual-intel'
- - 'install-netvirt':
- slave-label: 'odl-netvirt-virtual-intel'
- - 'postprocess':
- slave-label: 'odl-netvirt-virtual-intel'
-#####################################
-# jobs
-#####################################
+ - 'create-apex-vms':
+ slave-label: 'odl-netvirt-virtual-intel'
+ - 'install-netvirt':
+ slave-label: 'odl-netvirt-virtual-intel'
+ - 'postprocess':
+ slave-label: 'odl-netvirt-virtual-intel'
+ #####################################
+ # jobs
+ #####################################
jobs:
- - 'odl-netvirt-verify-virtual-{stream}'
- - 'odl-netvirt-verify-virtual-{phase}-{stream}'
+ - 'odl-netvirt-verify-virtual-{stream}'
+ - 'odl-netvirt-verify-virtual-{phase}-{stream}'
+
#####################################
# job templates
#####################################
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 5
- max-per-node: 1
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 5
+ max-per-node: 1
+ option: 'project'
scm:
- - git:
- url: https://gerrit.opnfv.org/gerrit/apex
- branches:
- - 'origin/master'
- timeout: 15
- wipe-workspace: true
+ - git:
+ url: https://gerrit.opnfv.org/gerrit/apex
+ branches:
+ - 'origin/master'
+ timeout: 15
+ wipe-workspace: true
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - string:
- name: NETVIRT_ARTIFACT
- default: distribution-karaf.tar.gz
- - 'odl-netvirt-virtual-intel-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: NETVIRT_ARTIFACT
+ default: distribution-karaf.tar.gz
+ - 'odl-netvirt-virtual-intel-defaults'
triggers:
- - gerrit:
- server-name: 'git.opendaylight.org'
- trigger-on:
- # - comment-added-contains-event:
- # comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : SUCCESS'
- # - comment-added-contains-event:
- # comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : UNSTABLE'
- - comment-added-contains-event:
- comment-contains-value: 'opnfv-test'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: '{project}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- readable-message: true
+ - gerrit:
+ server-name: 'git.opendaylight.org'
+ trigger-on:
+ # yamllint disable rule:line-length
+ # - comment-added-contains-event:
+ # comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : SUCCESS'
+ # - comment-added-contains-event:
+ # comment-contains-value: 'https://jenkins.opendaylight.org/releng/job/netvirt-patch-test-current-carbon/.*?/ : UNSTABLE'
+ # yamllint enable rule:line-length
+ - comment-added-contains-event:
+ comment-contains-value: 'opnfv-test'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ readable-message: true
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - multijob:
- name: create-apex-vms
- condition: SUCCESSFUL
- projects:
- - name: 'odl-netvirt-verify-virtual-create-apex-vms-{stream}'
- current-parameters: false
- predefined-parameters: |
- BRANCH=$BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
- GERRIT_PATCHSET_NUMBER=$GERRIT_PATCHSET_NUMBER
- GERRIT_PATCHSET_REVISION=$GERRIT_PATCHSET_REVISION
- NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT
- APEX_ENV_NUMBER=$APEX_ENV_NUMBER
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- - multijob:
- name: install-netvirt
- condition: SUCCESSFUL
- projects:
- - name: 'odl-netvirt-verify-virtual-install-netvirt-{stream}'
- current-parameters: false
- predefined-parameters: |
- ODL_BRANCH={branch}
- BRANCH=$BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
- GERRIT_PATCHSET_NUMBER=$GERRIT_PATCHSET_NUMBER
- GERRIT_PATCHSET_REVISION=$GERRIT_PATCHSET_REVISION
- NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- - multijob:
- name: functest
- condition: SUCCESSFUL
- projects:
- - name: 'functest-netvirt-virtual-suite-master'
- predefined-parameters: |
- DEPLOY_SCENARIO=os-odl_l3-nofeature-ha
- FUNCTEST_SUITE_NAME=odl_netvirt
- RC_FILE_PATH=$HOME/cloner-info/overcloudrc
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: false
- - multijob:
- name: postprocess
- condition: ALWAYS
- projects:
- - name: 'odl-netvirt-verify-virtual-postprocess-{stream}'
- current-parameters: false
- predefined-parameters: |
- BRANCH=$BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
- GERRIT_PATCHSET_NUMBER=$GERRIT_PATCHSET_NUMBER
- GERRIT_PATCHSET_REVISION=$GERRIT_PATCHSET_REVISION
- NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: false
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: create-apex-vms
+ condition: SUCCESSFUL
+ projects:
+ - name: 'odl-netvirt-verify-virtual-create-apex-vms-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ BRANCH=$BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
+ GERRIT_PATCHSET_NUMBER=$GERRIT_PATCHSET_NUMBER
+ GERRIT_PATCHSET_REVISION=$GERRIT_PATCHSET_REVISION
+ NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT
+ APEX_ENV_NUMBER=$APEX_ENV_NUMBER
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: install-netvirt
+ condition: SUCCESSFUL
+ projects:
+ - name: 'odl-netvirt-verify-virtual-install-netvirt-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ ODL_BRANCH={branch}
+ BRANCH=$BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
+ GERRIT_PATCHSET_NUMBER=$GERRIT_PATCHSET_NUMBER
+ GERRIT_PATCHSET_REVISION=$GERRIT_PATCHSET_REVISION
+ NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: functest
+ condition: SUCCESSFUL
+ projects:
+ - name: 'functest-netvirt-virtual-suite-master'
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-odl_l3-nofeature-ha
+ FUNCTEST_SUITE_NAME=odl_netvirt
+ RC_FILE_PATH=$HOME/cloner-info/overcloudrc
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: false
+ - multijob:
+ name: postprocess
+ condition: ALWAYS
+ projects:
+ - name: 'odl-netvirt-verify-virtual-postprocess-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ BRANCH=$BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_ID=$GERRIT_CHANGE_ID
+ GERRIT_PATCHSET_NUMBER=$GERRIT_PATCHSET_NUMBER
+ GERRIT_PATCHSET_REVISION=$GERRIT_PATCHSET_REVISION
+ NETVIRT_ARTIFACT=$NETVIRT_ARTIFACT
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: false
- job-template:
name: 'odl-netvirt-verify-virtual-{phase}-{stream}'
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 5
- max-per-node: 1
- option: 'project'
- - build-blocker:
- use-build-blocker: true
- blocking-jobs:
- - 'odl-netvirt-verify-virtual-create-apex-vms-.*'
- - 'odl-netvirt-verify-virtual-install-netvirt-.*'
- - 'functest-netvirt-virtual-suite-.*'
- - 'odl-netvirt-verify-virtual-postprocess-.*'
- block-level: 'NODE'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 5
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'odl-netvirt-verify-virtual-create-apex-vms-.*'
+ - 'odl-netvirt-verify-virtual-install-netvirt-.*'
+ - 'functest-netvirt-virtual-suite-.*'
+ - 'odl-netvirt-verify-virtual-postprocess-.*'
+ block-level: 'NODE'
wrappers:
- - ssh-agent-wrapper
- - timeout:
- timeout: 360
- fail: true
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 360
+ fail: true
scm:
- - git:
- url: https://gerrit.opnfv.org/gerrit/apex
- branches:
- - 'origin/master'
- timeout: 15
- wipe-workspace: true
+ - git:
+ url: https://gerrit.opnfv.org/gerrit/apex
+ branches:
+ - 'origin/master'
+ timeout: 15
+ wipe-workspace: true
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{slave-label}-defaults'
- - '{installer}-defaults'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-odl_l2-bgpvpn-noha'
- description: 'Scenario to deploy and test'
- - string:
- name: GS_URL
- default: artifacts.opnfv.org/apex
- description: "URL to Google Storage with snapshot artifacts."
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{slave-label}-defaults'
+ - '{installer}-defaults'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-odl_l2-bgpvpn-noha'
+ description: 'Scenario to deploy and test'
+ - string:
+ name: GS_URL
+ default: artifacts.opnfv.org/apex
+ description: "URL to Google Storage with snapshot artifacts."
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - '{project}-verify-{phase}-builder'
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - '{project}-verify-{phase}-builder'
#####################################
# builder macros
#####################################
- builder:
name: 'netvirt-verify-create-apex-vms-builder'
builders:
- - shell:
- !include-raw: ../apex/apex-snapshot-deploy.sh
+ - shell:
+ !include-raw: ../apex/apex-snapshot-deploy.sh
- builder:
name: 'netvirt-verify-install-netvirt-builder'
builders:
- - shell:
- !include-raw: ./download-netvirt-artifact.sh
- - shell:
- !include-raw: ./install-netvirt.sh
+ - shell:
+ !include-raw: ./download-netvirt-artifact.sh
+ - shell:
+ !include-raw: ./install-netvirt.sh
- builder:
name: 'netvirt-verify-postprocess-builder'
builders:
- - shell:
- !include-raw: ./postprocess-netvirt.sh
+ - shell:
+ !include-raw: ./postprocess-netvirt.sh
pushd ${BUILD_DIRECTORY}
make clean
popd
+export PYTHONPATH=${WORKSPACE}
python3 apex/build.py $BUILD_ARGS
RPM_VERSION=$(grep Version: $WORKSPACE/build/rpm_specs/opnfv-apex.spec | awk '{ print $2 }')-$(echo $OPNFV_ARTIFACT_VERSION | tr -d '_-')
# list the contents of BUILD_OUTPUT directory
# Install dev build
mkdir -p ~/tmp
+ rm -rf ~/tmp/.build
mv -f .build ~/tmp/
sudo pip3 install --upgrade --force-reinstall .
mv -f ~/tmp/.build .
set -o nounset
set -o pipefail
+RPM_LIST=$WORKSPACE/ci/utilities/rpms_list
RPM_WORKDIR=$WORKSPACE/rpmbuild
RPM_DIR=$RPM_WORKDIR/RPMS/x86_64/
cd $WORKSPACE/
# source the opnfv.properties to get ARTIFACT_VERSION
source $WORKSPACE/opnfv.properties
-# upload property files
-gsutil cp $WORKSPACE/opnfv.properties gs://$OPNFV_ARTIFACT_URL/opnfv.properties > gsutil.properties.log 2>&1
-gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
+# Check if all the appropriate RPMs were generated
+echo "Checking if all the Barometer RPMs were created"
+echo "-----------------------------------------------"
+echo
+
+if [ -d $RPM_DIR]
+then
+ ls $RPM_DIR > list_of_gen_pack
+else
+ echo "Can't access folder $RPM_DIR with rpm packages"
+ echo "Barometer nightly build FAILED"
+ exit 1
+fi
+
+for PACKAGENAME in `cat $RPM_LIST`
+do
+ if ! grep -q $PACKAGENAME list_of_gen_pack
+ then
+ echo "$PACKAGENAME is missing"
+ echo "Barometer nightly build FAILED"
+ exit 2
+ fi
+done
+
+#remove the file you no longer need.
+rm list_of_gen_pack
echo "Uploading the barometer RPMs to artifacts.opnfv.org"
echo "---------------------------------------------------"
echo "Problem while uploading barometer RPMs to gs://$OPNFV_ARTIFACT_URL!"
echo "Check log $WORKSPACE/gsutil.log on the appropriate build server"
exit 1
+else
+ # upload property files only if build is successful
+ gsutil cp $WORKSPACE/opnfv.properties gs://$OPNFV_ARTIFACT_URL/opnfv.properties > gsutil.properties.log 2>&1
+ gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
fi
gsutil -m setmeta \
+---
###################################################
# All the jobs except verify have been removed!
# They will only be enabled on request by projects!
project: '{name}'
jobs:
- - 'barometer-verify-{stream}'
- - 'barometer-merge-{stream}'
- - 'barometer-daily-{stream}'
+ - 'barometer-verify-{stream}'
+ - 'barometer-merge-{stream}'
+ - 'barometer-daily-{stream}'
stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
- - danube:
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- disabled: false
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
- job-template:
name: 'barometer-verify-{stream}'
disabled: '{obj:disabled}'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
scm:
- - git-scm-gerrit
+ - 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'
+ - 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: |
- pwd
- cd src
- make clobber
- make
+ - shell: |
+ pwd
+ cd src
+ make clobber
+ make
- job-template:
name: 'barometer-merge-{stream}'
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 3
- max-per-node: 2
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 3
+ max-per-node: 2
+ option: 'project'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
scm:
- - git-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}'
- disable-strict-forbidden-file-verification: 'true'
- forbidden-file-paths:
- - compare-type: ANT
- pattern: 'docs/**'
+ - 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}'
+ disable-strict-forbidden-file-verification: 'true'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**'
builders:
- - shell: |
- pwd
- cd src
- make clobber
- make
+ - shell: |
+ pwd
+ cd src
+ make clobber
+ make
- job-template:
name: 'barometer-daily-{stream}'
concurrent: false
properties:
- - logrotate-default
+ - logrotate-default
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - barometer-project-parameter:
- gs-pathname: '{gs-pathname}'
- - 'opnfv-build-centos-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - barometer-project-parameter:
+ gs-pathname: '{gs-pathname}'
+ - 'opnfv-build-centos-defaults'
scm:
- - git-scm
+ - git-scm
triggers:
- - timed: '@midnight'
+ - timed: '@midnight'
builders:
- - shell:
- !include-raw-escape: ./barometer-build.sh
- - shell:
- !include-raw-escape: ./barometer-upload-artifact.sh
+ - shell:
+ !include-raw-escape: ./barometer-build.sh
+ - shell:
+ !include-raw-escape: ./barometer-upload-artifact.sh
########################
# parameter macros
- parameter:
name: barometer-project-parameter
parameters:
- - string:
- name: GS_URL
- default: '$GS_BASE{gs-pathname}'
- description: "URL to Google Storage."
+ - string:
+ name: GS_URL
+ default: '$GS_BASE{gs-pathname}'
+ description: "URL to Google Storage."
+---
####################################
# job configuration for bottlenecks
####################################
project: 'bottlenecks'
-#--------------------------------
-# BRANCH ANCHORS
-#--------------------------------
+ # -------------------------------
+ # BRANCH ANCHORS
+ # -------------------------------
master: &master
- stream: master
- branch: '{stream}'
- #This is used for common project file storage
- gs-pathname: ''
- #This is used for different test suite dependent packages storage
- gs-packagepath: '/{suite}'
- #docker tag used for version control
- docker-tag: 'latest'
+ stream: master
+ branch: '{stream}'
+ # This is used for common project file storage
+ gs-pathname: ''
+ # This is used for different test suite dependent packages storage
+ gs-packagepath: '/{suite}'
+ # docker tag used for version control
+ docker-tag: 'latest'
danube: &danube
- stream: danube
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- gs-packagepath: '/{stream}/{suite}'
- docker-tag: 'stable'
-#--------------------------------
-# POD, INSTALLER, AND BRANCH MAPPING
-#--------------------------------
-# Installers using labels
-# CI PODs
-# This section should only contain the installers
-# that have been switched using labels for slaves
-#--------------------------------
+ stream: danube
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ gs-packagepath: '/{stream}/{suite}'
+ docker-tag: 'stable'
+ # -------------------------------
+ # POD, INSTALLER, AND BRANCH MAPPING
+ # -------------------------------
+ # Installers using labels
+ # CI PODs
+ # This section should only contain the installers
+ # that have been switched using labels for slaves
+ # -------------------------------
pod:
-#compass CI PODs
- - baremetal:
- slave-label: compass-baremetal-master
- installer: compass
- auto-trigger-name: 'daily-trigger-disabled'
- <<: *master
- - virtual:
- slave-label: compass-virtual-master
- installer: compass
- auto-trigger-name: 'daily-trigger-disabled'
- <<: *master
- - baremetal:
- slave-label: compass-baremetal-branch
- installer: compass
- auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
- - virtual:
- slave-label: compass-virtual-branch
- installer: compass
- auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
-
-#--------------------------------
-# None-CI PODs
-#--------------------------------
- # - orange-pod2:
- # slave-label: '{pod}'
- # installer: joid
- # auto-trigger-name: 'daily-trigger-disabled'
- # <<: *danube
- # - orange-pod2:
- # slave-label: '{pod}'
- # installer: joid
- # auto-trigger-name: 'daily-trigger-disabled'
- # <<: *master
-#--------------------------------------------
+ # compass CI PODs
+ - baremetal:
+ slave-label: compass-baremetal-master
+ installer: compass
+ auto-trigger-name: 'daily-trigger-disabled'
+ <<: *master
+ - virtual:
+ slave-label: compass-virtual-master
+ installer: compass
+ auto-trigger-name: 'daily-trigger-disabled'
+ <<: *master
+ - baremetal:
+ slave-label: compass-baremetal-branch
+ installer: compass
+ auto-trigger-name: 'daily-trigger-disabled'
+ <<: *danube
+ - virtual:
+ slave-label: compass-virtual-branch
+ installer: compass
+ auto-trigger-name: 'daily-trigger-disabled'
+ <<: *danube
+
+ # -------------------------------
+ # None-CI PODs
+ # -------------------------------
+ # - orange-pod2:
+ # slave-label: '{pod}'
+ # installer: joid
+ # auto-trigger-name: 'daily-trigger-disabled'
+ # <<: *danube
+ # - orange-pod2:
+ # slave-label: '{pod}'
+ # installer: joid
+ # auto-trigger-name: 'daily-trigger-disabled'
+ # <<: *master
+ # -------------------------------------------
suite:
- - 'posca_stress_traffic'
- - 'posca_stress_ping'
+ - 'posca_stress_traffic'
+ - 'posca_stress_ping'
jobs:
- - 'bottlenecks-{installer}-{suite}-{pod}-daily-{stream}'
+ - 'bottlenecks-{installer}-{suite}-{pod}-daily-{stream}'
################################
# job templates
name: 'bottlenecks-{installer}-{suite}-{pod}-daily-{stream}'
wrappers:
- - build-name:
- name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
- - timeout:
- timeout: 180
- abort: true
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+ - timeout:
+ timeout: 180
+ abort: true
triggers:
- - '{auto-trigger-name}'
+ - '{auto-trigger-name}'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{slave-label}-defaults'
- - '{installer}-defaults'
- - 'bottlenecks-params-{slave-label}'
- - string:
- name: REPO_DIR
- default: "/home/opnfv/bottlenecks"
- description: "Directory where the repository is cloned"
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-odl_l2-nofeature-ha'
- - string:
- name: GERRIT_REFSPEC_DEBUG
- default: 'true'
- description: "Gerrit refspec for debug."
- - string:
- name: SUITE_NAME
- default: '{suite}'
- description: "test suite name."
- - string:
- name: DOCKER_TAG
- default: '{docker-tag}'
- description: "docker image tag used for version control"
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{slave-label}-defaults'
+ - '{installer}-defaults'
+ - 'bottlenecks-params-{slave-label}'
+ - string:
+ name: REPO_DIR
+ default: "/home/opnfv/bottlenecks"
+ description: "Directory where the repository is cloned"
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-odl_l2-nofeature-ha'
+ - string:
+ name: GERRIT_REFSPEC_DEBUG
+ default: 'true'
+ description: "Gerrit refspec for debug."
+ - string:
+ name: SUITE_NAME
+ default: '{suite}'
+ description: "test suite name."
+ - string:
+ name: DOCKER_TAG
+ default: '{docker-tag}'
+ description: "docker image tag used for version control"
scm:
- - git-scm
+ - git-scm
builders:
- - 'bottlenecks-env-cleanup'
- - 'bottlenecks-run-suite'
+ - 'bottlenecks-env-cleanup'
+ - 'bottlenecks-run-suite'
publishers:
- - email:
- recipients: gabriel.yuyang@huawei.com, liyin11@huawei.com
- - email-jenkins-admins-on-failure
+ - email:
+ recipients: gabriel.yuyang@huawei.com, liyin11@huawei.com
+ - email-jenkins-admins-on-failure
########################
# builder macros
- builder:
name: bottlenecks-env-cleanup
builders:
- - shell:
- !include-raw: ./bottlenecks-cleanup.sh
+ - shell:
+ !include-raw: ./bottlenecks-cleanup.sh
- builder:
name: bottlenecks-run-suite
builders:
- - shell:
- !include-raw: ./bottlenecks-run-suite.sh
+ - shell:
+ !include-raw: ./bottlenecks-run-suite.sh
####################
# parameter macros
- parameter:
name: 'bottlenecks-params-compass-baremetal-master'
parameters:
- - string:
- name: BOTTLENECKS_DB_TARGET
- default: 'http://testresults.opnfv.org/test/api/v1/results'
- description: 'Arguments to use in order to choose the backend DB'
+ - string:
+ name: BOTTLENECKS_DB_TARGET
+ default: 'http://testresults.opnfv.org/test/api/v1/results'
+ description: 'Arguments to use in order to choose the backend DB'
- parameter:
name: 'bottlenecks-params-compass-virtual-master'
parameters:
- - string:
- name: BOTTLENECKS_DB_TARGET
- default: 'http://testresults.opnfv.org/test/api/v1/results'
- description: 'Arguments to use in order to choose the backend DB'
+ - string:
+ name: BOTTLENECKS_DB_TARGET
+ default: 'http://testresults.opnfv.org/test/api/v1/results'
+ description: 'Arguments to use in order to choose the backend DB'
- parameter:
name: 'bottlenecks-params-compass-baremetal-branch'
parameters:
- - string:
- name: BOTTLENECKS_DB_TARGET
- default: 'http://testresults.opnfv.org/test/api/v1/results'
- description: 'Arguments to use in order to choose the backend DB'
+ - string:
+ name: BOTTLENECKS_DB_TARGET
+ default: 'http://testresults.opnfv.org/test/api/v1/results'
+ description: 'Arguments to use in order to choose the backend DB'
- parameter:
name: 'bottlenecks-params-compass-virtual-branch'
parameters:
- - string:
- name: BOTTLENECKS_DB_TARGET
- default: 'http://testresults.opnfv.org/test/api/v1/results'
- description: 'Arguments to use in order to choose the backend DB'
+ - string:
+ name: BOTTLENECKS_DB_TARGET
+ default: 'http://testresults.opnfv.org/test/api/v1/results'
+ description: 'Arguments to use in order to choose the backend DB'
+---
###################################################
# Non-ci jobs for Bottlenecks project
# They will only be enabled on request by projects!
project: 'bottlenecks'
jobs:
- - 'bottlenecks-verify-{stream}'
- - 'bottlenecks-merge-{stream}'
- - 'bottlenecks-{suite}-upload-artifacts-{stream}'
+ - 'bottlenecks-verify-{stream}'
+ - 'bottlenecks-merge-{stream}'
+ - 'bottlenecks-{suite}-upload-artifacts-{stream}'
stream:
- - master:
- branch: '{stream}'
- #This is used for common project file storage
- gs-pathname: ''
- #This is used for different test suite dependent packages storage
- gs-packagepath: '/{suite}'
- disabled: false
- - danube:
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- gs-packagepath: '/{stream}/{suite}'
- disabled: false
+ - master:
+ branch: '{stream}'
+ # This is used for common project file storage
+ gs-pathname: ''
+ # This is used for different test suite dependent packages storage
+ gs-packagepath: '/{suite}'
+ disabled: false
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ gs-packagepath: '/{stream}/{suite}'
+ disabled: false
suite:
- - 'rubbos'
- - 'vstf'
- - 'posca_stress_traffic'
- - 'posca_stress_ping'
+ - 'rubbos'
+ - 'vstf'
+ - 'posca_stress_traffic'
+ - 'posca_stress_ping'
################################
# job templates
disabled: '{obj:disabled}'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
scm:
- - git-scm-gerrit
+ - 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}'
+ - 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:
- #- bottlenecks-hello
- - bottlenecks-unit-tests
+ # - bottlenecks-hello
+ - bottlenecks-unit-tests
- job-template:
name: 'bottlenecks-merge-{stream}'
disabled: '{obj:disabled}'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
scm:
- - git-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}'
+ - 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}'
builders:
- - bottlenecks-hello
- #- bottlenecks-unit-tests
+ - bottlenecks-hello
+ # - bottlenecks-unit-tests
- job-template:
name: 'bottlenecks-{suite}-upload-artifacts-{stream}'
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 1
- max-per-node: 1
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+ option: 'project'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
- - bottlenecks-parameter:
- gs-packagepath: '{gs-packagepath}'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
+ - bottlenecks-parameter:
+ gs-packagepath: '{gs-packagepath}'
scm:
- - git-scm
+ - git-scm
builders:
- - 'bottlenecks-builder-upload-artifact'
- - 'bottlenecks-workspace-cleanup'
+ - 'bottlenecks-builder-upload-artifact'
+ - 'bottlenecks-workspace-cleanup'
####################
# parameter macros
- parameter:
name: bottlenecks-parameter
parameters:
- - string:
- name: CACHE_DIR
- default: $WORKSPACE/cache{gs-packagepath}
- description: "the cache to store packages downloaded from public IP"
- - string:
- name: SUITE_URL
- default: gs://artifacts.opnfv.org/bottlenecks{gs-packagepath}
- description: "LF artifacts url for storage of bottlenecks packages"
- - string:
- name: PACKAGE_URL
- default: http://205.177.226.237:9999/bottlenecks{gs-packagepath}/
- description: "the url where we store the packages used for bottlenecks rubbos"
+ - string:
+ name: CACHE_DIR
+ default: $WORKSPACE/cache{gs-packagepath}
+ description: "the cache to store packages downloaded from public IP"
+ - string:
+ name: SUITE_URL
+ default: gs://artifacts.opnfv.org/bottlenecks{gs-packagepath}
+ description: "LF artifacts url for storage of bottlenecks packages"
+ - string:
+ name: PACKAGE_URL
+ default: http://205.177.226.237:9999/bottlenecks{gs-packagepath}/
+ description: "the url where we store the packages used for bottlenecks rubbos"
####################################
-#builders for bottlenecks project
+# builders for bottlenecks project
####################################
- builder:
name: bottlenecks-builder-upload-artifact
builders:
- - shell: |
- #!/bin/bash
- set -o errexit
+ - shell: |
+ #!/bin/bash
+ set -o errexit
- echo "Bottlenecks: upload to artifacts from the public IP"
+ echo "Bottlenecks: upload to artifacts from the public IP"
- [[ -d $CACHE_DIR ]] || mkdir -p $CACHE_DIR
+ [[ -d $CACHE_DIR ]] || mkdir -p $CACHE_DIR
- for file in $(curl -s $PACKAGE_URL |
- grep href |
- sed 's/.*href="//' |
- sed 's/".*//' |
- grep '^[a-zA-Z].*'); do
- curl --connect-timeout 10 -o $CACHE_DIR/$file $PACKAGE_URL$file -v
- echo "bottlenecks: copy file $CACHE_DIR/$file to $SUITE_URL"
- gsutil cp $CACHE_DIR/$file $SUITE_URL
- done
+ for file in $(curl -s $PACKAGE_URL |
+ grep href |
+ sed 's/.*href="//' |
+ sed 's/".*//' |
+ grep '^[a-zA-Z].*'); do
+ curl --connect-timeout 10 -o $CACHE_DIR/$file $PACKAGE_URL$file -v
+ echo "bottlenecks: copy file $CACHE_DIR/$file to $SUITE_URL"
+ gsutil cp $CACHE_DIR/$file $SUITE_URL
+ done
- builder:
name: bottlenecks-workspace-cleanup
builders:
- - shell: |
- #!/bin/bash
- set -o errexit
+ - shell: |
+ #!/bin/bash
+ set -o errexit
- echo "Bottlenecks: cleanup cache used for storage downloaded packages"
+ echo "Bottlenecks: cleanup cache used for storage downloaded packages"
- /bin/rm -rf $CACHE_DIR
+ /bin/rm -rf $CACHE_DIR
- builder:
name: bottlenecks-unit-tests
builders:
- - shell: |
- #!/bin/bash
- set -o errexit
- set -o pipefail
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o pipefail
- echo "Running unit tests..."
- cd $WORKSPACE
- virtualenv $WORKSPACE/bottlenecks_venv
- source $WORKSPACE/bottlenecks_venv/bin/activate
+ echo "Running unit tests..."
+ cd $WORKSPACE
+ virtualenv $WORKSPACE/bottlenecks_venv
+ source $WORKSPACE/bottlenecks_venv/bin/activate
- # install python packages
- easy_install -U setuptools
- easy_install -U pip
- pip install -r $WORKSPACE/requirements/verify.txt
+ # install python packages
+ easy_install -U setuptools
+ easy_install -U pip
+ pip install -r $WORKSPACE/requirements/verify.txt
- # unit tests
- /bin/bash $WORKSPACE/verify.sh
+ # unit tests
+ /bin/bash $WORKSPACE/verify.sh
- deactivate
+ deactivate
- builder:
name: bottlenecks-hello
builders:
- - shell: |
- #!/bin/bash
- set -o errexit
+ - shell: |
+ #!/bin/bash
+ set -o errexit
- echo -e "Wellcome to Bottlenecks! \nMerge event is planning to support more functions! "
+ echo -e "Wellcome to Bottlenecks! \nMerge event is planning to support more functions! "
+---
# SPDX-license-identifier: Apache-2.0
########################
# Job configuration for opnfv-anteater (security audit)
project: anteaterfw
jobs:
- - 'opnfv-security-audit-verify-{stream}'
- - 'opnfv-security-audit-weekly-{stream}'
+ - 'opnfv-security-audit-verify-{stream}'
+ - 'opnfv-security-audit-weekly-{stream}'
stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
########################
# job templates
disabled: '{obj:disabled}'
parameters:
- - label:
- name: SLAVE_LABEL
- default: 'ericsson-build3'
- description: 'Slave label on Jenkins'
- - project-parameter:
- project: releng
- branch: '{branch}'
+ - label:
+ name: SLAVE_LABEL
+ default: 'ericsson-build3'
+ description: 'Slave label on Jenkins'
+ - project-parameter:
+ project: releng
+ branch: '{branch}'
triggers:
- - timed: '@weekly'
+ - timed: '@weekly'
builders:
- - anteater-security-audit-weekly
+ - anteater-security-audit-weekly
- job-template:
name: 'opnfv-security-audit-verify-{stream}'
disabled: '{obj:disabled}'
parameters:
- - label:
- name: SLAVE_LABEL
- default: 'ericsson-build3'
- description: 'Slave label on Jenkins'
- - project-parameter:
- project: $GERRIT_PROJECT
- branch: '{branch}'
- - 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."
+ - label:
+ name: SLAVE_LABEL
+ default: 'ericsson-build3'
+ description: 'Slave label on Jenkins'
+ - project-parameter:
+ project: $GERRIT_PROJECT
+ branch: '{branch}'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ # yamllint disable rule:line-length
+ 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
scm:
- - git-scm-gerrit
+ - git-scm-gerrit
+ # yamllint disable rule:line-length
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: 'apex|armband|bamboo|barometer|bottlenecks|calipso|compass4nfv|conductor|cooper|cperf|daisy|doctor|dovetail|dpacc|enfv|escalator|fds|fuel|functest|octopus|pharos|releng|sandbox|yardstick'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- file-paths:
- - compare-type: ANT
- pattern: '**'
- skip-vote:
- successful: true
- failed: true
- unstable: true
- notbuilt: true
+ - 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: 'apex|armband|bamboo|barometer|bottlenecks|calipso|compass4nfv|conductor|cooper|cperf|daisy|doctor|dovetail|dpacc|enfv|escalator|fds|fuel|functest|octopus|pharos|releng|sandbox|yardstick'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ file-paths:
+ - compare-type: ANT
+ pattern: '**'
+ skip-vote:
+ successful: true
+ failed: true
+ unstable: true
+ notbuilt: true
+ # yamllint enable rule:line-length
builders:
- - anteater-security-audit
- - report-security-audit-result-to-gerrit
+ - anteater-security-audit
+ - report-security-audit-result-to-gerrit
publishers:
- archive-artifacts:
artifacts: ".reports/*"
- builder:
name: anteater-security-audit
builders:
- - shell:
- !include-raw: ./anteater-security-audit.sh
+ - shell:
+ !include-raw: ./anteater-security-audit.sh
- builder:
name: report-security-audit-result-to-gerrit
builders:
- - shell:
- !include-raw: ./anteater-report-to-gerrit.sh
+ - shell:
+ !include-raw: ./anteater-report-to-gerrit.sh
+# yamllint disable rule:indentation
- builder:
name: anteater-security-audit-weekly
builders:
- - shell:
- !include-raw:
- - ./anteater-clone-all-repos.sh
- - ./anteater-security-audit-weekly.sh
-
+ - shell:
+ !include-raw:
+ - ./anteater-clone-all-repos.sh
+ - ./anteater-security-audit-weekly.sh
+# yamllint enable rule:indentation
+---
###################################
# job configuration for cperf
###################################
name: cperf-ci-jobs
project: cperf
-#--------------------------------
-# BRANCH ANCHORS
-#--------------------------------
+ # -------------------------------
+ # BRANCH ANCHORS
+ # -------------------------------
master: &master
- stream: master
- branch: '{stream}'
- gs-pathname: ''
- docker-tag: 'latest'
+ stream: master
+ branch: '{stream}'
+ gs-pathname: ''
+ docker-tag: 'latest'
danube: &danube
- stream: danube
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- docker-tag: 'stable'
-
-#--------------------------------
-# POD, INSTALLER, AND BRANCH MAPPING
-#--------------------------------
+ stream: danube
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ docker-tag: 'stable'
+
+ # -------------------------------
+ # POD, INSTALLER, AND BRANCH MAPPING
+ # -------------------------------
pod:
-#--------------------------------
-# master
-#--------------------------------
- - intel-pod2:
- installer: apex
- <<: *master
- - intel-pod2:
- installer: apex
- <<: *danube
-#--------------------------------
+ # -------------------------------
+ # master
+ # -------------------------------
+ - intel-pod2:
+ installer: apex
+ <<: *master
+ - intel-pod2:
+ installer: apex
+ <<: *danube
testsuite:
- - 'daily'
+ - 'daily'
jobs:
- - 'cperf-{installer}-{pod}-{testsuite}-{stream}'
+ - 'cperf-{installer}-{pod}-{testsuite}-{stream}'
################################
# job template
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-per-node: 1
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-per-node: 1
+ option: 'project'
wrappers:
- - build-name:
- name: '$BUILD_NUMBER Suite: $CPERF_SUITE_NAME Scenario: $DEPLOY_SCENARIO'
- - timeout:
- timeout: 400
- abort: true
+ - build-name:
+ name: '$BUILD_NUMBER Suite: $CPERF_SUITE_NAME Scenario: $DEPLOY_SCENARIO'
+ - timeout:
+ timeout: 400
+ abort: true
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{pod}-defaults'
- - '{installer}-defaults'
- - cperf-parameter:
- testsuite: '{testsuite}'
- gs-pathname: '{gs-pathname}'
- docker-tag: '{docker-tag}'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{pod}-defaults'
+ - '{installer}-defaults'
+ - cperf-parameter:
+ testsuite: '{testsuite}'
+ gs-pathname: '{gs-pathname}'
+ docker-tag: '{docker-tag}'
scm:
- - git-scm
+ - git-scm
builders:
- - 'cperf-{testsuite}-builder'
+ - 'cperf-{testsuite}-builder'
########################
# parameter macros
- parameter:
name: cperf-parameter
parameters:
- - string:
- name: CPERF_SUITE_NAME
- default: '{testsuite}'
- description: "Suite name to run"
- - string:
- name: GS_PATHNAME
- default: '{gs-pathname}'
- description: "Version directory where the opnfv documents will be stored in gs repository"
- - string:
- name: CI_DEBUG
- default: 'false'
- description: "Show debug output information"
- - string:
- name: DOCKER_TAG
- default: '{docker-tag}'
- description: 'Tag to pull docker image'
+ - string:
+ name: CPERF_SUITE_NAME
+ default: '{testsuite}'
+ description: "Suite name to run"
+ - string:
+ name: GS_PATHNAME
+ default: '{gs-pathname}'
+ description: "Version directory where the opnfv documents will be stored in gs repository"
+ - string:
+ name: CI_DEBUG
+ default: 'false'
+ description: "Show debug output information"
+ - string:
+ name: DOCKER_TAG
+ default: '{docker-tag}'
+ description: 'Tag to pull docker image'
########################
# trigger macros
- builder:
name: cperf-daily-builder
builders:
- - 'cperf-cleanup'
- - 'cperf-robot-cbench'
+ - 'cperf-cleanup'
+ - 'cperf-robot-cbench'
- builder:
name: cperf-robot-cbench
builders:
- - shell: |
- #!/bin/bash
- set -o errexit
- set -o nounset
- set -o pipefail
- 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]+")
- INSTALLER_IP=$(/usr/sbin/arp -e | grep ${undercloud_mac} | awk {'print $1'})
-
- sudo scp -o StrictHostKeyChecking=no root@$INSTALLER_IP:/home/stack/overcloudrc /tmp/overcloudrc
- sudo chmod 755 /tmp/overcloudrc
- source /tmp/overcloudrc
-
- # robot suites need the ssh key to log in to controller nodes, so throwing it
- # in tmp, and mounting /tmp as $HOME as far as robot is concerned
- sudo rm -rf /tmp/.ssh
- sudo mkdir /tmp/.ssh
- sudo chmod 0700 /tmp/.ssh
- sudo scp -o StrictHostKeyChecking=no root@$INSTALLER_IP:/home/stack/.ssh/id_rsa /tmp/.ssh/
- sudo chown -R jenkins-ci:jenkins-ci /tmp/.ssh
- # done with sudo. jenkins-ci is the user from this point
- chmod 0600 /tmp/.ssh/id_rsa
-
- # cbench requires the openflow drop test feature to be installed.
- sshpass -p karaf ssh -o StrictHostKeyChecking=no \
- -o UserKnownHostsFile=/dev/null \
- -o LogLevel=error \
- -p 8101 karaf@$SDN_CONTROLLER_IP \
- feature:install odl-openflowplugin-flow-services-ui odl-openflowplugin-drop-test
-
- docker pull opnfv/cperf:$DOCKER_TAG
-
- robot_cmd="pybot -e exclude -L TRACE -d /tmp \
- -v ODL_SYSTEM_1_IP:${SDN_CONTROLLER_IP} \
- -v ODL_SYSTEM_IP:${SDN_CONTROLLER_IP} \
- -v BUNDLEFOLDER:/opt/opendaylight \
- -v RESTCONFPORT:8081 \
- -v USER_HOME:/tmp \
- -v USER:heat-admin \
- -v ODL_SYSTEM_USER:heat-admin \
- -v TOOLS_SYSTEM_IP:localhost \
- -v of_port:6653"
- robot_suite="/home/opnfv/repos/odl_test/csit/suites/openflowplugin/Performance/010_Cbench.robot"
-
- docker run -i -v /tmp:/tmp opnfv/cperf:$DOCKER_TAG ${robot_cmd} ${robot_suite}
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+ 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]+")
+ INSTALLER_IP=$(/usr/sbin/arp -e | grep ${undercloud_mac} | awk {'print $1'})
+
+ sudo scp -o StrictHostKeyChecking=no root@$INSTALLER_IP:/home/stack/overcloudrc /tmp/overcloudrc
+ sudo chmod 755 /tmp/overcloudrc
+ source /tmp/overcloudrc
+
+ # robot suites need the ssh key to log in to controller nodes, so throwing it
+ # in tmp, and mounting /tmp as $HOME as far as robot is concerned
+ sudo rm -rf /tmp/.ssh
+ sudo mkdir /tmp/.ssh
+ sudo chmod 0700 /tmp/.ssh
+ sudo scp -o StrictHostKeyChecking=no root@$INSTALLER_IP:/home/stack/.ssh/id_rsa /tmp/.ssh/
+ sudo chown -R jenkins-ci:jenkins-ci /tmp/.ssh
+ # done with sudo. jenkins-ci is the user from this point
+ chmod 0600 /tmp/.ssh/id_rsa
+
+ # cbench requires the openflow drop test feature to be installed.
+ sshpass -p karaf ssh -o StrictHostKeyChecking=no \
+ -o UserKnownHostsFile=/dev/null \
+ -o LogLevel=error \
+ -p 8101 karaf@$SDN_CONTROLLER_IP \
+ feature:install odl-openflowplugin-flow-services-ui odl-openflowplugin-drop-test
+
+ docker pull opnfv/cperf:$DOCKER_TAG
+
+ robot_cmd="pybot -e exclude -L TRACE -d /tmp \
+ -v ODL_SYSTEM_1_IP:${SDN_CONTROLLER_IP} \
+ -v ODL_SYSTEM_IP:${SDN_CONTROLLER_IP} \
+ -v BUNDLEFOLDER:/opt/opendaylight \
+ -v RESTCONFPORT:8081 \
+ -v USER_HOME:/tmp \
+ -v USER:heat-admin \
+ -v ODL_SYSTEM_USER:heat-admin \
+ -v TOOLS_SYSTEM_IP:localhost \
+ -v of_port:6653"
+ robot_suite="/home/opnfv/repos/odl_test/csit/suites/openflowplugin/Performance/010_Cbench.robot"
+
+ docker run -i -v /tmp:/tmp opnfv/cperf:$DOCKER_TAG ${robot_cmd} ${robot_suite}
- builder:
name: cperf-cleanup
builders:
- - shell: |
- #!/bin/bash
- [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
-
- echo "Cleaning up docker containers/images..."
- # Remove previous running containers if exist
- if [[ ! -z $(docker ps -a | grep opnfv/cperf) ]]; then
- echo "Removing existing opnfv/cperf containers..."
- docker ps -a | grep opnfv/cperf | awk '{print $1}' | xargs docker rm -f >${redirect}
- fi
-
- # Remove existing images if exist
- if [[ ! -z $(docker images | grep opnfv/cperf) ]]; then
- echo "Docker images to remove:"
- docker images | head -1 && docker images | grep opnfv/cperf >${redirect}
- image_tags=($(docker images | grep opnfv/cperf | awk '{print $2}'))
- for tag in "${image_tags[@]}"; do
- echo "Removing docker image opnfv/cperf:$tag..."
- docker rmi opnfv/cperf:$tag >/dev/null
- done
- fi
+ - shell: |
+ #!/bin/bash
+ [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
+
+ echo "Cleaning up docker containers/images..."
+ # Remove previous running containers if exist
+ if [[ ! -z $(docker ps -a | grep opnfv/cperf) ]]; then
+ echo "Removing existing opnfv/cperf containers..."
+ docker ps -a | grep opnfv/cperf | awk '{print $1}' | xargs docker rm -f >${redirect}
+ fi
+
+ # Remove existing images if exist
+ if [[ ! -z $(docker images | grep opnfv/cperf) ]]; then
+ echo "Docker images to remove:"
+ docker images | head -1 && docker images | grep opnfv/cperf >${redirect}
+ image_tags=($(docker images | grep opnfv/cperf | awk '{print $2}'))
+ for tag in "${image_tags[@]}"; do
+ echo "Removing docker image opnfv/cperf:$tag..."
+ docker rmi opnfv/cperf:$tag >/dev/null
+ done
+ fi
branch: 'stable/{stream}'
dovetail-branch: master
gs-pathname: '/{stream}'
- docker-tag: 'cvp.0.5.0'
+ docker-tag: 'cvp.0.6.0'
#-----------------------------------
# POD, PLATFORM, AND BRANCH MAPPING
set +e
-if ${FUNCTEST_SUITE_NAME} == 'healthcheck'; then
+if [ ${FUNCTEST_SUITE_NAME} == 'healthcheck' ]; then
tiers=(healthcheck)
else
tiers=(healthcheck smoke features vnf)
name: functest-daily-builder
builders:
- 'functest-cleanup'
- - 'set-functest-env'
+ - 'set-functest-env-alpine'
- 'functest-daily'
- 'functest-store-results'
- - 'functest-exit'
- builder:
name: functest-suite-builder
name: functest-daily
builders:
- shell:
- !include-raw: ./functest-loop.sh
+ !include-raw: ./functest-alpine.sh
- builder:
- ../../utils/fetch_os_creds.sh
- ./set-functest-env.sh
+- builder:
+ name: set-functest-env-alpine
+ builders:
+ - shell:
+ !include-raw:
+ - ./functest-env-presetup.sh
+ - ../../utils/fetch_os_creds.sh
+
- builder:
name: functest-store-results
builders:
-e NODE_NAME=${NODE_NAME} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} \
-e BUILD_TAG=${BUILD_TAG} -e CI_DEBUG=${CI_DEBUG} -e DEPLOY_TYPE=${DEPLOY_TYPE}"
-if [[ ${INSTALLER_TYPE} == 'fuel' && ! -z ${SALT_MASTER_IP} ]]; then
- HOST_ARCH=$(ssh -l ubuntu ${SALT_MASTER_IP} -i ${SSH_KEY} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
- "sudo salt 'cmp*' grains.get cpuarch --out yaml |awk '{print \$2; exit}'")
- envs="${envs} -e POD_ARCH=${HOST_ARCH}"
+ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
+
+if [ "${INSTALLER_TYPE}" == 'fuel' ] && [ "$BRANCH" != 'stable/danube' ]; then
+ COMPUTE_ARCH=$(ssh -l ubuntu ${INSTALLER_IP} -i ${SSH_KEY} ${ssh_options} \
+ "sudo salt 'cmp*' grains.get cpuarch --out yaml | awk '{print \$2; exit}'")
+ envs="${envs} -e POD_ARCH=${COMPUTE_ARCH}"
fi
if [[ ${INSTALLER_TYPE} == 'compass' && ${DEPLOY_SCENARIO} == *'os-nosdn-openo-ha'* ]]; then
- ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
openo_msb_port=${openo_msb_port:-80}
openo_msb_endpoint="$(sshpass -p'root' ssh 2>/dev/null $ssh_options root@${installer_ip} \
'mysql -ucompass -pcompass -Dcompass -e "select package_config from cluster;" \
name: INSTALLER_IP
default: '10.20.0.2'
description: 'IP of the installer'
- - string:
- name: SALT_MASTER_IP
- default: '192.168.10.100'
- description: 'IP of the salt master (for mcp deployments)'
- string:
name: SSH_KEY
default: "/var/lib/opnfv/mcp.rsa"
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
+- parameter:
+ name: 'flex-pod1-defaults'
+ parameters:
+ - node:
+ name: SLAVE_NAME
+ description: 'Slave name on Jenkins'
+ allowed-slaves:
+ - flex-pod1
+ default-slaves:
+ - flex-pod1
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+
#####################################################
# These slaves are just dummy slaves for sandbox jobs
#####################################################
+---
########################
# Job configuration for joid
########################
installer: '{name}'
-#--------------------------------
-# BRANCH ANCHORS
-#--------------------------------
+ # -------------------------------
+ # BRANCH ANCHORS
+ # -------------------------------
master: &master
- stream: master
- branch: '{stream}'
- disabled: false
- gs-pathname: ''
-#--------------------------------
-# POD, INSTALLER, AND BRANCH MAPPING
-#--------------------------------
-# CI PODs
-#--------------------------------
+ stream: master
+ branch: '{stream}'
+ disabled: false
+ gs-pathname: ''
+ # -------------------------------
+ # POD, INSTALLER, AND BRANCH MAPPING
+ # -------------------------------
+ # CI PODs
+ # -------------------------------
pod:
- - baremetal:
- slave-label: joid-baremetal
- <<: *master
- - virtual:
- slave-label: joid-virtual
- <<: *master
-#--------------------------------
-# None-CI PODs
-#--------------------------------
- - orange-pod1:
- slave-label: orange-pod1
- <<: *master
- - cengn-pod1:
- slave-label: cengn-pod1
- <<: *master
-#--------------------------------
-# scenarios
-#--------------------------------
+ - baremetal:
+ slave-label: joid-baremetal
+ <<: *master
+ - virtual:
+ slave-label: joid-virtual
+ <<: *master
+ # -------------------------------
+ # None-CI PODs
+ # -------------------------------
+ - orange-pod1:
+ slave-label: orange-pod1
+ <<: *master
+ - cengn-pod1:
+ slave-label: cengn-pod1
+ <<: *master
+ # -------------------------------
+ # scenarios
+ # -------------------------------
scenario:
- - 'os-nosdn-nofeature-noha':
- auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
- - 'os-nosdn-nofeature-ha':
- auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
- - 'os-nosdn-lxd-ha':
- auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
- - 'os-nosdn-lxd-noha':
- auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
- - 'os-odl_l2-nofeature-ha':
- auto-trigger-name: 'daily-trigger-disabled'
- - 'os-onos-nofeature-ha':
- auto-trigger-name: 'daily-trigger-disabled'
- - 'os-odl_l2-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
- - 'os-onos-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
- - 'os-onos-sfc-ha':
- auto-trigger-name: 'daily-trigger-disabled'
- - 'os-ocl-nofeature-ha':
- auto-trigger-name: 'daily-trigger-disabled'
- - 'os-ocl-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
- - 'k8-nosdn-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
- - 'k8-nosdn-lb-noha':
- auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
- - 'k8-ovn-lb-noha':
- auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
- - 'os-nosdn-openbaton-ha':
- auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
+ - 'os-nosdn-nofeature-noha':
+ auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
+ - 'os-nosdn-nofeature-ha':
+ auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
+ - 'os-nosdn-lxd-ha':
+ auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
+ - 'os-nosdn-lxd-noha':
+ auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
+ - 'os-odl_l2-nofeature-ha':
+ auto-trigger-name: 'daily-trigger-disabled'
+ - 'os-onos-nofeature-ha':
+ auto-trigger-name: 'daily-trigger-disabled'
+ - 'os-odl_l2-nofeature-noha':
+ auto-trigger-name: 'daily-trigger-disabled'
+ - 'os-onos-nofeature-noha':
+ auto-trigger-name: 'daily-trigger-disabled'
+ - 'os-onos-sfc-ha':
+ auto-trigger-name: 'daily-trigger-disabled'
+ - 'os-ocl-nofeature-ha':
+ auto-trigger-name: 'daily-trigger-disabled'
+ - 'os-ocl-nofeature-noha':
+ auto-trigger-name: 'daily-trigger-disabled'
+ - 'k8-nosdn-nofeature-noha':
+ auto-trigger-name: 'daily-trigger-disabled'
+ - 'k8-nosdn-lb-noha':
+ auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
+ - 'k8-ovn-lb-noha':
+ auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
+ - 'os-nosdn-openbaton-ha':
+ auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger'
jobs:
- - 'joid-{scenario}-{pod}-daily-{stream}'
- - 'joid-deploy-{pod}-daily-{stream}'
+ - 'joid-{scenario}-{pod}-daily-{stream}'
+ - 'joid-deploy-{pod}-daily-{stream}'
########################
# job templates
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:
- - 'joid-os-.*?-{pod}-daily-.*'
- block-level: 'NODE'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 4
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'joid-os-.*?-{pod}-daily-.*'
+ block-level: 'NODE'
wrappers:
- - build-name:
- name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
triggers:
- - '{auto-trigger-name}'
+ - '{auto-trigger-name}'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{installer}-defaults'
- - '{slave-label}-defaults':
- installer: '{installer}'
- - string:
- name: DEPLOY_SCENARIO
- default: '{scenario}'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{installer}-defaults'
+ - '{slave-label}-defaults':
+ installer: '{installer}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: '{scenario}'
builders:
- - description-setter:
- description: "POD: $NODE_NAME"
- - trigger-builds:
- - project: 'joid-deploy-{pod}-daily-{stream}'
- current-parameters: true
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- same-node: true
- block: true
- - trigger-builds:
- - project: 'functest-joid-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- block: true
- same-node: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
- - trigger-builds:
- - project: 'yardstick-joid-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- block: true
- same-node: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
- # 1.dovetail only master by now, not sync with A/B/C branches
- # 2.here the stream means the SUT stream, dovetail stream is defined in its own job
- # 3.only debug testsuite here(includes basic testcase,
- # i.e. one tempest smoke ipv6, two vping from functest)
- # 4.not used for release criteria or compliance,
- # only to debug the dovetail tool bugs with joid
- #- trigger-builds:
- # - project: 'dovetail-joid-{pod}-proposed_tests-{stream}'
- # current-parameters: false
- # predefined-parameters:
- # DEPLOY_SCENARIO={scenario}
- # block: true
- # same-node: true
- # block-thresholds:
- # build-step-failure-threshold: 'never'
- # failure-threshold: 'never'
- # unstable-threshold: 'FAILURE'
+ - description-setter:
+ description: "POD: $NODE_NAME"
+ - trigger-builds:
+ - project: 'joid-deploy-{pod}-daily-{stream}'
+ current-parameters: true
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ same-node: true
+ block: true
+ - trigger-builds:
+ - project: 'functest-joid-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'yardstick-joid-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+# 1.dovetail only master by now, not sync with A/B/C branches
+# 2.here the stream means the SUT stream, dovetail stream is defined in
+# its own job
+# 3.only debug testsuite here(includes basic testcase,
+# i.e. one tempest smoke ipv6, two vping from functest)
+# 4.not used for release criteria or compliance,
+# only to debug the dovetail tool bugs with joid
+# - trigger-builds:
+# - project: 'dovetail-joid-{pod}-proposed_tests-{stream}'
+# current-parameters: false
+# predefined-parameters:
+# DEPLOY_SCENARIO={scenario}
+# block: true
+# same-node: true
+# block-thresholds:
+# build-step-failure-threshold: 'never'
+# failure-threshold: 'never'
+# unstable-threshold: 'FAILURE'
- job-template:
name: 'joid-deploy-{pod}-daily-{stream}'
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:
- - 'joid-deploy-{pod}-daily-.*'
- block-level: 'NODE'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 4
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'joid-deploy-{pod}-daily-.*'
+ block-level: 'NODE'
wrappers:
- - build-name:
- name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
- - timeout:
- timeout: 180
- fail: true
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+ - timeout:
+ timeout: 180
+ fail: true
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{installer}-defaults'
- - '{slave-label}-defaults':
- installer: '{installer}'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-odl_l2-nofeature-ha'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{installer}-defaults'
+ - '{slave-label}-defaults':
+ installer: '{installer}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-odl_l2-nofeature-ha'
scm:
- - git-scm
+ - git-scm
builders:
- - description-setter:
- description: "POD: $NODE_NAME"
- - 'builder-macro'
+ - description-setter:
+ description: "POD: $NODE_NAME"
+ - 'builder-macro'
########################
# builder macros
########################
- builder:
name: 'builder-macro'
builders:
- - shell: |
- #!/bin/bash
- echo "Running $INSTALLER_TYPE with controller $SDN_CONTROLLER"
- echo
- echo "------ First Executing clean.sh ------"
- cd $WORKSPACE/ci
- ./clean.sh
- - shell:
- !include-raw: ./joid-deploy.sh
+ - shell: |
+ #!/bin/bash
+ echo "Running $INSTALLER_TYPE with controller $SDN_CONTROLLER"
+ echo
+ echo "------ First Executing clean.sh ------"
+ cd $WORKSPACE/ci
+ ./clean.sh
+ - shell:
+ !include-raw: ./joid-deploy.sh
########################
# trigger macros
- trigger:
name: 'joid-os-nosdn-nofeature-ha-baremetal-master-trigger'
triggers:
- - timed: '5 2 * * *'
+ - timed: '5 2 * * *'
- trigger:
name: 'joid-os-nosdn-nofeature-ha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-nosdn-nofeature-ha-orange-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-nosdn-nofeature-ha-cengn-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
# os-odl_l2-nofeature-ha trigger - branch: master
- trigger:
name: 'joid-os-odl_l2-nofeature-ha-baremetal-master-trigger'
triggers:
- - timed: '5 7 * * *'
+ - timed: '5 7 * * *'
- trigger:
name: 'joid-os-odl_l2-nofeature-ha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-odl_l2-nofeature-ha-orange-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-odl_l2-nofeature-ha-cengn-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
# os-onos-nofeature-ha trigger - branch: master
- trigger:
name: 'joid-os-onos-nofeature-ha-baremetal-master-trigger'
triggers:
- - timed: '5 12 * * *'
+ - timed: '5 12 * * *'
- trigger:
name: 'joid-os-onos-nofeature-ha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-onos-nofeature-ha-orange-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-onos-nofeature-ha-cengn-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
# os-onos-sfc-ha trigger - branch: master
- trigger:
name: 'joid-os-onos-sfc-ha-baremetal-master-trigger'
triggers:
- - timed: '5 17 * * *'
+ - timed: '5 17 * * *'
- trigger:
name: 'joid-os-onos-sfc-ha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-onos-sfc-ha-orange-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-onos-sfc-ha-cengn-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
# os-nosdn-lxd-noha trigger - branch: master
- trigger:
name: 'joid-os-nosdn-lxd-noha-baremetal-master-trigger'
triggers:
- - timed: '5 22 * * *'
+ - timed: '5 22 * * *'
- trigger:
name: 'joid-os-nosdn-lxd-noha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-nosdn-lxd-noha-orange-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-nosdn-lxd-noha-cengn-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
# os-nosdn-lxd-ha trigger - branch: master
- trigger:
name: 'joid-os-nosdn-lxd-ha-baremetal-master-trigger'
triggers:
- - timed: '5 10 * * *'
+ - timed: '5 10 * * *'
- trigger:
name: 'joid-os-nosdn-lxd-ha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-nosdn-lxd-ha-orange-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-nosdn-lxd-ha-cengn-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
# os-nosdn-nofeature-noha trigger - branch: master
- trigger:
name: 'joid-os-nosdn-nofeature-noha-baremetal-master-trigger'
triggers:
- - timed: '5 4 * * *'
+ - timed: '5 4 * * *'
- trigger:
name: 'joid-os-nosdn-nofeature-noha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-nosdn-nofeature-noha-orange-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-nosdn-nofeature-noha-cengn-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
# k8-nosdn-nofeature-noha trigger - branch: master
- trigger:
name: 'joid-k8-nosdn-nofeature-noha-baremetal-master-trigger'
triggers:
- - timed: '5 15 * * *'
+ - timed: '5 15 * * *'
- trigger:
name: 'joid-k8-nosdn-nofeature-noha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-k8-nosdn-nofeature-noha-orange-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-k8-nosdn-nofeature-noha-cengn-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
# k8-nosdn-lb-noha trigger - branch: master
- trigger:
name: 'joid-k8-nosdn-lb-noha-baremetal-master-trigger'
triggers:
- - timed: '5 20 * * *'
+ - timed: '5 20 * * *'
- trigger:
name: 'joid-k8-nosdn-lb-noha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-k8-nosdn-lb-noha-orange-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-k8-nosdn-lb-noha-cengn-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
# k8-ovn-lb-noha trigger - branch: master
- trigger:
name: 'joid-k8-ovn-lb-noha-baremetal-master-trigger'
triggers:
- - timed: '5 17 * * *'
+ - timed: '5 17 * * *'
- trigger:
name: 'joid-k8-ovn-lb-noha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-k8-ovn-lb-noha-orange-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-k8-ovn-lb-noha-cengn-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
# os-nosdn-openbaton-ha trigger - branch: master
- trigger:
name: 'joid-os-nosdn-openbaton-ha-baremetal-master-trigger'
triggers:
- - timed: '5 25 * * *'
+ - timed: '5 25 * * *'
- trigger:
name: 'joid-os-nosdn-openbaton-ha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-nosdn-openbaton-ha-orange-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
name: 'joid-os-nosdn-openbaton-ha-cengn-pod1-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
+---
- project:
name: 'joid-verify-jobs'
project: 'joid'
installer: 'joid'
-#####################################
-# branch definitions
-#####################################
+ #####################################
+ # branch definitions
+ #####################################
stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
- - danube:
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- disabled: false
-#####################################
-# patch verification phases
-#####################################
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ #####################################
+ # patch verification phases
+ #####################################
phase:
- - 'basic':
- slave-label: 'opnfv-build-ubuntu'
- - 'deploy-virtual':
- slave-label: 'joid-virtual'
- - 'smoke-test':
- slave-label: 'joid-virtual'
-#####################################
-# jobs
-#####################################
+ - 'basic':
+ slave-label: 'opnfv-build-ubuntu'
+ - 'deploy-virtual':
+ slave-label: 'joid-virtual'
+ - 'smoke-test':
+ slave-label: 'joid-virtual'
+ #####################################
+ # jobs
+ #####################################
jobs:
- - 'joid-verify-{stream}'
- - 'joid-verify-{phase}-{stream}'
+ - 'joid-verify-{stream}'
+ - 'joid-verify-{phase}-{stream}'
#####################################
# job templates
#####################################
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:
- - 'joid-verify-master'
- - 'joid-verify-danube'
- block-level: 'NODE'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 4
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'joid-verify-master'
+ - 'joid-verify-danube'
+ block-level: 'NODE'
scm:
- - git-scm-gerrit
+ - git-scm-gerrit
wrappers:
- - ssh-agent-wrapper
- - timeout:
- timeout: 360
- fail: true
+ - 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}'
- disable-strict-forbidden-file-verification: 'true'
- forbidden-file-paths:
- - compare-type: ANT
- pattern: 'docs/**|.gitignore'
- readable-message: true
+ - 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'
+ readable-message: true
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'joid-virtual-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'joid-virtual-defaults'
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - multijob:
- name: basic
- condition: SUCCESSFUL
- projects:
- - name: 'joid-verify-basic-{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
- kill-phase-on: FAILURE
- abort-all-job: true
- - multijob:
- name: deploy-virtual
- condition: SUCCESSFUL
- projects:
- - name: 'joid-verify-deploy-virtual-{stream}'
- current-parameters: false
- predefined-parameters: |
- BRANCH=$BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- - multijob:
- name: smoke-test
- condition: SUCCESSFUL
- projects:
- - name: 'joid-verify-smoke-test-{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
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: basic
+ condition: SUCCESSFUL
+ projects:
+ - name: 'joid-verify-basic-{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
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: deploy-virtual
+ condition: SUCCESSFUL
+ projects:
+ - name: 'joid-verify-deploy-virtual-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ BRANCH=$BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: smoke-test
+ condition: SUCCESSFUL
+ projects:
+ - name: 'joid-verify-smoke-test-{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
- job-template:
name: 'joid-verify-{phase}-{stream}'
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:
- - 'joid-verify-deploy-.*'
- - 'joid-verify-test-.*'
- block-level: 'NODE'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 4
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'joid-verify-deploy-.*'
+ - 'joid-verify-test-.*'
+ block-level: 'NODE'
scm:
- - git-scm-gerrit
+ - git-scm-gerrit
wrappers:
- - ssh-agent-wrapper
- - timeout:
- timeout: 360
- fail: true
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 360
+ fail: true
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{installer}-defaults'
- - '{slave-label}-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{installer}-defaults'
+ - '{slave-label}-defaults'
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - '{project}-verify-{phase}-macro'
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - '{project}-verify-{phase}-macro'
#####################################
# builder macros
#####################################
- builder:
name: 'joid-verify-basic-macro'
builders:
- - shell: |
- #!/bin/bash
+ - shell: |
+ #!/bin/bash
- echo "Not activated!"
+ echo "Not activated!"
- builder:
name: 'joid-verify-deploy-virtual-macro'
builders:
- - shell: |
- #!/bin/bash
+ - shell: |
+ #!/bin/bash
- echo "Not activated!"
+ echo "Not activated!"
- builder:
name: 'joid-verify-smoke-test-macro'
builders:
- - shell: |
- #!/bin/bash
+ - shell: |
+ #!/bin/bash
- echo "Not activated!"
+ echo "Not activated!"
+---
- project:
name: nfvbench
project: '{name}'
jobs:
- - 'nfvbench-build-{stream}'
- - 'nfvbench-verify-{stream}'
+ - 'nfvbench-build-{stream}'
+ - 'nfvbench-verify-{stream}'
stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
- docker-tag: 'latest'
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ docker-tag: 'latest'
- job-template:
name: 'nfvbench-build-{stream}'
disabled: '{obj:disabled}'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 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."
- - 'opnfv-build-ubuntu-defaults'
+ - 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
+ - git-scm-gerrit
triggers:
- - gerrit:
- server-name: 'gerrit.opnfv.org'
- trigger-on:
- - comment-added-contains-event:
- comment-contains-value: 'buildvm'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: '{project}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
+ - gerrit:
+ server-name: 'gerrit.opnfv.org'
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: 'buildvm'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
builders:
- - shell: |
- cd $WORKSPACE/nfvbenchvm/dib
- bash build-image.sh
+ - shell: |
+ cd $WORKSPACE/nfvbenchvm/dib
+ bash build-image.sh
- job-template:
name: 'nfvbench-verify-{stream}'
disabled: '{obj:disabled}'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 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."
- - 'opnfv-build-ubuntu-defaults'
+ - 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
+ - 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'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: '{project}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
+ - gerrit:
+ server-name: 'gerrit.opnfv.org'
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: 'false'
+ exclude-trivial-rebase: 'false'
+ exclude-no-code-change: 'false'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
builders:
- - shell: |
- echo "pass"
-
-
+ - shell: |
+ echo "pass"
+---
- project:
name: 'opera-daily-jobs'
project: 'opera'
-#####################################
-# branch definitions
-#####################################
+ #####################################
+ # branch definitions
+ #####################################
master: &master
- stream: master
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
+ stream: master
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
-#####################################
-# pod definitions
-#####################################
+ #####################################
+ # pod definitions
+ #####################################
pod:
- - virtual:
- slave-label: 'huawei-virtual7'
- os-version: 'xenial'
- <<: *master
+ - virtual:
+ slave-label: 'huawei-virtual7'
+ os-version: 'xenial'
+ <<: *master
-#####################################
-# jobs
-#####################################
+ #####################################
+ # jobs
+ #####################################
jobs:
- - 'opera-{pod}-daily-{stream}'
+ - 'opera-{pod}-daily-{stream}'
#####################################
# job templates
concurrent: false
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 1
- max-per-node: 1
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+ option: 'project'
scm:
- - git-scm
+ - git-scm
wrappers:
- - ssh-agent-wrapper
-
- - timeout:
- timeout: 240
- fail: true
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 240
+ fail: true
triggers:
- - timed: '@midnight'
+ - timed: '@midnight'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - string:
- name: DEPLOY_SCENARIO
- default: os-nosdn-openo-ha
- - '{slave-label}-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: os-nosdn-openo-ha
+ - '{slave-label}-defaults'
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - multijob:
- name: deploy
- condition: SUCCESSFUL
- projects:
- - name: 'compass-deploy-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters: |
- DEPLOY_SCENARIO=os-nosdn-openo-ha
- COMPASS_OS_VERSION=xenial
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- - multijob:
- name: functest
- condition: SUCCESSFUL
- projects:
- - name: 'functest-compass-{pod}-suite-{stream}'
- current-parameters: false
- predefined-parameters: |
- DEPLOY_SCENARIO=os-nosdn-openo-ha
- FUNCTEST_SUITE_NAME=opera_vims
- node-parameters: true
- kill-phase-on: NEVER
- abort-all-job: true
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: deploy
+ condition: SUCCESSFUL
+ projects:
+ - name: 'compass-deploy-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-nosdn-openo-ha
+ COMPASS_OS_VERSION=xenial
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: functest
+ condition: SUCCESSFUL
+ projects:
+ - name: 'functest-compass-{pod}-suite-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-nosdn-openo-ha
+ FUNCTEST_SUITE_NAME=opera_vims
+ node-parameters: true
+ kill-phase-on: NEVER
+ abort-all-job: true
+---
- project:
name: opera-project
project: 'opera'
stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
jobs:
- - 'opera-build-{stream}'
+ - 'opera-build-{stream}'
########################
# job templates
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 1
- max-per-node: 1
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+ option: 'project'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
scm:
- - git-scm
+ - git-scm
triggers:
- - timed: 'H 23 * * *'
+ - timed: 'H 23 * * *'
builders:
- - 'opera-build-macro'
+ - 'opera-build-macro'
#####################################
# builder macros
- builder:
name: 'opera-build-macro'
builders:
- - shell: |
- #!/bin/bash
-
- echo "Hello world!"
-
+ - shell: |
+ #!/bin/bash
+ echo "Hello world!"
+---
- project:
name: 'opera-verify-jobs'
project: 'opera'
-#####################################
-# branch definitions
-#####################################
+ #####################################
+ # branch definitions
+ #####################################
stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
-
-#####################################
-# patch verification phases
-#####################################
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+
+ #####################################
+ # patch verification phases
+ #####################################
phase:
- - 'basic'
- - 'deploy'
+ - 'basic'
+ - 'deploy'
-#####################################
-# jobs
-#####################################
+ #####################################
+ # jobs
+ #####################################
jobs:
- - 'opera-verify-{stream}'
- - 'opera-verify-{phase}-{stream}'
+ - 'opera-verify-{stream}'
+ - 'opera-verify-{phase}-{stream}'
#####################################
# job templates
#####################################
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 1
- max-per-node: 1
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+ option: 'project'
scm:
- - git-scm-gerrit
+ - git-scm-gerrit
wrappers:
- - ssh-agent-wrapper
- - timeout:
- timeout: 120
- fail: true
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 120
+ 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: '**/*'
- disable-strict-forbidden-file-verification: 'true'
- forbidden-file-paths:
- - compare-type: ANT
- pattern: 'docs/**'
- readable-message: true
+ - 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: '**/*'
+ disable-strict-forbidden-file-verification: 'true'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**'
+ readable-message: true
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'huawei-pod7-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'huawei-pod7-defaults'
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - multijob:
- name: basic
- condition: SUCCESSFUL
- projects:
- - name: 'opera-verify-basic-{stream}'
- current-parameters: true
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- - multijob:
- name: deploy
- condition: SUCCESSFUL
- projects:
- - name: 'opera-verify-deploy-{stream}'
- current-parameters: true
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: basic
+ condition: SUCCESSFUL
+ projects:
+ - name: 'opera-verify-basic-{stream}'
+ current-parameters: true
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: deploy
+ condition: SUCCESSFUL
+ projects:
+ - name: 'opera-verify-deploy-{stream}'
+ current-parameters: true
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
- job-template:
name: 'opera-verify-{phase}-{stream}'
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-per-node: 1
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-per-node: 1
+ option: 'project'
scm:
- - git-scm-gerrit
+ - git-scm-gerrit
wrappers:
- - ssh-agent-wrapper
- - timeout:
- timeout: 120
- fail: true
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 120
+ fail: true
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - '{project}-verify-{phase}-macro'
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - '{project}-verify-{phase}-macro'
#####################################
# builder macros
- builder:
name: 'opera-verify-basic-macro'
builders:
- - shell: |
- #!/bin/bash
- echo "Hello world!"
+ - shell: |
+ #!/bin/bash
+ echo "Hello world!"
- builder:
name: 'opera-verify-deploy-macro'
builders:
- - shell: |
- #!/bin/bash
- echo "Hello world!"
-
+ - shell: |
+ #!/bin/bash
+ echo "Hello world!"
+---
- project:
name: docs-rtd
jobs:
- - 'docs-merge-rtd-{stream}'
- - 'docs-verify-rtd-{stream}'
+ - 'docs-merge-rtd-{stream}'
+ - 'docs-verify-rtd-{stream}'
stream:
- - master:
- branch: 'master'
- - danube:
- branch: 'stable/{stream}'
+ - master:
+ branch: 'master'
+ - danube:
+ branch: 'stable/{stream}'
project: 'opnfvdocs'
rtdproject: 'opnfv'
project-type: freestyle
parameters:
- - label:
- name: SLAVE_LABEL
- default: 'lf-build1'
- description: 'Slave label on Jenkins'
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
+ - label:
+ name: SLAVE_LABEL
+ default: 'lf-build1'
+ description: 'Slave label on Jenkins'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
triggers:
- - gerrit-trigger-change-merged:
- project: '**'
- branch: '{branch}'
- files: 'docs/**/*.*'
+ - gerrit-trigger-change-merged:
+ project: '**'
+ branch: '{branch}'
+ files: 'docs/**/*.*'
builders:
- - shell: |
- if [ $GERRIT_BRANCH == "master" ]; then
- RTD_BUILD_VERSION=latest
- else
- RTD_BUILD_VERSION=${{GERRIT_BRANCH/\//-}}
- fi
- curl -X POST --data "version_slug=$RTD_BUILD_VERSION" https://readthedocs.org/build/opnfvdocsdemo
+ - shell: |
+ if [ $GERRIT_BRANCH == "master" ]; then
+ RTD_BUILD_VERSION=latest
+ else
+ RTD_BUILD_VERSION=${{GERRIT_BRANCH/\//-}}
+ fi
+ curl -X POST --data "version_slug=$RTD_BUILD_VERSION" https://readthedocs.org/build/opnfvdocsdemo
- job-template:
project-type: freestyle
parameters:
- - label:
- name: SLAVE_LABEL
- default: 'lf-build2'
- description: 'Slave label on Jenkins'
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - string:
- name: GIT_BASE
- default: https://gerrit.opnfv.org/gerrit/opnfvdocs
- description: 'Git URL to use on this Jenkins Slave'
+ - label:
+ name: SLAVE_LABEL
+ default: 'lf-build2'
+ description: 'Slave label on Jenkins'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/opnfvdocs
+ description: 'Git URL to use on this Jenkins Slave'
+
scm:
- - git-scm-with-submodules:
- branch: '{branch}'
+ - git-scm-with-submodules:
+ branch: '{branch}'
triggers:
- - gerrit-trigger-patchset-created:
- server: 'gerrit.opnfv.org'
- project: '**'
- branch: '{branch}'
- files: 'docs/**/*.*'
- - timed: 'H H * * *'
+ - gerrit-trigger-patchset-created:
+ server: 'gerrit.opnfv.org'
+ project: '**'
+ branch: '{branch}'
+ files: 'docs/**/*.*'
+ - timed: 'H H * * *'
builders:
- - shell: |
- if [ "$GERRIT_PROJECT" != "opnfvdocs" ]; then
- cd docs/submodules/$GERRIT_PROJECT
- git fetch origin $GERRIT_REFSPEC && git checkout FETCH_HEAD
- else
- git fetch origin $GERRIT_REFSPEC && git checkout FETCH_HEAD
- fi
- - shell: |
- sudo pip install virtualenv
- virtualenv $WORKSPACE/venv
- . $WORKSPACE/venv/bin/activate
- pip install --upgrade pip
- pip freeze
- pip install tox
- tox -edocs
+ - shell: |
+ if [ "$GERRIT_PROJECT" != "opnfvdocs" ]; then
+ cd docs/submodules/$GERRIT_PROJECT
+ git fetch origin $GERRIT_REFSPEC && git checkout FETCH_HEAD
+ else
+ git fetch origin $GERRIT_REFSPEC && git checkout FETCH_HEAD
+ fi
+ - shell: |
+ sudo pip install virtualenv
+ virtualenv $WORKSPACE/venv
+ . $WORKSPACE/venv/bin/activate
+ pip install --upgrade pip
+ pip freeze
+ pip install tox
+ tox -edocs
+---
########################
# Job configuration for opnfvdocs
########################
project: '{name}'
jobs:
- - 'opnfvdocs-verify-shellcheck-{stream}'
- - 'opnfvdocs-merge-shellcheck-{stream}'
- - 'opnfvdocs-daily-{stream}'
+ - 'opnfvdocs-verify-shellcheck-{stream}'
+ - 'opnfvdocs-merge-shellcheck-{stream}'
+ - 'opnfvdocs-daily-{stream}'
stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
- - danube:
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- disabled: false
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
########################
# job templates
disabled: '{obj:disabled}'
parameters:
- - project-parameter:
- project: $GERRIT_PROJECT
- branch: '{branch}'
- - string:
- name: GIT_CLONE_BASE
- default: ssh://gerrit.opnfv.org:29418
- description: "Used for overriding the GIT URL coming from parameters macro."
+ - project-parameter:
+ project: $GERRIT_PROJECT
+ branch: '{branch}'
+ - string:
+ name: GIT_CLONE_BASE
+ default: ssh://gerrit.opnfv.org:29418
+ description: "Used for overriding the GIT URL coming from parameters macro."
scm:
- - git-scm-gerrit
+ - 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}'
- skip-vote:
- successful: true
- failed: true
- unstable: true
- notbuilt: true
+ - 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}'
+ skip-vote:
+ successful: true
+ failed: true
+ unstable: true
+ notbuilt: true
builders:
- - check-bash-syntax
+ - check-bash-syntax
- job-template:
name: 'opnfvdocs-merge-shellcheck-{stream}'
disabled: '{obj:disabled}'
parameters:
- - project-parameter:
- project: $GERRIT_PROJECT
- branch: '{branch}'
- - string:
- name: GIT_CLONE_BASE
- default: ssh://gerrit.opnfv.org:29418
- description: "Used for overriding the GIT URL coming from parameters macro."
- - string:
- name: GS_URL
- default: '$GS_BASE{gs-pathname}'
- description: "Directory where the build artifact will be located upon the completion of the build."
+ - project-parameter:
+ project: $GERRIT_PROJECT
+ branch: '{branch}'
+ - string:
+ name: GIT_CLONE_BASE
+ default: ssh://gerrit.opnfv.org:29418
+ description: "Used for overriding the GIT URL coming from parameters macro."
+ - string:
+ name: GS_URL
+ default: '$GS_BASE{gs-pathname}'
+ description: "Directory where the build artifact will be located upon the completion of the build."
scm:
- - git-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: 'REG_EXP'
- project-pattern: '{project}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
+ - gerrit:
+ server-name: 'gerrit.opnfv.org'
+ trigger-on:
+ - change-merged-event
+ - comment-added-contains-event:
+ comment-contains-value: 'remerge'
+ projects:
+ - project-compare-type: 'REG_EXP'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
builders:
- - check-bash-syntax
+ - check-bash-syntax
- job-template:
name: 'opnfvdocs-daily-{stream}'
disabled: true
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - string:
- name: GS_URL
- default: '$GS_BASE{gs-pathname}'
- description: "Directory where the build artifact will be located upon the completion of the build."
- - string:
- name: GIT_CLONE_BASE
- default: ssh://gerrit.opnfv.org:29418
- description: "Used for overriding the GIT URL coming from parameters macro."
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: GS_URL
+ default: '$GS_BASE{gs-pathname}'
+ description: "Directory where the build artifact will be located upon the completion of the build."
+ - string:
+ name: GIT_CLONE_BASE
+ default: ssh://gerrit.opnfv.org:29418
+ description: "Used for overriding the GIT URL coming from parameters macro."
scm:
- - git-scm
+ - git-scm
triggers:
- - timed: '0 H/6 * * *'
+ - timed: '0 H/6 * * *'
builders:
- - build-html-and-pdf-docs-output
-# - upload-generated-docs-to-opnfv-artifacts
+ - build-html-and-pdf-docs-output
+# - upload-generated-docs-to-opnfv-artifacts
+---
###################################
# job configuration for orchestra
###################################
project: 'orchestra'
-#--------------------------------
-# BRANCH ANCHORS
-#--------------------------------
+ # -------------------------------
+ # BRANCH ANCHORS
+ # -------------------------------
master: &master
- stream: master
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
+ stream: master
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
-#-------------------------------------------------------
-# POD, INSTALLER, AND BRANCH MAPPING
-#-------------------------------------------------------
+ # ------------------------------------------------------
+ # POD, INSTALLER, AND BRANCH MAPPING
+ # ------------------------------------------------------
pod:
- - virtual:
- slave-label: 'joid-virtual'
- os-version: 'xenial'
- <<: *master
+ - virtual:
+ slave-label: 'joid-virtual'
+ os-version: 'xenial'
+ <<: *master
jobs:
- - 'orchestra-{pod}-daily-{stream}'
+ - 'orchestra-{pod}-daily-{stream}'
################################
# job template
concurrent: false
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 1
- max-per-node: 1
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+ option: 'project'
scm:
- - git-scm
+ - git-scm
wrappers:
- - ssh-agent-wrapper
+ - ssh-agent-wrapper
- - timeout:
- timeout: 240
- fail: true
+ - timeout:
+ timeout: 240
+ fail: true
triggers:
- - timed: '@daily'
+ - timed: '@daily'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - string:
- name: DEPLOY_SCENARIO
- default: os-nosdn-openbaton-ha
- - '{slave-label}-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: os-nosdn-openbaton-ha
+ - '{slave-label}-defaults'
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - multijob:
- name: deploy
- condition: SUCCESSFUL
- projects:
- - name: 'joid-deploy-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters: |
- DEPLOY_SCENARIO=os-nosdn-openbaton-ha
- COMPASS_OS_VERSION=xenial
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- - multijob:
- name: functest
- condition: SUCCESSFUL
- projects:
- - name: 'functest-joid-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters: |
- DEPLOY_SCENARIO=os-nosdn-openbaton-ha
- FUNCTEST_SUITE_NAME=orchestra_ims
- node-parameters: true
- kill-phase-on: NEVER
- abort-all-job: true
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: deploy
+ condition: SUCCESSFUL
+ projects:
+ - name: 'joid-deploy-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-nosdn-openbaton-ha
+ COMPASS_OS_VERSION=xenial
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: functest
+ condition: SUCCESSFUL
+ projects:
+ - name: 'functest-joid-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-nosdn-openbaton-ha
+ FUNCTEST_SUITE_NAME=orchestra_ims
+ node-parameters: true
+ kill-phase-on: NEVER
+ abort-all-job: true
+---
- project:
name: orchestra-project
project: 'orchestra'
stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
jobs:
- - 'orchestra-build-{stream}'
+ - 'orchestra-build-{stream}'
- job-template:
name: 'orchestra-build-{stream}'
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 1
- max-per-node: 1
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+ option: 'project'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
scm:
- - git-scm
+ - git-scm
triggers:
- - timed: 'H 23 * * *'
+ - timed: 'H 23 * * *'
builders:
- - 'orchestra-build-macro'
+ - 'orchestra-build-macro'
- builder:
name: 'orchestra-build-macro'
builders:
- - shell: |
- #!/bin/bash
-
- echo "Hello world!"
-
+ - shell: |
+ #!/bin/bash
+ echo "Hello world!"
+---
- project:
name: 'ovn4nfv-daily-jobs'
project: 'ovn4nfv'
master: &master
- stream: master
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
+ stream: master
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
pod:
- - virtual:
- slave-label: 'joid-virtual'
- os-version: 'xenial'
- <<: *master
+ - virtual:
+ slave-label: 'joid-virtual'
+ os-version: 'xenial'
+ <<: *master
jobs:
- - 'ovn4nfv-{pod}-daily-{stream}'
+ - 'ovn4nfv-{pod}-daily-{stream}'
- job-template:
name: 'ovn4nfv-{pod}-daily-{stream}'
concurrent: false
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 1
- max-per-node: 1
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+ option: 'project'
scm:
- - git-scm
+ - git-scm
wrappers:
- - ssh-agent-wrapper
+ - ssh-agent-wrapper
- - timeout:
- timeout: 240
- fail: true
+ - timeout:
+ timeout: 240
+ fail: true
triggers:
- - timed: '@daily'
+ - timed: '@daily'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - string:
- name: DEPLOY_SCENARIO
- default: os-ovn-nofeature-noha
- - '{slave-label}-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: os-ovn-nofeature-noha
+ - '{slave-label}-defaults'
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - multijob:
- name: deploy
- condition: SUCCESSFUL
- projects:
- - name: 'joid-deploy-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters: |
- DEPLOY_SCENARIO=os-ovn-nofeature-noha
- COMPASS_OS_VERSION=xenial
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- - multijob:
- name: functest
- condition: SUCCESSFUL
- projects:
- - name: 'functest-joid-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters: |
- DEPLOY_SCENARIO=os-ovn-nofeature-ha
- FUNCTEST_SUITE_NAME=ovn4nfv_test_suite
- node-parameters: true
- kill-phase-on: NEVER
- abort-all-job: true
-
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: deploy
+ condition: SUCCESSFUL
+ projects:
+ - name: 'joid-deploy-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-ovn-nofeature-noha
+ COMPASS_OS_VERSION=xenial
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: functest
+ condition: SUCCESSFUL
+ projects:
+ - name: 'functest-joid-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-ovn-nofeature-ha
+ FUNCTEST_SUITE_NAME=ovn4nfv_test_suite
+ node-parameters: true
+ kill-phase-on: NEVER
+ abort-all-job: true
+---
- project:
name: ovn4nfv
stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
jobs:
- - 'ovn4nfv-build-{stream}'
+ - 'ovn4nfv-build-{stream}'
- job-template:
name: 'ovn4nfv-build-{stream}'
disabled: '{obj:disabled}'
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 1
- max-per-node: 1
- option: 'project'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+ option: 'project'
parametert:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
scm:
- - git-scm
+ - git-scm
triggers:
- - timed: 'H 23 * * *'
+ - timed: 'H 23 * * *'
builders:
- - 'ovn4nfv-build-macro'
+ - 'ovn4nfv-build-macro'
- builder:
name: 'ovn4nfv-build-macro'
builders:
- - shell: |
- #!/bin/bash
+ - shell: |
+ #!/bin/bash
- echo "hello world"
+ echo "hello world"
##############################################################################
set -o errexit
-set -o nounset
set -o pipefail
# Job Number Formatter
fi
}
-# We expect job_output to exist prior to this being run and contain the
-# output from jenkins-jobs test
+# Activiate the virtualenv so we have access to 'jenkins-jobs'
+source /opt/virtualenv/jenkins-job-builder/bin/activate
+
+echo "> Generating list of current JJB jobs..."
+jenkins-jobs -l ERROR test -r jjb -o job_output
echo "> Generating list of previous JJB jobs..."
-git checkout -q -b previous-commit HEAD^
+git checkout -b previous-commit HEAD^
jenkins-jobs -l ERROR test -r jjb -o job_output_prev
-git checkout -q - && git branch -q -d previous-commit
+git checkout - && git branch -d previous-commit
echo "> Finding job changes ..."
diff -r -q job_output job_output_prev &> job_diff.txt || true
files: 'jjb/**'
builders:
- - copyartifact:
- project: releng-merge-jjb
- filter: "job_output/*"
- which-build: last-successful
- stable: true
- optional: false
- flatten: false
- do-not-fingerprint: true
- shell:
!include-raw-escape: generate-job-list.sh
- report-build-result-to-gerrit
- string:
name: XCI_LOOP
default: 'daily'
-
+ - string:
+ name: INSTALLER_TYPE
+ default: 'osa'
+ - string:
+ name: FUNCTEST_SUITE_NAME
+ default: 'daily'
+ description: "Daily suite name to run"
builders:
- description-setter:
description: "Built on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
- builder:
name: xci-functest-builder
builders:
- - shell:
- !include-raw: ./xci-functest.sh
+ - shell: |
+ #!/bin/bash
+
+ echo "Hello World!"
+
+# this will be enabled once the xci is prepared
+#- builder:
+# name: xci-functest-builder
+# builders:
+# - shell:
+# !include-raw:
+# - ../../utils/fetch_os_creds.sh
+# - ../functest/functest-alpine.sh
+++ /dev/null
-#!/bin/bash
-
-echo "Functional testing with functest"
branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
- disable-strict-forbidden-file-verification: 'false'
+ disable-strict-forbidden-file-verification: 'true'
+ file-paths:
+ - compare-type: ANT
+ pattern: 'xci/**'
forbidden-file-paths:
- compare-type: ANT
pattern: 'bifrost/**'
pattern: 'upstream/**'
- compare-type: ANT
pattern: '**/README.rst'
+ - compare-type: ANT
+ pattern: 'docs/**'
readable-message: true
parameters:
- string:
name: ANSIBLE_VERBOSITY
default: '-vvvv'
+ - string:
+ name: INSTALLER_TYPE
+ default: 'osa'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
cd $WORKSPACE/xci
./xci-deploy.sh
+
- builder:
name: 'xci-verify-healthcheck-macro'
builders:
- - shell:
- !include-raw: ../../utils/fetch_os_creds.sh
- - shell:
- !include-raw: ../functest/functest-alpine.sh
+ - shell: |
+ #!/bin/bash
+
+ echo "Hello World!"
+
+# this will be enabled once the xci is prepared
+#- builder:
+# name: 'xci-verify-healthcheck-macro'
+# builders:
+# - shell:
+# !include-raw: ../../utils/fetch_os_creds.sh
+# - shell:
+# !include-raw: ../functest/functest-alpine.sh
installer: compass
auto-trigger-name: 'daily-trigger-disabled'
<<: *master
+ - flex-pod1:
+ slave-label: '{pod}'
+ installer: apex
+ auto-trigger-name: 'daily-trigger-disabled'
+ <<: *master
#--------------------------------
testsuite:
- 'daily'
default: '-i 104.197.68.199:8086'
description: 'Arguments to use in order to choose the backend DB'
+- parameter:
+ name: 'yardstick-params-flex-pod1'
+ parameters:
+ - string:
+ name: YARDSTICK_DB_BACKEND
+ default: '-i 104.197.68.199:8086'
+ description: 'Arguments to use in order to choose the backend DB'
+
#######################
## trigger macros
#######################
--- /dev/null
+[metadata]
+name = opnfv
+version = 5
+home-page = https://wiki.opnfv.org/display/releng/Releng
+
+[files]
+packages = opnfv
-##############################################################################
+#!/usr/bin/env python
+
+# Copyright (c) 2017 Orange 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
-##############################################################################
-
-from setuptools import setup, find_packages
+import setuptools
+# In python < 2.7.4, a lazy loading of package `pbr` will break
+# setuptools if some other modules registered functions in `atexit`.
+# solution from: http://bugs.python.org/issue15881#msg170215
+try:
+ import multiprocessing # noqa
+except ImportError:
+ pass
-setup(
- name="opnfv",
- version="danube",
- packages=find_packages(),
- include_package_data=True,
- package_data={
- },
- url="https://www.opnfv.org",
- install_requires=["paramiko>=2.0",
- "mock>=2.0",
- "requests!=2.12.2,>=2.10.0"],
- test_requires=["nose",
- "coverage>=4.0"]
-)
+setuptools.setup(
+ setup_requires=['pbr>=1.8'],
+ pbr=True)
os_cacert=${os_cacert:-$HOME/os_cacert}
installer_type=${installer_type:-$INSTALLER_TYPE}
installer_ip=${installer_ip:-$INSTALLER_IP}
-if [ "${installer_type}" == "fuel" ] && [ "${BRANCH}" == "master" ]; then
- installer_ip=${SALT_MASTER_IP}
-fi
if [ -z $dest_path ] || [ -z $installer_type ] || [ -z $installer_ip ]; then
usage
# Start fetching the files
info "Fetching rc file..."
if [ "$installer_type" == "fuel" ]; then
- verify_connectivity $installer_ip
- if [ "${BRANCH}" == "master" ]; then
- ssh_key=${ssh_key:-$SSH_KEY}
- if [ -z $ssh_key ] || [ ! -f $ssh_key ]; then
+ verify_connectivity "${installer_ip}"
+ # stable/danube uses old Fuel, requires user/pass; new Fuel uses keypair
+ if [[ ! "${BRANCH}" =~ "danube" ]]; then
+ ssh_user="ubuntu"
+ ssh_key="${ssh_key:-$SSH_KEY}"
+ if [ -z "$ssh_key" ] || [ ! -f "$ssh_key" ]; then
error "Please provide path to existing ssh key for mcp deployment."
exit 2
fi
ssh_options+=" -i ${ssh_key}"
# retrieving controller vip
- controller_ip=$(ssh 2>/dev/null ${ssh_options} ubuntu@${installer_ip} \
- "sudo salt --out txt 'ctl*' pillar.get _param:openstack_control_address | awk '{print \$2; exit}'" | \
- sed 's/ //g') &> /dev/null
+ controller_ip=$(ssh 2>/dev/null ${ssh_options} "${ssh_user}@${installer_ip}" \
+ "sudo salt --out yaml 'ctl*' pillar.get _param:openstack_control_address | \
+ awk '{print \$2; exit}'") &> /dev/null
- info "... from controller $controller_ip..."
- ssh ${ssh_options} ubuntu@${controller_ip} "sudo cat /root/keystonercv3" > $dest_path
+ info "... from controller ${controller_ip} ..."
+ ssh ${ssh_options} "${ssh_user}@${controller_ip}" \
+ "sudo cat /root/keystonercv3" > "${dest_path}"
- if [[ $BUILD_TAG =~ "baremetal" ]]; then
- ssh ${ssh_options} ubuntu@${installer_ip} "cat /etc/ssl/certs/os_cacert" > $os_cacert
+ if [[ "${BUILD_TAG}" =~ "baremetal" ]]; then
+ ssh ${ssh_options} "${ssh_user}@${installer_ip}" \
+ "cat /etc/ssl/certs/os_cacert" > "${os_cacert}"
fi
else
- #ip_fuel="10.20.0.2"
env=$(sshpass -p r00tme ssh 2>/dev/null ${ssh_options} root@${installer_ip} \
'fuel env'|grep operational|head -1|awk '{print $1}') &> /dev/null
if [ -z $env ]; then
fi
if [[ $(whoami) != "root" ]]; then
- if sudo -l | grep "requiretty"; then
+ if sudo -l | grep "requiretty | grep -v "\!requiretty"; then
echo "please comment out Defaults requiretty from /etc/sudoers"
exit 1
fi
server_name localhost;
location / {
- proxy_pass http://backends;
+ alias /home/opnfv/releng/utils/test/reporting/pages/dist/;
}
- location /reporting/ {
- alias /home/opnfv/releng/utils/test/reporting/pages/dist/;
+ location /api/ {
+ http_pass http://backends/;
}
location /display/ {
-: ${SERVER_URL:='testresults.opnfv.org/reporting2'}
+: ${SERVER_URL:='testresults.opnfv.org/testing/api'}
echo "{\"url\": \"http://${SERVER_URL}\"}" > dist/config.json
build
*.egg-info
3rd_party/static/static
+*.pyc
.controller('PodsController', PodsController);
PodsController.$inject = [
- '$rootScope', '$scope', '$http', '$filter', '$state', 'testapiApiUrl','raiseAlert'
+ '$scope', '$http', '$filter', '$state', 'testapiApiUrl','raiseAlert'
];
/**
details: ctrl.details
};
ctrl.podsRequest =
- $http.post(pods_url, body).error(function (error) {
+ $http.post(pods_url, body).error(function (data, status) {
ctrl.showError = true;
- ctrl.error =
- 'Error creating the new pod from server: ' +
- angular.toJson(error);
+ if(status == 403){
+ ctrl.error =
+ 'Error creating the new pod from server: Pod\'s name already exists'
+ }
});
}
else{
ctrl.showError = true;
- ctrl.error = 'Name is missing.'
+ ctrl.error = 'Name is missing.'
}
}
opnfv-testapi
=============
-Test Results Collector of OPNFV Test Projects
+**Test Results Collector of OPNFV Test Projects**:
-Start Server
-==============
+This project aims to provide a common way of gathering all the test results for OPNFV
+testing projects into a single place, and a unified way of getting those results for
+testing analysis projects, such as Reporting/Bitergia Dashboard/Qtip. It exposes
+Restful APIs for collecting results and pushing them into a MongoDB database.
+
+If you are interested in how TestAPI looks like, please visit OPNFV's official `TestAPI Server`__
+
+.. __: http://testresults.opnfv.org/test
+
+Pre-requsites
+=============
-Getting setup
-^^^^^^^^^^^^^
+TestAPI leverages MongoDB as the data warehouse, in order to let it work
+successfully, a MongoDB must be provided, the official MongoDB version in OPNFV
+TestAPI is 3.2.6. And the database is **test_results_collection**, the five
+collections are *users/pods/projects/testcases/scenarioes/results*. And thanks to
+MongoDB's very user-friendly property, they don't need to be created in advance.
-Requirements for opnfv-testapi:
+Running locally
+===============
-* tornado
-* epydoc
+Requirements
+^^^^^^^^^^^^
-These requirements are expressed in the requirements.txt file and may be
-installed by running the following (from within a virtual environment)::
+All requirements are listed in requirements.txt and should be
+installed by 'pip install':
- pip install -r requirements.txt
+ *pip install -r requirements.txt*
+
+Installation
+^^^^^^^^^^^^
+
+ *python setup.py install*
+
+After installation, configuration file etc/config.ini will be put under
+/etc/opnfv_testapi/. And all the web relevant files under 3rd_party/static
+will be in /user/local/share/opnfv_testapi as a totality.
+
+Start Server
+^^^^^^^^^^^^
-How to install
-^^^^^^^^^^^^^^
+ *opnfv-testapi [--config-file <config.ini>]*
-From within your environment, just run:
+If --config-file is provided, the specified configuration file will be employed
+when starting the server, or else /etc/opnfv_testapi/config.ini will be utilized
+by default.
- ./install.sh
+After executing the command successfully, a TestAPI server will be started on
+port 8000, to visit web portal, please access http://hostname:8000
-How to run
-^^^^^^^^^^
+Regarding swagger-ui website, please visit http://hostname:8000/swagger/spec.html
-From within your environment, just run:
+Running with container
+======================
- opnfv-testapi
+TestAPI has already containerized, the docker image is opnfv/testapi:latest.
-This will start a server on port 8000. Just visit http://localhost:8000
+**Running the container not behind nginx:**
-For swagger website, just visit http://localhost:8000/swagger/spec.html
+.. code-block:: shell
-Unittest
-=====================
+ docker run -dti --name testapi -p expose_port:8000
+ -e "mongodb_url=mongodb://mongodb_ip:27017/"
+ -e "base_url=http://host_name:expose_port"
+ opnfv/testapi:latest
-Getting setup
-^^^^^^^^^^^^^
+**Running the container behind nginx:**
-Requirements for unittest:
+.. code-block:: shell
-* testtools
-* discover
-* futures
+ docker run -dti --name testapi -p expose_port:8000
+ -e "mongodb_url=mongodb://mongodb_ip:27017/"
+ -e "base_url=http://nginx_url"
+ opnfv/testapi:latest
-These requirements are expressed in the test-requirements.txt file and may be
-installed by running the following (from within a virtual environment)::
+Unittest & pep8
+===============
- pip install -r test-requirements.txt
+All requirements for unit tests are outlined in test-requirements.txt, and in TestAPI project, tox is leveraged to drive the executing of unit tests and pep8 check
-How to run
-^^^^^^^^^^
+**Running unit tests**
-From within your environment, just run::
+ *tox -e py27*
- bash run_test.sh
+**Running pep8 check**
+ *tox -e pep8*
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
import functools
+import re
from tornado import gen
from tornado import web
def wrap(self, *args, **kwargs):
query = kwargs.get('query')
if query:
- to_data = yield dbapi.db_find_one(self.table, query())
+ query_data = query()
+ if self.table == 'pods':
+ if query_data.get('name') is not None:
+ query_data['name'] = re.compile(query_data.get('name'),
+ re.IGNORECASE)
+ to_data = yield dbapi.db_find_one(self.table, query_data)
if to_data:
raises.Forbidden(message.exist(self.table, query()))
ret = yield gen.coroutine(xstep)(self, *args, **kwargs)
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+import re
+
from operator import itemgetter
from bson.objectid import ObjectId
elif k == 'trust_indicator.current':
if content.get('trust_indicator').get('current') != v:
return False
- elif not isinstance(v, dict) and content.get(k, None) != v:
- return False
+ elif not isinstance(v, dict):
+ if isinstance(v, re._pattern_type):
+ if v.match(content.get(k, None)) is None:
+ return False
+ else:
+ if content.get(k, None) != v:
+ return False
return True
def _find(self, *args):
for content in self.contents:
if self._in(content, *args):
res.append(content)
-
return res
def find(self, *args):
self.req_d = pod_models.PodCreateRequest('zte-1', 'virtual',
'zte pod 1', 'ci-pod')
self.req_e = pod_models.PodCreateRequest('zte-2', 'metal', 'zte pod 2')
+ self.req_f = pod_models.PodCreateRequest('Zte-1', 'virtual',
+ 'zte pod 1', 'ci-pod')
self.get_res = pod_models.Pod
self.list_res = pod_models.Pods
self.basePath = '/api/v1/pods'
self.create_d()
return self.req_d
+ @executor.create(httplib.FORBIDDEN, message.exist_base)
+ def test_alreadyExistCaseInsensitive(self):
+ self.create(self.req_f)
+ return self.req_d
+
class TestPodGet(TestPodBase):
def setUp(self):
## Urls to check if the modules are deployed or not ?
declare -A urls=( ["testapi"]="http://testresults.opnfv.org/test/" \
- ["reporting"]="http://testresults.opnfv.org/reporting2/reporting/index.html")
+ ["reporting"]="http://testresults.opnfv.org/reporting/index.html")
### Functions related to checking.
building=$(grep -oPm1 "(?<=<building>)[^<]+" <<< "$xml")
if [[ $building == "false" ]]
then
- return 0
+ false
else
- return 1
+ true
fi
}
echo -e "Docker status: $status"
if [ $status = "active" ]
then
- return 1
+ true
else
- return 0
+ false
fi
}
cmd=`curl --head -m10 --request GET ${2} | grep '200 OK' > /dev/null`
rc=$?
if [[ $rc == 0 ]]; then
- return 0
+ true
else
- return 1
+ false
fi
}
done
if [ ! -z "$failed_modules" ]; then
echo -e "Failed Modules: $failed_modules"
- return 1
+ false
else
echo -e "All modules working good"
exit 0
## If the problem is related to docker daemon
-if get_docker_status; then
+if ! get_docker_status; then
restart_docker_fix
if ! check_modules; then
echo -e "Watchdog failed while restart_docker_fix"
fi
sudo docker ps
-sudo docker images
+sudo docker images
\ No newline at end of file