diff options
Diffstat (limited to 'jjb')
54 files changed, 1959 insertions, 1025 deletions
diff --git a/jjb/apex/apex.yml b/jjb/apex/apex.yml index 14c472b1e..a5cc4798a 100644 --- a/jjb/apex/apex.yml +++ b/jjb/apex/apex.yml @@ -31,7 +31,7 @@ branch: '{branch}' - string: name: GIT_BASE - default: ssh://gerrit.opnfv.org:29418/$PROJECT + default: https://gerrit.opnfv.org/gerrit/$PROJECT description: "Used for overriding the GIT URL coming from parameters macro." scm: @@ -93,7 +93,7 @@ branch: '{branch}' - string: name: GIT_BASE - default: ssh://gerrit.opnfv.org:29418/$PROJECT + default: https://gerrit.opnfv.org/gerrit/$PROJECT description: "Used for overriding the GIT URL coming from parameters macro." scm: @@ -144,7 +144,7 @@ branch: '{branch}' - string: name: GIT_BASE - default: ssh://gerrit.opnfv.org:29418/$PROJECT + default: https://gerrit.opnfv.org/gerrit/$PROJECT description: "Used for overriding the GIT URL coming from parameters macro." scm: @@ -197,7 +197,7 @@ # branch: branch (eg. stable) node: opnfv-jump-1 - disabled: true + disabled: false scm: - git-scm: @@ -212,6 +212,7 @@ gs-pathname: '{gs-pathname}' builders: + - 'apex-deploy-baremetal' - 'apex-workspace-cleanup' - job-template: @@ -253,12 +254,10 @@ git-revision: true block: true - trigger-builds: - - project: 'apex-deploy-virtual-{stream}' + - project: 'apex-deploy-baremetal-{stream}' git-revision: true block: true - trigger-builds: - - project: 'apex-deploy-baremetal-{stream}' - - trigger-builds: - project: 'functest-apex-opnfv-jump-1-daily-{stream}' block: true block-thresholds: @@ -425,7 +424,73 @@ # cleanup virtual machines before we start sudo opnfv-clean # initiate virtual deployment - sudo opnfv-deploy -v + if [ -e /usr/share/doc/opnfv/network_settings.yaml.example ]; then + sudo opnfv-deploy -v -d /usr/share/doc/opnfv/deploy_settings.yaml.example -n /usr/share/doc/opnfv/network_settings.yaml.example + else + sudo opnfv-deploy -v + fi + echo + echo "--------------------------------------------------------" + echo "Done!" + +- builder: + name: 'apex-deploy-baremetal' + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + + # log info to console + echo "Starting the Apex baremetal deployment." + echo "--------------------------------------------------------" + echo + + if [[ ! "$ARTIFACT_NAME" == "latest" ]]; then + # if artifact name is passed the pull a + # specific artifact from artifacts.opnfv.org + RPM_INSTALL_PATH=$GS_URL/$ARTIFACT_NAME + else + if [[ -f opnfv.properties ]]; then + # if opnfv.properties exists then use the + # local build. Source the file so we get local OPNFV vars + source opnfv.properties + RPM_INSTALL_PATH=build_output/$(basename $OPNFV_RPM_URL) + else + # no opnfv.properties means use the latest from artifacts.opnfv.org + # get the latest.properties to get the link to the latest artifact + curl -s -o $WORKSPACE/opnfv.properties http://$GS_URL/latest.properties + [[ -f opnfv.properties ]] || exit 1 + # source the file so we get OPNFV vars + source opnfv.properties + RPM_INSTALL_PATH=$OPNFV_RPM_URL + fi + fi + + source opnfv.properties + RPM_INSTALL_PATH=build_output/$(basename $OPNFV_RPM_URL) + if [ ! -e "$RPM_INSTALL_PATH" ]; then + RPM_INSTALL_PATH=http://${OPNFV_RPM_URL} + fi + + # update / install the new rpm + if rpm -q opnfv-apex > /dev/null; then + if [ $(basename $OPNFV_RPM_URL) == $(rpm -q opnfv-apex).rpm ]; then + echo "RPM is already installed" + elif sudo yum update -y $RPM_INSTALL_PATH | grep "does not update installed package"; then + sudo yum downgrade -y $RPM_INSTALL_PATH; + fi + else + sudo yum install -y $RPM_INSTALL_PATH; + fi + + # cleanup environment before we start + sudo opnfv-clean + # initiate baremetal deployment + sudo opnfv-deploy -i /root/inventory/pod_settings.yaml \ + -d /usr/share/doc/opnfv/deploy_settings.yaml.example \ + -n /root/network/network_settings.yaml echo echo "--------------------------------------------------------" diff --git a/jjb/armband/armband.yml b/jjb/armband/armband.yml index c35f28784..8de95c2e1 100644 --- a/jjb/armband/armband.yml +++ b/jjb/armband/armband.yml @@ -10,14 +10,13 @@ jobs: - 'armband-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'armband-verify-{stream}' diff --git a/jjb/availability/availability.yml b/jjb/availability/availability.yml index 2f0812b84..a320ff732 100644 --- a/jjb/availability/availability.yml +++ b/jjb/availability/availability.yml @@ -10,14 +10,13 @@ jobs: - 'availability-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'availability-verify-{stream}' diff --git a/jjb/bottlenecks/bottlenecks.yml b/jjb/bottlenecks/bottlenecks.yml index e96147848..a65341809 100644 --- a/jjb/bottlenecks/bottlenecks.yml +++ b/jjb/bottlenecks/bottlenecks.yml @@ -5,8 +5,8 @@ name: bottlenecks jobs: - 'bottlenecks-verify-{stream}' - - 'bottlenecks-daily-{installer}-{pod}-{stream}' - + - 'bottlenecks-daily-{installer}-{suite}-{pod}-{stream}' + - 'bottlenecks-{suite}-upload-artifacts-{stream}' pod: - lf: node: 'opnfv-jump-2' @@ -14,16 +14,20 @@ installer_ip: '10.20.0.2' installer: - -fuel + - 'fuel' + + suite: + - 'rubbos' + - 'vstf' # only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' # - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' +# branch: 'stable/{stream}' +# gs-pathname: '/{stream}' project: 'bottlenecks' ############################### @@ -72,7 +76,38 @@ echo "Nothing to verify!" - job-template: - name: 'bottlenecks-daily-{installer}-{pod}-{stream}' + name: 'bottlenecks-{suite}-upload-artifacts-{stream}' + + node: ericsson-build + + concurrent: true + + properties: + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + + parameters: + - project-parameter: + project: '{project}' + - 'ericsson-ca-build-1-defaults' + - bottlenecks-parameter: + gs-pathname: '{gs-pathname}' + suite: '{suite}' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + builders: + - 'bottlenecks-builder-upload-artifact' + - 'bottlenecks-workspace-cleanup' + +- job-template: + name: 'bottlenecks-daily-{installer}-{suite}-{pod}-{stream}' disabled: false @@ -94,6 +129,10 @@ name: INSTALLER_IP default: '{installer_ip}' description: "Installer IP." + - string: + name: GERRIT_REFSPEC_DEBUG + default: '' + description: "Gerrit refspec for debug." scm: - git-scm: @@ -101,18 +140,40 @@ refspec: '' branch: '{branch}' + wrappers: + - timeout: + timeout: 120 + fail: true + triggers: - 'bottlenecks-trigger-{pod}' builders: - 'bottlenecks-fetch-os-creds' - - 'run-rubbos-env-preparation' - - 'run-rubbos-tools-installation' - - 'rubbos-exec' + - 'bottlenecks-run-{suite}' publishers: - email: - recipients: hongbo.tianhongbo@huawei.com matthew.lijun@huawei.com + recipients: hongbo.tianhongbo@huawei.com matthew.lijun@huawei.com liangqi1@huawei.com liyiting@huawei.com + +#################### +# parameter macros +#################### +- parameter: + name: bottlenecks-parameter + parameters: + - string: + name: CACHE_DIR + default: $WORKSPACE/cache/{suite} + description: "the cache to store packages downloaded from public IP" + - string: + name: SUITE_URL + default: gs://artifacts.opnfv.org/bottlenecks/{suite}{gs-pathname} + description: "LF artifacts url for storage of bottlenecks packages" + - string: + name: PACKAGE_URL + default: http://205.177.226.237:9999/bottlenecks/{suite}/ + description: "the url where we store the packages used for bottlenecks rubbos" ################################### #builders for bottlenecks project @@ -124,43 +185,56 @@ !include-raw ../../utils/fetch_os_creds.sh - builder: - name: run-rubbos-env-preparation + name: bottlenecks-run-rubbos builders: - shell: | #!/bin/bash set -o errexit - echo "Bottlenecks: export openstack parameters before rubbos running" - + echo "Bottlenecks: rubbos running now..." cd $WORKSPACE - ./rubbos/rubbos_scripts/1-1-1/scripts/env_preparation.sh + ./ci/run.sh $GERRIT_REFSPEC_DEBUG - builder: - name: run-rubbos-tools-installation + name: bottlenecks-run-vstf builders: - shell: | #!/bin/bash set -o errexit - echo "Bottlenecks: to install tools to run rubbos" - + echo "Bottlenecks: vstf running now..." cd $WORKSPACE - ./rubbos/rubbos_scripts/1-1-1/scripts/run.sh + ./ci/vstf_run.sh $GERRIT_REFSPEC_DEBUG +- builder: + name: bottlenecks-builder-upload-artifact + builders: + - shell: | + #!/bin/bash + set -o errexit + + echo "Bottlenecks: upload to artifacts from the public IP" + + [[ -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 + gsutil cp $CACHE_DIR/$file $SUITE_URL + done - builder: - name: rubbos-exec + name: bottlenecks-workspace-cleanup builders: - shell: | #!/bin/bash set -o errexit - echo "Bottlenecks: rubbos execution" + echo "Bottlenecks: cleanup cache used for storage downloaded packages" - cd $WORKSPACE - cd ./rubbos/rubbos_scripts/1-1-1 - source set_bottlenecks_rubbos_env.sh - ssh $CONTROL_HOST - ./tmp/CONTROL_rubbos_exec.sh + /bin/rm -rf $CACHE_DIR ####################### #trigger macros @@ -168,4 +242,24 @@ - trigger: name: 'bottlenecks-trigger-lf' triggers: - - timed: '@midnight' + - timed: '0 6 * * *' + - gerrit: + 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}' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**|.gitignore' diff --git a/jjb/compass4nfv/compass4nfv.yml b/jjb/compass4nfv/compass4nfv.yml index 3645bbba3..018145e4e 100644 --- a/jjb/compass4nfv/compass4nfv.yml +++ b/jjb/compass4nfv/compass4nfv.yml @@ -9,28 +9,31 @@ - 'compass-daily-{stream}' - 'compass-build-iso-{stream}' - 'compass-build-ppa-{stream}' - - 'compass-deploy-virtual-{flavor}' - - 'compass-deploy-bare-huawei-us' + - 'compass-deploy-virtual-{sdn-controller}-{stream}' + - 'compass-deploy-bare-huawei-us-{stream}' # only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' # - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' - - flavor: - - cluster-odl: - conf: 'virtual_cluster_odl' - node: 'huawei-deploy-vm' - - cluster-onos: - conf: 'virtual_cluster_onos' - node: 'huawei-deploy-vm' - - cluster: - conf: 'virtual_cluster' - node: 'huawei-deploy-vm' +# branch: 'stable/{stream}' +# gs-pathname: '/{stream}' + + sdn-controller: + - 'nosdn': + disabled: false + node: huawei-deploy-vm + - 'odl': + disabled: false + node: huawei-deploy-vm + - 'onos': + disabled: false + node: huawei-deploy-vm + - 'opencontrail': + disabled: true + node: huawei-deploy-vm project: 'compass4nfv' @@ -59,10 +62,10 @@ branch: '{branch}' - compass-parameter: installer: '{installer}' + gs-pathname: '{gs-pathname}' - string: - name: FLAVOR_CONF - default: 'virtual_cluster' - description: "" + name: SDN_CONTROLLER + default: 'nosdn' scm: - gerrit-trigger-scm: credentials-id: '{ssh-credentials}' @@ -93,7 +96,7 @@ builders: - 'builder-compass-build-iso' - - 'builder-compass-deploy-virtual-flavor' + - 'builder-compass-deploy-virtual' publishers: - archive: artifacts: 'ansible.log' @@ -118,6 +121,7 @@ project: '{project}' - compass-parameter: installer: '{installer}' + gs-pathname: '{gs-pathname}' scm: - git-scm: @@ -126,7 +130,7 @@ branch: '{branch}' triggers: - - timed: '@midnight' + - timed: 'H 16 * * *' builders: - trigger-builds: @@ -134,17 +138,22 @@ git-revision: true block: true - trigger-builds: - - project: 'compass-deploy-virtual-cluster' + - project: 'compass-deploy-virtual-nosdn-{stream}' git-revision: true - block: true -# - trigger-builds: -# - project: 'compass-deploy-virtual-cluster-odl' -# git-revision: true -# block: true + block: false - trigger-builds: - - project: 'compass-deploy-virtual-cluster-onos' + - project: 'compass-deploy-virtual-odl-{stream}' git-revision: true - block: true + block: false + - trigger-builds: + - project: 'compass-deploy-virtual-onos-{stream}' + git-revision: true + block: false + - trigger-builds: + - project: 'compass-deploy-bare-huawei-us-{stream}' + git-revision: true + block: false + - job-template: name: 'compass-build-iso-{stream}' @@ -164,6 +173,7 @@ project: '{project}' - compass-parameter: installer: '{installer}' + gs-pathname: '{gs-pathname}' scm: - git-scm: @@ -196,6 +206,7 @@ project: '{project}' - compass-parameter: installer: '{installer}' + gs-pathname: '{gs-pathname}' scm: - git-scm: @@ -210,7 +221,7 @@ - 'builder-compass-make-ppa' - job-template: - name: 'compass-deploy-virtual-{flavor}' + name: 'compass-deploy-virtual-{sdn-controller}-{stream}' disabled: false @@ -229,15 +240,15 @@ project: '{project}' - compass-parameter: installer: '{installer}' + gs-pathname: '{gs-pathname}' - string: - name: FLAVOR_CONF - default: '{conf}' - description: "" + name: SDN_CONTROLLER + default: '{sdn-controller}' builders: - 'builder-compass-ci-preclean-workspace' - 'builder-compass-download-artifact' - - 'builder-compass-deploy-virtual-flavor' + - 'builder-compass-deploy-virtual' publishers: - archive: artifacts: 'ansible.log' @@ -245,7 +256,7 @@ fingerprint: true - job-template: - name: 'compass-deploy-bare-huawei-us' + name: 'compass-deploy-bare-huawei-us-{stream}' disabled: false @@ -264,6 +275,10 @@ project: '{project}' - compass-parameter: installer: '{installer}' + gs-pathname: '{gs-pathname}' + - string: + name: SDN_CONTROLLER + default: '{sdn-controller}' builders: - 'builder-compass-ci-preclean-workspace' @@ -300,7 +315,7 @@ description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." - string: name: GS_URL - default: artifacts.opnfv.org/$PROJECT/ + default: artifacts.opnfv.org/$PROJECT{gs-pathname} description: "URL to Google Storage." - string: name: GS_URL_PROXY @@ -323,8 +338,8 @@ - choice: name: COMPASS_OS_VERSION choices: - - 'ubuntu-trusty' - - 'rhel7' + - 'trusty' + - 'centos7' ######################## # builder macros @@ -398,7 +413,7 @@ echo "Done!" - builder: - name: 'builder-compass-deploy-virtual-flavor' + name: 'builder-compass-deploy-virtual' builders: - shell: | #!/bin/bash @@ -410,14 +425,10 @@ echo export ISO_URL=file://$BUILD_DIRECTORY/compass.iso - sudo brctl addbr vnic_ci - sudo ifconfig vnic_ci up - export EXTERNAL_NIC=vnic_ci - cd $WORKSPACE - export OS_VERSION=${COMPASS_OS_VERSION} export OPENSTACK_VERSION=${COMPASS_OPENSTACK_VERSION} - ./deploy.sh $FLAVOR_CONF + export CONFDIR=$WORKSPACE/deploy/conf/vm_environment + ./deploy.sh --dha $CONFDIR/$SDN_CONTROLLER.yml --network $CONFDIR/$NODE_NAME/network.yml if [ $? -ne 0 ]; then echo "depolyment failed!" deploy_ret=1 diff --git a/jjb/conductor/conductor.yml b/jjb/conductor/conductor.yml index 39325d4ce..b2c4b1f52 100644 --- a/jjb/conductor/conductor.yml +++ b/jjb/conductor/conductor.yml @@ -10,14 +10,13 @@ jobs: - 'conductor-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'conductor-verify-{stream}' diff --git a/jjb/copper/copper.yml b/jjb/copper/copper.yml index fc27d9cd6..1b16864b8 100644 --- a/jjb/copper/copper.yml +++ b/jjb/copper/copper.yml @@ -10,14 +10,13 @@ jobs: - 'copper-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'copper-verify-{stream}' diff --git a/jjb/doctor/doctor.yml b/jjb/doctor/doctor.yml index 309177bde..167b696a3 100644 --- a/jjb/doctor/doctor.yml +++ b/jjb/doctor/doctor.yml @@ -6,14 +6,13 @@ jobs: - 'doctor-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'doctor-verify-{stream}' diff --git a/jjb/dpacc/dpacc.yml b/jjb/dpacc/dpacc.yml index d503257dd..0258c23fd 100644 --- a/jjb/dpacc/dpacc.yml +++ b/jjb/dpacc/dpacc.yml @@ -10,14 +10,13 @@ jobs: - 'dpacc-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'dpacc-verify-{stream}' diff --git a/jjb/fastpathmetrics/fastpathmetrics.yml b/jjb/fastpathmetrics/fastpathmetrics.yml index a0ae806ad..5b2c9c2cf 100644 --- a/jjb/fastpathmetrics/fastpathmetrics.yml +++ b/jjb/fastpathmetrics/fastpathmetrics.yml @@ -10,14 +10,13 @@ jobs: - 'fastpathmetrics-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'fastpathmetrics-verify-{stream}' diff --git a/jjb/fuel/fuel-build.sh b/jjb/fuel/fuel-build.sh index 00617ce54..d6a71e00b 100755 --- a/jjb/fuel/fuel-build.sh +++ b/jjb/fuel/fuel-build.sh @@ -3,13 +3,45 @@ set -o errexit set -o nounset set -o pipefail +cd $WORKSPACE + +LATEST_ISO_PROPERTIES=$WORKSPACE/latest.iso.properties +if [[ "$JOB_NAME" =~ "daily" ]]; then + # check to see if we already have an artifact on artifacts.opnfv.org + # for this commit during daily builds + echo "Checking to see if we already built and stored Fuel ISO for this commit" + + curl -s -o $LATEST_ISO_PROPERTIES http://$GS_URL/latest.properties 2>/dev/null + + # get metadata of latest ISO + LATEST_ISO_SHA1=$(grep OPNFV_GIT_SHA1 $LATEST_ISO_PROPERTIES | cut -d'=' -f2) + LATEST_ISO_URL=$(grep OPNFV_ARTIFACT_URL $LATEST_ISO_PROPERTIES | cut -d'=' -f2) +else + LATEST_ISO_SHA1=none +fi + +# get current SHA1 +CURRENT_SHA1=$(git rev-parse HEAD) + +if [[ "$CURRENT_SHA1" == "$LATEST_ISO_SHA1" ]]; then + echo "An ISO has already been built for this commit" + echo " $LATEST_ISO_URL" + echo "Nothing new to build. Exiting." + touch $WORKSPACE/.noupload + exit 0 +else + echo "This commit has not been built yet. Proceeding with the build." + /bin/rm -f $LATEST_ISO_PROPERTIES + echo +fi + # log info to console -echo "Starting the build of $INSTALLER. This could take some time..." +echo "Starting the build of $INSTALLER_TYPE. This could take some time..." echo "--------------------------------------------------------" echo # create the cache directory if it doesn't exist -[[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY +mkdir -p $CACHE_DIRECTORY # set OPNFV_ARTIFACT_VERSION if [[ "$JOB_NAME" =~ "merge" ]]; then diff --git a/jjb/fuel/fuel-ci-jobs.yml b/jjb/fuel/fuel-ci-jobs.yml new file mode 100644 index 000000000..1b4b26963 --- /dev/null +++ b/jjb/fuel/fuel-ci-jobs.yml @@ -0,0 +1,194 @@ +- project: + + name: 'fuel' + + project: '{name}' + + installer: '{name}' + +#-------------------------------- +# BRANCH ANCHORS +#-------------------------------- + master: &master + stream: master + branch: '{stream}' + gs-pathname: '' + brahmaputra: &brahmaputra + stream: brahmaputra + branch: 'stable/{stream}' + gs-pathname: '/{stream}' +#-------------------------------- +# POD, INSTALLER, AND BRANCH MAPPING +#-------------------------------- +# brahmaputra +#-------------------------------- + pod: + - opnfv-jump-2: + <<: *brahmaputra +#-------------------------------- +# master +#-------------------------------- + - ericsson-pod1: + <<: *master + - ericsson-pod2: + <<: *master +#-------------------------------- + +# please check the triggers before enabling any of the controllers!!! + sdn-controller: + - 'nosdn': + disabled: false +# commented out below controllers to get nosdn scenario settled first +# - 'odl': +# disabled: true +# - 'onos': +# disabled: true +# - 'opencontrail': +# disabled: true + + jobs: + - 'fuel-{sdn-controller}-{pod}-daily-{stream}' + - 'fuel-deploy-{pod}-daily-{stream}' + +######################## +# job templates +######################## +- job-template: + name: 'fuel-{sdn-controller}-{pod}-daily-{stream}' + + project-type: multijob + + disabled: '{obj:disabled}' + + concurrent: false + + properties: + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + + wrappers: + - build-name: + name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + + triggers: + - 'fuel-{pod}-{sdn-controller}-trigger' + + parameters: + - project-parameter: + project: '{project}' + - '{pod}-defaults' + - '{installer}-defaults' + - string: + name: SDN_CONTROLLER + default: '{sdn-controller}' + - string: + name: DEPLOY_SCENARIO + default: 'none' + - fuel-ci-parameter: + gs-pathname: '{gs-pathname}' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + builders: + - multijob: + name: deploy + condition: SUCCESSFUL + projects: + - name: 'fuel-deploy-{pod}-daily-{stream}' + current-parameters: true + git-revision: true + kill-phase-on: FAILURE + - multijob: + name: functest + condition: COMPLETED + projects: + - name: 'functest-fuel-{pod}-daily-{stream}' + current-parameters: true + kill-phase-on: NEVER + - multijob: + name: yardstick + condition: COMPLETED + projects: + - name: 'yardstick-fuel-{pod}-daily-{stream}' + current-parameters: true + kill-phase-on: NEVER + +- job-template: + name: 'fuel-deploy-{pod}-daily-{stream}' + + concurrent: false + + properties: + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + + parameters: + - project-parameter: + project: '{project}' + - '{pod}-defaults' + - '{installer}-defaults' + - fuel-ci-parameter: + gs-pathname: '{gs-pathname}' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + wrappers: + - build-name: + name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + + builders: + - shell: + !include-raw ./fuel-download-artifact.sh + - shell: + !include-raw ./fuel-deploy.sh + + publishers: + - email: + recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com +######################## +# parameter macros +######################## +- parameter: + name: fuel-ci-parameter + parameters: + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: CACHE_DIRECTORY + default: $HOME/opnfv/cache/$INSTALLER_TYPE + description: "Directory where the cache to be used during the build is located." + - string: + name: GS_URL + default: artifacts.opnfv.org/$PROJECT{gs-pathname} + description: "URL to Google Storage." +######################## +# trigger macros +######################## +# trigger for opnfv-jump-2 is set to run 1 hour ahead of others +# to prevent doing unnecessary builds +- trigger: + name: 'fuel-opnfv-jump-2-nosdn-trigger' + triggers: + - timed: '0 2 * * *' +- trigger: + name: 'fuel-ericsson-pod1-nosdn-trigger' + triggers: + - timed: '0 2 * * *' +- trigger: + name: 'fuel-ericsson-pod2-nosdn-trigger' + triggers: + - timed: '0 2 * * *' diff --git a/jjb/fuel/fuel-deploy-virtual.sh b/jjb/fuel/fuel-deploy-virtual.sh index 626a65060..8e9282373 100755 --- a/jjb/fuel/fuel-deploy-virtual.sh +++ b/jjb/fuel/fuel-deploy-virtual.sh @@ -9,20 +9,35 @@ source latest.properties # echo the info about artifact that is used during the deployment echo "Using $(echo $OPNFV_ARTIFACT_URL | cut -d'/' -f3) for deployment" +# checkout the commit that was used for building the downloaded artifact +# to make sure the ISO and deployment mechanism uses same versions +echo "Checking out $OPNFV_GIT_SHA1" +git checkout $OPNFV_GIT_SHA1 --quiet + # create TMPDIR if it doesn't exist export TMPDIR=$HOME/tmpdir -[[ -d $TMPDIR ]] || mkdir -p $TMPDIR +mkdir -p $TMPDIR # change permissions down to TMPDIR chmod a+x $HOME chmod a+x $TMPDIR +# get the lab name from SLAVE_NAME +# we currently support ericsson and intel labs +LAB_NAME=${{NODE_NAME%%-*}} +if [[ ! "$LAB_NAME" =~ (ericsson|intel) ]]; then + echo "Unsupported/unidentified lab $LAB_NAME. Cannot continue!" + exit 1 +else + echo "Using configuration for $LAB_NAME" +fi + # set CONFDIR, BRIDGE -CONFDIR=$WORKSPACE/deploy/templates/virtual_environment_noha/conf +CONFDIR=$WORKSPACE/deploy/templates/$LAB_NAME/virtual_environment/noha/conf BRIDGE=pxebr # log info to console -echo "Starting the deployment for a merged change using $INSTALLER. This could take some time..." +echo "Starting the deployment for a merged change using $INSTALLER_TYPE. This could take some time..." echo "--------------------------------------------------------" echo diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh index b617bcf01..334307448 100755 --- a/jjb/fuel/fuel-deploy.sh +++ b/jjb/fuel/fuel-deploy.sh @@ -9,41 +9,32 @@ source latest.properties # echo the info about artifact that is used during the deployment echo "Using $(echo $OPNFV_ARTIFACT_URL | cut -d'/' -f3) for deployment" +# checkout the commit that was used for building the downloaded artifact +# to make sure the ISO and deployment mechanism uses same versions +echo "Checking out $OPNFV_GIT_SHA1" +git checkout $OPNFV_GIT_SHA1 --quiet + # create TMPDIR if it doesn't exist export TMPDIR=$HOME/tmpdir -[[ -d $TMPDIR ]] || mkdir -p $TMPDIR +mkdir -p $TMPDIR # change permissions down to TMPDIR chmod a+x $HOME chmod a+x $TMPDIR -# set CONFDIR, BRIDGE -CONFDIR=$WORKSPACE/deploy/templates/hardware_environment/conf/linux_foundation_lab/pod2 +# set BRIDGE BRIDGE=pxebr -# clone genesis repo and checkout the SR1 tag -echo "Cloning genesis repo" -cd $WORKSPACE -GIT_SSL_NO_VERIFY=true git clone https://gerrit.opnfv.org/gerrit/genesis genesis -cd genesis -git checkout arno.2015.2.0 - -# cleanup first -sudo $WORKSPACE/genesis/common/ci/clean.sh -base_config $WORKSPACE/genesis/foreman/ci/inventory/lf_pod2_ksgen_settings.yml - -# prepare for Fuel Deployment -sudo $WORKSPACE/genesis/common/ci/setup.sh - # log info to console -echo "Starting the deployment using $INSTALLER. This could take some time..." +echo "Starting the deployment using $INSTALLER_TYPE. This could take some time..." echo "--------------------------------------------------------" echo # start the deployment echo "Issuing command" -echo "sudo $WORKSPACE/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh" +echo "sudo $WORKSPACE/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $POD_CONF_DIR/dea.yaml -dha $POD_CONF_DIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh" -sudo $WORKSPACE/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh +sudo $WORKSPACE/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $POD_CONF_DIR/dea.yaml -dha $POD_CONF_DIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh echo echo "--------------------------------------------------------" diff --git a/jjb/fuel/fuel-download-artifact.sh b/jjb/fuel/fuel-download-artifact.sh index 05dc05e05..917bc97a0 100755 --- a/jjb/fuel/fuel-download-artifact.sh +++ b/jjb/fuel/fuel-download-artifact.sh @@ -4,10 +4,12 @@ set -o nounset set -o pipefail if [[ "$JOB_NAME" =~ "merge" ]]; then + echo "Downloading http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties" # get the properties file for the Fuel ISO built for a merged change curl -s -o $WORKSPACE/latest.properties http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties else # get the latest.properties file in order to get info regarding latest artifact + echo "Downloading http://$GS_URL/latest.properties" curl -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties fi @@ -18,7 +20,7 @@ fi source latest.properties # log info to console -echo "Downloading the $INSTALLER artifact using URL http://$OPNFV_ARTIFACT_URL" +echo "Downloading the $INSTALLER_TYPE artifact using URL http://$OPNFV_ARTIFACT_URL" echo "This could take some time..." echo "--------------------------------------------------------" echo diff --git a/jjb/fuel/fuel-lab-reconfig.sh b/jjb/fuel/fuel-lab-reconfig.sh index a79bc2c51..55bb5dd9d 100755 --- a/jjb/fuel/fuel-lab-reconfig.sh +++ b/jjb/fuel/fuel-lab-reconfig.sh @@ -19,7 +19,7 @@ if ! GIT_SSL_NO_VERIFY=true git clone https://gerrit.opnfv.org/gerrit/releng; th fi # log info to console -echo "Starting the lab reconfiguration for $INSTALLER..." +echo "Starting the lab reconfiguration for $INSTALLER_TYPE..." echo "--------------------------------------------------------" echo diff --git a/jjb/fuel/fuel.yml b/jjb/fuel/fuel-project-jobs.yml index f8eabb0b6..848fd0b21 100644 --- a/jjb/fuel/fuel.yml +++ b/jjb/fuel/fuel-project-jobs.yml @@ -2,36 +2,77 @@ # Job configuration for fuel ######################## - project: - - name: fuel + name: fuel-project-jobs project: 'fuel' installer: 'fuel' + stream: + - master: + branch: '{stream}' + gs-pathname: '' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + jobs: + - 'fuel-build-daily-{stream}' - 'fuel-verify-build-{stream}' - 'fuel-merge-build-{stream}' - 'fuel-merge-deploy-virtual-{stream}' - - 'fuel-daily-{stream}' - - 'fuel-build-{stream}' - - 'fuel-deploy-{stream}' - - 'fuel-lab-reconfig-{stream}' - - stream: - - master: - branch: 'master' - gs-pathname: '' ######################## # job templates ######################## +- job-template: + name: 'fuel-build-daily-{stream}' + + concurrent: false + + properties: + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + + parameters: + - project-parameter: + project: '{project}' + - 'ericsson-ca-build-1-defaults' + - '{installer}-defaults' + - fuel-project-parameter: + gs-pathname: '{gs-pathname}' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + triggers: + - pollscm: '0 H/4 * * *' + + wrappers: + - timeout: + timeout: 360 + fail: true + + builders: + - shell: + !include-raw ./fuel-build.sh + - shell: + !include-raw ./fuel-upload-artifact.sh + - shell: + !include-raw ./fuel-workspace-cleanup.sh + + publishers: + - email: + recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com - job-template: name: 'fuel-verify-build-{stream}' - node: ericsson-build - concurrent: true properties: @@ -44,8 +85,9 @@ project: '{project}' - gerrit-parameter: branch: '{branch}' - - fuel-parameter: - installer: '{installer}' + - 'ericsson-ca-build-1-defaults' + - '{installer}-defaults' + - fuel-project-parameter: gs-pathname: '{gs-pathname}' scm: @@ -90,8 +132,6 @@ - job-template: name: 'fuel-merge-build-{stream}' - node: ericsson-build - concurrent: true properties: @@ -104,9 +144,10 @@ project: '{project}' - gerrit-parameter: branch: '{branch}' - - fuel-parameter: - installer: '{installer}' - gs-pathname: '' + - 'ericsson-ca-build-1-defaults' + - '{installer}-defaults' + - fuel-project-parameter: + gs-pathname: '{gs-pathname}' scm: - gerrit-trigger-scm: credentials-id: '{ssh-credentials}' @@ -144,8 +185,6 @@ - job-template: name: 'fuel-merge-deploy-virtual-{stream}' - node: fuel-deploy-virtual - concurrent: true properties: @@ -159,9 +198,10 @@ project: '{project}' - gerrit-parameter: branch: '{branch}' - - fuel-parameter: - installer: '{installer}' - gs-pathname: '' + - 'fuel-deploy-virtual-defaults' + - '{installer}-defaults' + - fuel-project-parameter: + gs-pathname: '{gs-pathname}' scm: - gerrit-trigger-scm: credentials-id: '{ssh-credentials}' @@ -170,7 +210,7 @@ wrappers: - ssh-agent-credentials: - user: '{ssh-credentials}' + users: '{ssh-credentials}' triggers: - gerrit: @@ -198,195 +238,21 @@ - email: recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com -- job-template: - name: 'fuel-daily-{stream}' - - node: ericsson-build - - disabled: false - - triggers: - - 'fuel-{strem}-trigger' - - parameters: - - project-parameter: - project: '{project}' - - fuel-parameter: - installer: '{installer}' - gs-pathname: '{gs-pathname}' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - builders: - - trigger-builds: - - project: 'fuel-build-{stream}' - git-revision: true - block: true - - trigger-builds: - - project: 'fuel-deploy-{stream}' - git-revision: true - block: true - - trigger-builds: - - project: 'functest-fuel-opnfv-jump-2-daily-{stream}' - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - trigger-builds: - - project: 'yardstick-fuel-opnfv-jump-2-daily-{stream}' - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - trigger-builds: - - project: 'bottlenecks-daily-fuel-lf-{stream}' - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - triggers: - - 'fuel-{stream}-daily-trigger' - -- job-template: - name: 'fuel-build-{stream}' - - node: ericsson-build - - parameters: - - project-parameter: - project: '{project}' - - fuel-parameter: - installer: '{installer}' - gs-pathname: '{gs-pathname}' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - wrappers: - - timeout: - timeout: 360 - fail: true - - builders: - - shell: - !include-raw ./fuel-build.sh - - shell: - !include-raw ./fuel-upload-artifact.sh - - shell: - !include-raw ./fuel-workspace-cleanup.sh - - publishers: - - email: - recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com - -- job-template: - name: 'fuel-deploy-{stream}' - - disabled: false - - node: opnfv-jump-2 - - parameters: - - project-parameter: - project: '{project}' - - fuel-parameter: - installer: '{installer}' - gs-pathname: '{gs-pathname}' - - string: - name: GIT_BASE - default: ssh://gerrit.opnfv.org:29418/$PROJECT - description: "POD2 has some issues with cloning using https so that's why GIT_BASE is overriden here again." - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - builders: - - shell: - !include-raw ./fuel-download-artifact.sh - - shell: - !include-raw ./fuel-deploy.sh - - publishers: - - email: - recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com - -- job-template: - name: 'fuel-lab-reconfig-{stream}' - - disabled: true - - parameters: - - project-parameter: - project: '{project}' - - fuel-parameter: - installer: '{installer}' - gs-pathname: '{gs-pathname}' - - string: - name: GIT_BASE - default: ssh://gerrit.opnfv.org:29418/$PROJECT - description: "Used for overriding the GIT URL coming from parameters macro." - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - properties: - - build-blocker: - use-build-blocker: true - blocking-jobs: - - "apex-daily.*" - - builders: - - shell: - !include-raw ./fuel-lab-reconfig.sh - ######################## # parameter macros ######################## - parameter: - name: fuel-parameter + name: fuel-project-parameter parameters: - string: - name: INSTALLER - default: '{installer}' - description: "Installer to use." - - string: name: BUILD_DIRECTORY default: $WORKSPACE/build_output description: "Directory where the build artifact will be located upon the completion of the build." - string: name: CACHE_DIRECTORY - default: $HOME/opnfv/cache/$INSTALLER + default: $HOME/opnfv/cache/$INSTALLER_TYPE description: "Directory where the cache to be used during the build is located." - 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." - - string: name: GS_URL default: artifacts.opnfv.org/$PROJECT{gs-pathname} description: "URL to Google Storage." - -######################## -# trigger macros -######################## -- trigger: - name: 'fuel-master-daily-trigger' - triggers: - - timed: '0 3 * * *' diff --git a/jjb/fuel/fuel-upload-artifact.sh b/jjb/fuel/fuel-upload-artifact.sh index b998e6a6a..fa695e6b0 100755 --- a/jjb/fuel/fuel-upload-artifact.sh +++ b/jjb/fuel/fuel-upload-artifact.sh @@ -3,8 +3,15 @@ set -o errexit set -o nounset set -o pipefail +# check if we built something +if [ -f $WORKSPACE/.noupload ]; then + echo "Nothing new to upload. Exiting." + /bin/rm -f $WORKSPACE/.noupload + exit 0 +fi + # log info to console -echo "Uploading the $INSTALLER artifact. This could take some time..." +echo "Uploading the $INSTALLER_TYPE artifact. This could take some time..." echo "--------------------------------------------------------" echo @@ -12,14 +19,26 @@ echo source $WORKSPACE/opnfv.properties # upload artifact and additional files to google storage -gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1 -gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1 +gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso \ + gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1 +gsutil cp $WORKSPACE/opnfv.properties \ + gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1 if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then - gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1 + gsutil cp $WORKSPACE/opnfv.properties \ + gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1 elif [[ "$JOB_NAME" =~ "merge" ]]; then echo "Uploaded Fuel ISO for a merged change" fi +gsutil -m setmeta \ + -h "Content-Type:text/html" \ + -h "Cache-Control:private, max-age=0, no-transform" \ + gs://$GS_URL/*.properties > /dev/null 2>&1 + +gsutil -m setmeta \ + -h "Cache-Control:private, max-age=0, no-transform" \ + gs://$GS_URL/*.iso > /dev/null 2>&1 + echo echo "--------------------------------------------------------" echo "Done!" diff --git a/jjb/fuel/opnfv-fuel.yml b/jjb/fuel/opnfv-fuel.yml deleted file mode 100644 index 393f919d0..000000000 --- a/jjb/fuel/opnfv-fuel.yml +++ /dev/null @@ -1,124 +0,0 @@ -######################## -# Job configuration for fuel -######################## -- project: - - name: 'opnfv-fuel' - - installer: 'fuel' - - controller: - - 'odl' - - 'onos' - - 'opencontrail' - - pod: - - 'opnfv-jump-2' - - 'ericsson-pod1' - - loop: - - 'daily' - - # ignore these as these will not exist in real job - dummy-phase: - - build - - deploy - - functest - - yardstick - - stream: - - master: - branch: 'master' - gs-pathname: '' - - jobs: - - 'tmp_fuel-{controller}-{pod}-{loop}-{stream}' - - 'tmp_fuel-{dummy-phase}-{pod}-{loop}-{stream}' - -######################## -# job templates -######################## -- job-template: - name: 'tmp_fuel-{controller}-{pod}-{loop}-{stream}' - - project-type: multijob - - parameters: - - project-parameter: - project: '{installer}' - - 'ericsson-ca-build-1-defaults' - - '{installer}-defaults' - - string: - name: CONTROLLER - default: '{controller}' - - string: - name: FEATURE - default: 'none' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - builders: - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'tmp_fuel-build-{loop}-{stream}' - kill-phase-on: FAILURE - current-parameters: true - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'tmp_fuel-deploy-{pod}-{loop}-{stream}' - kill-phase-on: FAILURE - current-parameters: true - - multijob: - name: functest - projects: - - name: 'tmp_fuel-test-{pod}-{loop}-{stream}' - current-parameters: true - - multijob: - name: yardstick - projects: - - name: 'tmp_fuel-test-{pod}-{loop}-{stream}' - current-parameters: true - - -- job-template: - name: 'tmp_fuel-{dummy-phase}-{pod}-{loop}-{stream}' - - disabled: false - - concurrent: false - - wrappers: - - build-name: - name: '$BUILD_NUMBER: {installer} $CONTROLLER' - - parameters: - - project-parameter: - project: '{installer}' - - '{pod}-defaults' - - '{installer}-defaults' - - string: - name: CONTROLLER - default: 'none' - - string: - name: FEATURE - default: 'none' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - builders: - - shell: | - #!/bin/bash - echo "Hello World from OPNFV $INSTALLER_TYPE" - echo "Running $INSTALLER_TYPE with controller $CONTROLLER" diff --git a/jjb/functest/functest.yml b/jjb/functest/functest-ci-jobs.yml index 346b678ac..c9ab3c25a 100644 --- a/jjb/functest/functest.yml +++ b/jjb/functest/functest-ci-jobs.yml @@ -6,19 +6,54 @@ project: '{name}' +#-------------------------------- +# BRANCH ANCHORS +#-------------------------------- + master: &master + stream: master + branch: '{stream}' + gs-pathname: '' + brahmaputra: &brahmaputra + stream: brahmaputra + branch: 'stable/{stream}' + gs-pathname: '/{stream}' +#-------------------------------- +# POD, INSTALLER, AND BRANCH MAPPING +#-------------------------------- +# brahmaputra +#-------------------------------- pod: - - opnfv-jump-1: - installer: apex - opnfv-jump-2: installer: fuel - - orange-test1: - installer: fuel - - orange-pod2: + <<: *brahmaputra + - intel-pod5: installer: joid + <<: *brahmaputra +#-------------------------------- +# master +#-------------------------------- - huawei-us-deploy-bare-1: installer: compass - - intel-pod5: + <<: *master + - intel-pod6: + installer: joid + <<: *master + - intel-us-deploy-virtual-2: + installer: apex + <<: *master + - ericsson-pod1: + installer: fuel + <<: *master + - ericsson-pod2: + installer: fuel + <<: *master + - orange-test1: + installer: fuel + <<: *master + - orange-pod2: installer: joid + <<: *master +#-------------------------------- testsuite: - 'daily' @@ -26,15 +61,6 @@ jobs: - 'functest-{installer}-{pod}-{testsuite}-{stream}' - - 'functest-verify-{stream}' - - stream: - - master: - branch: 'master' - gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' ################################ # job template @@ -44,7 +70,7 @@ wrappers: - build-name: - name: '$BUILD_NUMBER: $FUNCTEST_SUITE_NAME' + name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' parameters: - project-parameter: @@ -52,7 +78,8 @@ - '{pod}-defaults' - '{installer}-defaults' - 'functest-{testsuite}-parameter' - - functest-parameter + - functest-parameter: + gs-pathname: '{gs-pathname}' scm: - git-scm: @@ -63,43 +90,6 @@ builders: - 'functest-{testsuite}-builder' -- job-template: - name: 'functest-verify-{stream}' - - parameters: - - project-parameter: - project: '{project}' - - gerrit-parameter: - branch: '{branch}' - scm: - - gerrit-trigger-scm: - credentials-id: '{ssh-credentials}' - refspec: '$GERRIT_REFSPEC' - choosing-strategy: 'gerrit' - - triggers: - - gerrit: - 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: 'functest' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - - builders: - - shell: | - echo "Nothing to verify!" - ######################## # parameter macros ######################## @@ -201,7 +191,7 @@ elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then # If production lab then creds may be retrieved dynamically # creds are on the jumphost, always in the same folder - labconfig="-v /home/ubuntu/joid/ci/cloud/admin-openrc:/home/opnfv/functest/conf/openstack.creds" + labconfig="-v /var/lib/jenkins/joid_config/admin-openrc:/home/opnfv/functest/conf/openstack.creds" # If dev lab, credentials may not be the default ones, just provide a path to put them into docker # replace the default one by the customized one provided by jenkins config if [ -n "${LAB_CONFIG}" ]; then @@ -212,7 +202,7 @@ envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}" dir_result="${HOME}/opnfv/functest/reports" - mkdir -f ${dir_result} + mkdir -p ${dir_result} rm -rf ${dir_result}/* $res_volume="-v ${dir_result}:/home/opnfv/functest/results" diff --git a/jjb/functest/functest-project-jobs.yml b/jjb/functest/functest-project-jobs.yml new file mode 100644 index 000000000..e2a5c1afd --- /dev/null +++ b/jjb/functest/functest-project-jobs.yml @@ -0,0 +1,62 @@ +################################################### +# All the jobs except verify have been removed! +# They will only be enabled on request by projects! +################################################### +- project: + name: functest-project-jobs + + project: 'functest' + + jobs: + - 'functest-verify-{stream}' + +# only master branch is enabled at the moment to keep no of jobs sane + stream: + - master: + branch: 'master' + gs-pathname: '' +# - brahmaputra: +# branch: 'stable/brahmaputra' +# gs-pathname: '/brahmaputra' + +- job-template: + name: 'functest-verify-{stream}' + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - 'opnfv-build-defaults' + + scm: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + triggers: + - gerrit: + 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}' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**|.gitignore' + + builders: + - shell: | + echo "Nothing to verify!" diff --git a/jjb/functest/res-build.sh b/jjb/functest/res-build.sh index 9d425773d..1f4699681 100644 --- a/jjb/functest/res-build.sh +++ b/jjb/functest/res-build.sh @@ -9,7 +9,7 @@ res_build_date=$(date -u +"%Y-%m-%d_%H-%M-%S") # Result directory in the jumphost # to be used only with CI -dir_result="${HOME}/opnfv/functest/reports" +dir_result="${HOME}/opnfv/functest/results" # Clean the results directory # remove json file for rally, export only html diff --git a/jjb/genesis/genesis-foreman.yml b/jjb/genesis/genesis-foreman.yml index 39b3a58e1..9c212ace1 100644 --- a/jjb/genesis/genesis-foreman.yml +++ b/jjb/genesis/genesis-foreman.yml @@ -37,6 +37,8 @@ - job-template: name: 'genesis-foreman-verify-build-{stream}' + disabled: true + node: ericsson-build concurrent: true @@ -108,6 +110,8 @@ node: ericsson-build + disabled: true + concurrent: true properties: @@ -171,7 +175,7 @@ node: ericsson-build - disabled: '{obj:disabled}' + disabled: true triggers: - 'foreman-{stream}' @@ -225,7 +229,7 @@ - job-template: name: 'genesis-foreman-deploy-runner-{stream}' - disabled: false + disabled: true parameters: - project-parameter: @@ -264,6 +268,8 @@ node: ericsson-build + disabled: true + parameters: - project-parameter: project: '{project}' @@ -284,7 +290,7 @@ - job-template: name: 'genesis-foreman-deploy-{stream}' - disabled: false + disabled: true node: opnfv-jump-2 @@ -311,7 +317,7 @@ - job-template: name: 'genesis-foreman-lab-reconfig-{stream}' - disabled: false + disabled: true parameters: - project-parameter: diff --git a/jjb/genesis/genesis-fuel-att.yml b/jjb/genesis/genesis-fuel-att.yml index 8e40a09aa..8c03ebb31 100644 --- a/jjb/genesis/genesis-fuel-att.yml +++ b/jjb/genesis/genesis-fuel-att.yml @@ -23,6 +23,8 @@ node: att-build + disabled: true + parameters: - string: name: BUILD_DIRECTORY diff --git a/jjb/genesis/genesis-fuel-dell.yml b/jjb/genesis/genesis-fuel-dell.yml index 01b7ea033..6bebb5d6f 100644 --- a/jjb/genesis/genesis-fuel-dell.yml +++ b/jjb/genesis/genesis-fuel-dell.yml @@ -23,6 +23,8 @@ node: dell-build + disabled: true + parameters: - string: name: BUILD_DIRECTORY diff --git a/jjb/genesis/genesis-fuel.yml b/jjb/genesis/genesis-fuel.yml index 8ab771020..ea628a626 100644 --- a/jjb/genesis/genesis-fuel.yml +++ b/jjb/genesis/genesis-fuel.yml @@ -40,6 +40,8 @@ node: ericsson-build + disabled: true + concurrent: true properties: @@ -114,6 +116,8 @@ node: ericsson-build + disabled: true + concurrent: true properties: @@ -182,7 +186,7 @@ node: ericsson-build - disabled: '{obj:disabled}' + disabled: true triggers: - 'genesis-fuel-{stream}-trigger' @@ -236,7 +240,7 @@ - job-template: name: 'genesis-fuel-deploy-runner-{stream}' - disabled: false + disabled: true parameters: - project-parameter: @@ -275,6 +279,8 @@ node: ericsson-build + disabled: true + parameters: - project-parameter: project: '{project}' @@ -300,7 +306,7 @@ - job-template: name: 'genesis-fuel-deploy-{stream}' - disabled: false + disabled: true node: opnfv-jump-2 @@ -332,7 +338,7 @@ - job-template: name: 'genesis-fuel-lab-reconfig-{stream}' - disabled: false + disabled: true parameters: - project-parameter: diff --git a/jjb/genesis/genesis-juju.yml b/jjb/genesis/genesis-juju.yml index efc09b3c3..3d102d282 100644 --- a/jjb/genesis/genesis-juju.yml +++ b/jjb/genesis/genesis-juju.yml @@ -25,6 +25,8 @@ - job-template: name: 'genesis-juju-verify' + disabled: true + node: ericsson-build parameters: @@ -75,6 +77,8 @@ - job-template: name: 'genesis-juju-merge' + disabled: true + # builder-merge job to run JJB update # # This job's purpose is to update all the JJB @@ -123,6 +127,8 @@ - job-template: name: 'genesis-juju-daily-{stream}' + disabled: true + node: ericsson-build parameters: diff --git a/jjb/ipv6/ipv6.yml b/jjb/ipv6/ipv6.yml index 7768f2de1..67bc7885e 100644 --- a/jjb/ipv6/ipv6.yml +++ b/jjb/ipv6/ipv6.yml @@ -10,14 +10,13 @@ jobs: - 'ipv6-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'ipv6-verify-{stream}' diff --git a/jjb/joid/joid-ci-jobs.yml b/jjb/joid/joid-ci-jobs.yml new file mode 100644 index 000000000..80e21f50e --- /dev/null +++ b/jjb/joid/joid-ci-jobs.yml @@ -0,0 +1,276 @@ +######################## +# Job configuration for joid +######################## +- project: + + name: 'joid' + + project: '{name}' + + installer: '{name}' + +#-------------------------------- +# BRANCH ANCHORS +#-------------------------------- + master: &master + stream: master + branch: '{stream}' + gs-pathname: '' + brahmaputra: &brahmaputra + stream: brahmaputra + branch: 'stable/{stream}' + gs-pathname: '/{stream}' +#-------------------------------- +# POD, INSTALLER, AND BRANCH MAPPING +#-------------------------------- +# brahmaputra +#-------------------------------- + pod: + - intel-pod5: + <<: *brahmaputra +#-------------------------------- +# master +#-------------------------------- + - intel-pod6: + <<: *master + - orange-pod2: + <<: *master +#-------------------------------- +# please check the triggers before enabling any of the controllers!!! + sdn-controller: + - 'odl': + disabled: false +# commented out below controllers to get Arno scenario settled first +# - 'nosdn': +# disabled: true +# - 'onos': +# disabled: true +# - 'opencontrail': +# disabled: true + + jobs: + - 'joid-{sdn-controller}-{pod}-daily-{stream}' + - 'joid-deploy-{pod}-daily-{stream}' + +######################## +# job templates +######################## +- job-template: + name: 'joid-{sdn-controller}-{pod}-daily-{stream}' + + project-type: multijob + + disabled: '{obj:disabled}' + + concurrent: false + + wrappers: + - build-name: + name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + + triggers: + - 'joid-{pod}-{sdn-controller}-trigger' + + parameters: + - project-parameter: + project: '{project}' + - '{pod}-defaults' + - '{installer}-defaults' + - string: + name: SDN_CONTROLLER + default: '{sdn-controller}' + - string: + name: DEPLOY_SCENARIO + default: 'none' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + builders: + - '{installer}-multijob-{pod}-builder': + pod: '{pod}' + stream: '{stream}' + +- job-template: + name: 'joid-deploy-{pod}-daily-{stream}' + + disabled: false + + concurrent: false + + wrappers: + - build-name: + name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: 180 + fail: true + + parameters: + - project-parameter: + project: '{project}' + - '{pod}-defaults' + - '{installer}-defaults' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + builders: + - '{pod}-builder' + +######################## +# multijob builder macros +######################## +# intel-pod5 is CI POD so full CI will run on it +# deploy, functest, yardstick +- builder: + name: joid-multijob-intel-pod5-builder + builders: + - multijob: + name: deploy + condition: SUCCESSFUL + projects: + - name: 'joid-deploy-{pod}-daily-{stream}' + current-parameters: true + git-revision: true + kill-phase-on: FAILURE + - multijob: + name: functest + condition: COMPLETED + projects: + - name: 'functest-joid-{pod}-daily-{stream}' + current-parameters: true + kill-phase-on: NEVER + - multijob: + name: yardstick + condition: COMPLETED + projects: + - name: 'yardstick-joid-{pod}-daily-{stream}' + current-parameters: true + kill-phase-on: NEVER +# intel-pod6 is CI POD so full CI will run on it +# deploy, functest, yardstick +- builder: + name: joid-multijob-intel-pod6-builder + builders: + - multijob: + name: deploy + condition: SUCCESSFUL + projects: + - name: 'joid-deploy-{pod}-daily-{stream}' + current-parameters: true + git-revision: true + kill-phase-on: FAILURE + - multijob: + name: functest + condition: COMPLETED + projects: + - name: 'functest-joid-{pod}-daily-{stream}' + current-parameters: true + kill-phase-on: NEVER + - multijob: + name: yardstick + condition: COMPLETED + projects: + - name: 'yardstick-joid-{pod}-daily-{stream}' + current-parameters: true + kill-phase-on: NEVER +# yardstick placeholder +# - multijob: +# name: yardstick +# condition: COMPLETED +# projects: +# - name: 'yardstick-joid-{pod}-daily-{stream}' +# current-parameters: true +# kill-phase-on: NEVER + +# orange-pod2 is NOT a CI POD so only the selected jobs will run +# deploy and functest currently +- builder: + name: joid-multijob-orange-pod2-builder + builders: + - multijob: + name: deploy + condition: SUCCESSFUL + projects: + - name: 'joid-deploy-{pod}-daily-{stream}' + current-parameters: true + git-revision: true + kill-phase-on: FAILURE + - multijob: + name: functest + condition: COMPLETED + projects: + - name: 'functest-joid-{pod}-daily-{stream}' + current-parameters: true + kill-phase-on: NEVER +######################## +# builder macros +######################## +- builder: + name: intel-pod5-builder + builders: + - shell: | + #!/bin/bash + echo "Running $INSTALLER_TYPE with controller $SDN_CONTROLLER" + echo + echo "Executing clean.sh" + cd $WORKSPACE/ci + ./clean.sh + echo + echo "Executing 02-maasdeploy.sh intelpod5" + ./02-maasdeploy.sh intelpod5 + echo + echo "Executing deploy.sh -o liberty -s $SDN_CONTROLLER -t ha -l intelpod5" + ./deploy.sh -o liberty -s $SDN_CONTROLLER -t ha -l intelpod5 + +- builder: + name: intel-pod6-builder + builders: + - shell: | + #!/bin/bash + echo "Running $INSTALLER_TYPE with controller $SDN_CONTROLLER" + echo + echo "Executing clean.sh" + cd $WORKSPACE/ci + ./clean.sh + echo + echo "Executing 02-maasdeploy.sh intelpod6" + ./02-maasdeploy.sh intelpod6 + echo + echo "Executing deploy.sh -o liberty -s $SDN_CONTROLLER -t ha -l intelpod6" + ./deploy.sh -o liberty -s $SDN_CONTROLLER -t ha -l intelpod6 + +- builder: + name: orange-pod2-builder + builders: + - shell: | + #!/bin/bash + echo "Running $INSTALLER_TYPE with controller $SDN_CONTROLLER" + echo "Please note that this is WIP generic builder" + echo + echo "Executing clean.sh" + cd $WORKSPACE/ci + ./clean.sh + - shell: + !include-raw ./joid-deploy.sh +######################## +# trigger macros +######################## +- trigger: + name: 'joid-intel-pod5-odl-trigger' + triggers: + - timed: '0 2 * * *' +- trigger: + name: 'joid-intel-pod6-odl-trigger' + triggers: + - timed: '0 2 * * *' +- trigger: + name: 'joid-orange-pod2-odl-trigger' + triggers: + - timed: '' diff --git a/jjb/joid/joid-deploy.sh b/jjb/joid/joid-deploy.sh index d9ce86eb4..c7e5ba8fd 100644 --- a/jjb/joid/joid-deploy.sh +++ b/jjb/joid/joid-deploy.sh @@ -2,12 +2,8 @@ set +e set -o nounset -####### Temporary - to be done with jenkins params ##### -JOID_MODE=ha -JOID_RELEASE=liberty -JOID_LOCAL_CONFIG_FOLDER=~/joid_config -JOID_SDN_CONTROLLER=odl -################# +JOID_LOCAL_CONFIG_FOLDER=$HOME/joid_config +JOID_ADMIN_OPENRC=$JOID_LOCAL_CONFIG_FOLDER/admin-openrc ## ## Load local config or defaults @@ -18,6 +14,7 @@ if [ -e "$JOID_LOCAL_CONFIG_FOLDER/config.sh" ]; then source $JOID_LOCAL_CONFIG_FOLDER/config.sh else echo "------ No local config, load default ------" + # link NODE_NAME to joid node config names case $NODE_NAME in orange-fr-pod2) POD=orange-pod2 ;; @@ -33,7 +30,6 @@ else export OS_ADMIN_PASSWORD=openstack export CEPH_DISKS=/srv export CEPH_REFORMAT=no - export JOID_ADMIN_OPENRC=$WORKSPACE/admin_openrc.sh fi ## @@ -47,8 +43,8 @@ if [ -e "$JOID_LOCAL_CONFIG_FOLDER/environments.yaml" ] && [ "$MAAS_REINSTALL" = else MAASCONFIG=$WORKSPACE/ci/maas/$POD_DC/$POD_NUM/deployment.yaml echo "------ Set MAAS password ------" - sed -i -- 's/user: ubuntu/user: $MAAS_USER/' $MAASCONFIG - sed -i -- 's/password: ubuntu/password: $MAAS_PASSWORD/' $MAASCONFIG + sed -i -- "s/user: ubuntu/user: $MAAS_USER/" $MAASCONFIG + sed -i -- "s/password: ubuntu/password: $MAAS_PASSWORD/" $MAASCONFIG echo "------ Redeploy MAAS ------" ./02-maasdeploy.sh $POD_NAME fi @@ -58,10 +54,10 @@ fi ## # Get juju deployer file -if [ "$JOID_MODE" == 'nonha' ]; then - SRCBUNDLE=$WORKSPACE/ci/$JOID_SDN_CONTROLLER/juju-deployer/ovs-$JOID_SDN_CONTROLLER.yaml +if [ "$HA_MODE" == 'nonha' ]; then + SRCBUNDLE=$WORKSPACE/ci/$SDN_CONTROLLER/juju-deployer/ovs-$SDN_CONTROLLER.yaml else - SRCBUNDLE=$WORKSPACE/ci/$JOID_SDN_CONTROLLER/juju-deployer/ovs-$JOID_SDN_CONTROLLER-$JOID_MODE.yaml + SRCBUNDLE=$WORKSPACE/ci/$SDN_CONTROLLER/juju-deployer/ovs-$SDN_CONTROLLER-$HA_MODE.yaml fi # Modify files @@ -78,17 +74,24 @@ sed -i -r -- "s/^(\s+osd-reformat: )'no'/\1'$CEPH_REFORMAT'/" $SRCBUNDLE ## echo "------ Deploy with juju ------" -echo "Execute: ./deploy.sh -t $JOID_MODE -o $JOID_RELEASE -s $JOID_SDN_CONTROLLER -l $POD_NAME" +echo "Execute: ./deploy.sh -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME" -./deploy.sh -t $JOID_MODE -o $JOID_RELEASE -s $JOID_SDN_CONTROLLER -l $POD_NAME +./deploy.sh -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME ## ## Set Admin RC ## -echo "------ Create OpenRC file ------" -KEYSTONE=$(cat bundle.yaml |shyaml get-value openstack-phase2.services.keystone.options.vip) +echo "------ Create OpenRC file [$JOID_ADMIN_OPENRC] ------" +KEYSTONE=$(cat bundles.yaml |shyaml get-value openstack-phase2.services.keystone.options.vip) +# create the folder if needed +JOID_ADMIN_OPENRC_FOLDER=$(echo $JOID_ADMIN_OPENRC | perl -pe "s|^(.*/).*?$|\1|") +if [ ! -d "$JOID_ADMIN_OPENRC_FOLDER" ]; then + mkdir -p $JOID_ADMIN_OPENRC_FOLDER +fi + +# export the openrc file cat << EOF > $JOID_ADMIN_OPENRC export OS_USERNAME=admin export OS_PASSWORD=$OS_ADMIN_PASSWORD @@ -97,7 +100,37 @@ export OS_AUTH_URL=http://$KEYSTONE:5000/v2.0 export OS_REGION_NAME=Canonical EOF +## +## Backup local juju env +## + if [ -d "$JOID_LOCAL_CONFIG_FOLDER" ]; then echo "------ Backup Juju environment ------" cp environments.yaml $JOID_LOCAL_CONFIG_FOLDER/ fi + +## +## Basic test to return a realistic result to jenkins +## +source $JOID_ADMIN_OPENRC +curl -i -sw '%{http_code}' -H "Content-Type: application/json" -d " +{ \"auth\": { + \"identity\": { + \"methods\": [\"password\"], + \"password\": { + \"user\": { + \"name\": \"$OS_TENANT_NAME\", + \"domain\": { \"id\": \"default\" }, + \"password\": \"$OS_PASSWORD\" + } + } + } + } +}" http://$KEYSTONE:5000/v3/auth/tokens |grep "HTTP/1.1 20" 2>&1 >/dev/null; echo $?; +RES=$? +if [ $RES == 0 ]; then + echo "Deploy SUCCESS" +else + echo "Deploy FAILED" +fi +exit $RES diff --git a/jjb/joid/joid-project-jobs.yml b/jjb/joid/joid-project-jobs.yml new file mode 100644 index 000000000..b314da1fa --- /dev/null +++ b/jjb/joid/joid-project-jobs.yml @@ -0,0 +1,61 @@ +################################################### +# All the jobs except verify have been removed! +# They will only be enabled on request by projects! +################################################### +- project: + name: joid-project-jobs + + project: 'joid' + + jobs: + - 'joid-verify-{stream}' + + stream: + - master: + branch: '{stream}' + gs-pathname: '' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + +- job-template: + name: 'joid-verify-{stream}' + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - 'opnfv-build-defaults' + + scm: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + triggers: + - gerrit: + 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}' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**|.gitignore' + + builders: + - shell: | + echo "Nothing to verify!" diff --git a/jjb/joid/joid.yml b/jjb/joid/joid.yml deleted file mode 100644 index 28b019fcd..000000000 --- a/jjb/joid/joid.yml +++ /dev/null @@ -1,117 +0,0 @@ -######################## -# Job configuration for joid -######################## -- project: - - name: 'joid' - - installer: 'joid' - - controller: 'odl' - - pod: - - 'intel-pod5' - - 'orange-pod2' - - stream: - - master: - branch: 'master' - gs-pathname: '' - - jobs: - - 'joid-{controller}-{pod}-daily-{stream}' - - 'joid-deploy-{pod}-daily-{stream}' - -######################## -# job templates -######################## -- job-template: - name: 'joid-{controller}-{pod}-daily-{stream}' - - disabled: false - - concurrent: false - - parameters: - - project-parameter: - project: '{installer}' - - 'intel-us-build-1-defaults' - - '{installer}-defaults': - controller: '{controller}' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - builders: - - trigger-builds: - - project: 'joid-deploy-{pod}-daily-{stream}' - git-revision: true - block: true - predefined-parameters: - CONTROLLER={controller} - -- job-template: - name: 'joid-deploy-{pod}-daily-{stream}' - - disabled: false - - concurrent: false - - wrappers: - - build-name: - name: '$BUILD_NUMBER: {installer} $CONTROLLER' - - parameters: - - project-parameter: - project: '{installer}' - - '{pod}-defaults' - - '{installer}-defaults': - controller: '{controller}' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - builders: - - '{pod}-builder' - -######################## -# builder macros -######################## -- builder: - name: intel-pod5-builder - builders: - - shell: | - #!/bin/bash - echo "Running $INSTALLER_TYPE with controller $CONTROLLER" - echo "Please note that this is a quick try to see how joid deployment works" - echo - echo "Executing clean.sh" - cd $WORKSPACE/ci - ./clean.sh - - shell: | - cd $WORKSPACE/ci - echo "Executing 02-maasdeploy.sh intelpod5" - ./02-maasdeploy.sh intelpod5 - - shell: | - cd $WORKSPACE/ci - echo "Executing deploy.sh -o liberty -s $CONTROLLER -t ha -l intelpod5" - ./deploy.sh -o liberty -s $CONTROLLER -t ha -l intelpod5 -- builder: - name: orange-pod2-builder - builders: - - shell: | - #!/bin/bash - echo "Running $INSTALLER_TYPE with controller $CONTROLLER" - echo "Please note that this is WIP generic builder" - echo - echo "Executing clean.sh" - cd $WORKSPACE/ci - ./clean.sh - - shell: - !include-raw ./joid-deploy.sh diff --git a/jjb/kvmfornfv/kvmfornfv.yml b/jjb/kvmfornfv/kvmfornfv.yml index 562003350..368dab54e 100644 --- a/jjb/kvmfornfv/kvmfornfv.yml +++ b/jjb/kvmfornfv/kvmfornfv.yml @@ -1,16 +1,19 @@ - project: name: kvmfornfv + + project: '{name}' + jobs: - 'kvmfornfv-verify-{stream}' - 'kvmfornfv-merge-{stream}' - # stream: branch with - in place of / (eg. stable-arno) - # branch: branch (eg. stable/arno) stream: - master: - branch: 'master' - - project: 'kvmfornfv' + branch: '{stream}' + gs-pathname: '' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'kvmfornfv-verify-{stream}' @@ -21,7 +24,7 @@ - project-parameter: project: '{project}' - gerrit-parameter: - branch: 'master' + branch: '{branch}' - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT @@ -47,10 +50,10 @@ comment-contains-value: 'reverify' projects: - project-compare-type: 'ANT' - project-pattern: 'kvmfornfv' + project-pattern: '{project}' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' builders: - shell: @@ -59,17 +62,13 @@ - job-template: name: 'kvmfornfv-merge-{stream}' - # builder-merge job to run JJB update - # - # This job's purpose is to update all the JJB - node: ericsson-build parameters: - project-parameter: project: '{project}' - gerrit-parameter: - branch: 'master' + branch: '{branch}' - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT @@ -89,10 +88,10 @@ comment-contains-value: 'remerge' projects: - project-compare-type: 'ANT' - project-pattern: 'kvmfornfv' + project-pattern: '{project}' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' builders: - shell: diff --git a/jjb/octopus/octopus.yml b/jjb/octopus/octopus.yml index 3aa422b38..cceda50aa 100644 --- a/jjb/octopus/octopus.yml +++ b/jjb/octopus/octopus.yml @@ -9,14 +9,13 @@ jobs: - 'octopus-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'octopus-verify-{stream}' diff --git a/jjb/onosfw/onosfw.yml b/jjb/onosfw/onosfw.yml new file mode 100644 index 000000000..7dc0241f9 --- /dev/null +++ b/jjb/onosfw/onosfw.yml @@ -0,0 +1,187 @@ +- project: + + name: onosfw + + jobs: + - 'onosfw-verify-{stream}' + - 'onosfw-daily-{stream}' + - 'onosfw-build-{stream}' + +# only master branch is enabled at the moment to keep no of jobs sane + stream: + - master: + branch: 'master' + gs-pathname: '' +# - brahmaputra: +# branch: 'stable/brahmaputra' +# gs-pathname: '/brahmaputra' + + project: 'onosfw' + +######################## +# job templates +######################## +- job-template: + name: 'onosfw-verify-{stream}' + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - 'opnfv-build-defaults' + + scm: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + triggers: + - gerrit: + 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}' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**|.gitignore' + + builders: + - 'builder-onosfw-helloworld' + +- job-template: + name: 'onosfw-daily-{stream}' + + parameters: + - project-parameter: + project: '{project}' + - 'opnfv-build-defaults' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + triggers: + - timed: '@midnight' + + builders: + - trigger-builds: + - project: 'onosfw-build-{stream}' + git-revision: true + block: true + +- job-template: + name: 'onosfw-build-{stream}' + + parameters: + - project-parameter: + project: '{project}' + - 'opnfv-build-defaults' + - 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: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + builders: + - 'builder-onosfw-helloworld' + +######################## +# builder macros +######################## +- builder: + name: 'builder-onosfw-build' + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + + # log info to console + echo "Starting the build of $PROJECT. This could take some time..." + echo "--------------------------------------------------------" + echo + + # create the cache directory if it doesn't exist + [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY + [[ -d $BUILD_DIRECTORY ]] || mkdir -p $BUILD_DIRECTORY + + # set OPNFV_ARTIFACT_VERSION + export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S") + + # start the build + cd $WORKSPACE/ + ./ci/build.sh $BUILD_DIRECTORY/ + + # list the build artifacts + ls -al $BUILD_DIRECTORY + + # save information regarding artifact into file + ( + echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION" + echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)" + echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)" + echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso" + echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/onosfw.iso | cut -d' ' -f1)" + echo "OPNFV_BUILD_URL=$BUILD_URL" + ) > $BUILD_DIRECTORY/opnfv.properties + echo + echo "--------------------------------------------------------" + echo "Done!" + + +- builder: + name: 'builder-onosfw-upload-artifact' + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + + # log info to console + echo "Uploading the $INSTALLER artifact. This could take some time..." + echo "--------------------------------------------------------" + echo + + # source the opnfv.properties to get ARTIFACT_VERSION + source $BUILD_DIRECTORY/opnfv.properties + + # upload artifact and additional files to google storage + gsutil cp $BUILD_DIRECTORY/onosfw.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1 + gsutil cp $BUILD_DIRECTORY/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1 + gsutil cp $BUILD_DIRECTORY/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1 + + echo + echo "--------------------------------------------------------" + echo "Done!" + echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso" + + +- builder: + name: 'builder-onosfw-helloworld' + builders: + - shell: | + #!/bin/bash + echo "Hello world!" diff --git a/jjb/opnfv/installer-params.yml b/jjb/opnfv/installer-params.yml index 64945c656..3e5c0ffac 100644 --- a/jjb/opnfv/installer-params.yml +++ b/jjb/opnfv/installer-params.yml @@ -9,6 +9,18 @@ name: INSTALLER_TYPE default: apex description: 'Installer used for deploying OPNFV on this POD' + - string: + name: SDN_CONTROLLER + default: 'nosdn' + description: 'SDN Controller to use' + - string: + name: DEPLOY_SCENARIO + default: 'none' + description: 'Scenario to deploy and test' + - string: + name: EXTERNAL_NETWORK + default: 'net04_ext' + description: 'external network for test' - parameter: name: 'compass-defaults' @@ -21,6 +33,18 @@ name: INSTALLER_TYPE default: compass description: 'Installer used for deploying OPNFV on this POD' + - string: + name: SDN_CONTROLLER + default: 'nosdn' + description: 'SDN Controller to use' + - string: + name: DEPLOY_SCENARIO + default: 'none' + description: 'Scenario to deploy and test' + - string: + name: EXTERNAL_NETWORK + default: 'ext-net' + description: 'external network for test' - parameter: name: 'fuel-defaults' @@ -33,6 +57,18 @@ name: INSTALLER_TYPE default: fuel description: 'Installer used for deploying OPNFV on this POD' + - string: + name: SDN_CONTROLLER + default: 'nosdn' + description: 'SDN Controller to use' + - string: + name: DEPLOY_SCENARIO + default: 'none' + description: 'Scenario to deploy and test' + - string: + name: EXTERNAL_NETWORK + default: 'net04_ext' + description: 'external network for test' - parameter: name: 'joid-defaults' @@ -45,3 +81,23 @@ name: INSTALLER_TYPE default: joid description: 'Installer used for deploying OPNFV on this POD' + - string: + name: SDN_CONTROLLER + default: 'nosdn' + description: 'SDN Controller to use' + - string: + name: DEPLOY_SCENARIO + default: 'none' + description: 'Scenario to deploy and test' + - string: + name: HA_MODE + default: 'ha' + description: 'High Availability mode (ha|nonha)' + - string: + name: OS_RELEASE + default: 'liberty' + description: 'OpenStack release (kilo|liberty)' + - string: + name: EXTERNAL_NETWORK + default: 'net04_ext' + description: 'external network for test' diff --git a/jjb/opnfv/opnfv-docker.sh b/jjb/opnfv/opnfv-docker.sh index 6f0a0c35c..545aef6dd 100644 --- a/jjb/opnfv/opnfv-docker.sh +++ b/jjb/opnfv/opnfv-docker.sh @@ -12,8 +12,18 @@ echo # Remove previous running containers if exist if [[ ! -z $(docker ps -a | grep $DOCKER_REPO_NAME) ]]; then echo "Removing existing $DOCKER_REPO_NAME containers..." - docker ps | grep $DOCKER_REPO_NAME | awk '{{print $1}}' | xargs docker stop - docker ps -a | grep $DOCKER_REPO_NAME | awk '{{print $1}}' | xargs docker rm + #docker ps | grep $DOCKER_REPO_NAME | awk '{{print $1}}' | xargs docker stop + docker ps -a | grep $DOCKER_REPO_NAME | awk '{{print $1}}' | xargs docker rm -f + t=60 + # Wait max 60 sec for containers to be removed + while [ $t -gt 0 ]; do + ids=$(docker ps | grep $DOCKER_REPO_NAME |awk '{{print $1}}') + if [[ -z $ids ]]; then + break + fi + sleep 1 + let t=t-1 + done fi @@ -24,7 +34,7 @@ if [[ ! -z $(docker images | grep $DOCKER_REPO_NAME) ]]; then image_tags=($(docker images | grep $DOCKER_REPO_NAME | awk '{{print $2}}')) for tag in "${{image_tags[@]}}"; do echo "Removing docker image $DOCKER_REPO_NAME:$tag..." - docker rmi $DOCKER_REPO_NAME:$tag + docker rmi -f $DOCKER_REPO_NAME:$tag done fi @@ -36,7 +46,7 @@ if [[ "$UPDATE_LATEST_STABLE" == "true" ]]; then echo "ERROR: The image $DOCKER_REPO_NAME with tag $STABLE_TAG does not exist." exit 1 fi - docker tag $DOCKER_REPO_NAME:$STABLE_TAG $DOCKER_REPO_NAME:latest_stable + docker tag -f $DOCKER_REPO_NAME:$STABLE_TAG $DOCKER_REPO_NAME:latest_stable echo "Pushing $DOCKER_REPO_NAME:latest_stable ..." docker push $DOCKER_REPO_NAME:latest_stable exit 0 @@ -66,6 +76,8 @@ elif [[ "$DOCKER_REPO_NAME" == "opnfv/yardstick" ]]; then cd $WORKSPACE/ci/docker/yardstick-ci elif [[ "$DOCKER_REPO_NAME" == "opnfv/storperf" ]]; then cd $WORKSPACE/docker +elif [[ "$DOCKER_REPO_NAME" == "opnfv/qtip" ]]; then + cd $WORKSPACE/docker else echo "ERROR: DOCKER_REPO_NAME parameter not valid: $DOCKER_REPO_NAME" exit 1 diff --git a/jjb/opnfv/opnfv-docker.yml b/jjb/opnfv/opnfv-docker.yml index 83ebab7af..fcbe60be2 100644 --- a/jjb/opnfv/opnfv-docker.yml +++ b/jjb/opnfv/opnfv-docker.yml @@ -10,6 +10,7 @@ - 'functest' - 'yardstick' - 'storperf' + - 'qtip' jobs: - '{project}-docker-build-push-{stream}' diff --git a/jjb/opnfv/opnfv-docs.yml b/jjb/opnfv/opnfv-docs.yml index 3574b3988..31f5d00fd 100644 --- a/jjb/opnfv/opnfv-docs.yml +++ b/jjb/opnfv/opnfv-docs.yml @@ -11,11 +11,13 @@ - 'opnfv-docs-verify-{stream}' - 'opnfv-docs-merge-{stream}' - # stream: branch with - in place of / (eg. stable-arno) - # branch: branch (eg. stable/arno) stream: - master: - branch: 'master' + branch: '{stream}' + gs-pathname: '' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' ######################## # job templates @@ -28,7 +30,7 @@ - project-parameter: project: $GERRIT_PROJECT - gerrit-parameter: - branch: 'master' + branch: '{branch}' scm: - gerrit-trigger-scm: @@ -54,7 +56,7 @@ project-pattern: 'vswitchperf|yardstick|apex|availability|bottlenecks|compass4nfv|conductor|copper|doctor|dovetail|dpacc|escalator|fastpathmetrics|fuel|inspector|ipv6|joid|kvmfornfv|lsoapi|moon|movie|multisite|onosfw|ovsnfv|parser|prediction|promise|qtip|releng|rs|sdnvpn|sfc|vnf_forwarding_graph|enfv|pinpoint|pharos|opnfvdocs|cperf|functest' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' file-paths: - compare-type: ANT pattern: 'docs/**' @@ -69,7 +71,11 @@ - project-parameter: project: $GERRIT_PROJECT - gerrit-parameter: - branch: 'master' + 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." scm: - gerrit-trigger-scm: @@ -88,7 +94,7 @@ project-pattern: 'vswitchperf|yardstick|apex|availability|bottlenecks|compass4nfv|conductor|copper|doctor|dovetail|dpacc|escalator|fastpathmetrics|fuel|inspector|ipv6|joid|kvmfornfv|lsoapi|moon|movie|multisite|onosfw|ovsnfv|parser|prediction|promise|qtip|releng|rs|sdnvpn|sfc|vnf_forwarding_graph|enfv|pinpoint|pharos|opnfvdocs|cperf|functest' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' file-paths: - compare-type: ANT pattern: 'docs/**' diff --git a/jjb/opnfv/pod-params.yml b/jjb/opnfv/slave-params.yml index e36a0b684..002ab7e52 100644 --- a/jjb/opnfv/pod-params.yml +++ b/jjb/opnfv/slave-params.yml @@ -15,7 +15,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' - string: name: SSH_KEY default: /root/.ssh/id_rsa @@ -38,7 +38,11 @@ - string: name: GIT_BASE default: ssh://gerrit.opnfv.org:29418/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' + - string: + name: POD_CONF_DIR + default: $WORKSPACE/deploy/templates/hardware_environment/conf/linux_foundation_lab/pod2 + description: 'Directory where POD configuration files are located.' - parameter: name: 'ericsson-pod1-defaults' @@ -57,7 +61,11 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' + - string: + name: POD_CONF_DIR + default: $WORKSPACE/deploy/templates/hardware_environment/conf/ericsson_montreal_lab/pod1 + description: 'Directory where POD configuration files are located.' - parameter: name: 'ericsson-pod2-defaults' @@ -76,7 +84,11 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' + - string: + name: POD_CONF_DIR + default: $WORKSPACE/deploy/templates/hardware_environment/conf/ericsson_montreal_lab/pod2 + description: 'Directory where POD configuration files are located.' - parameter: name: 'intelpod2-jumphost-defaults' @@ -95,7 +107,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' - string: name: SSH_KEY default: /root/.ssh/id_rsa @@ -114,7 +126,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' - parameter: name: 'intel-pod5-defaults' @@ -133,7 +145,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' - parameter: name: 'intel-pod6-defaults' @@ -152,7 +164,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' - parameter: name: 'intel-pod8-defaults' @@ -171,7 +183,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' - parameter: name: 'huawei-us-deploy-bare-1-defaults' @@ -190,7 +202,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' - parameter: name: 'opnfv-build-defaults' @@ -207,7 +219,11 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the slave' + description: 'Git URL to use on this Jenkins Slave' + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." - parameter: name: 'intel-us-build-1-defaults' @@ -222,7 +238,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the slave' + description: 'Git URL to use on this Jenkins Slave' - parameter: name: 'intel-us-build-2-defaults' @@ -237,7 +253,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the slave' + description: 'Git URL to use on this Jenkins Slave' - parameter: name: 'ericsson-ca-build-1-defaults' @@ -252,7 +268,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the slave' + description: 'Git URL to use on this Jenkins Slave' - parameter: name: 'zte-build-1' @@ -267,7 +283,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the slave' + description: 'Git URL to use on this Jenkins Slave' - parameter: name: 'orange-pod2-defaults' @@ -286,7 +302,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' - string: name: LAB_CONFIG default: "/home/opnfv/repos/functest" @@ -310,26 +326,18 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' - parameter: - name: 'intel-us-deploy-virtual-1-defaults' + name: 'fuel-deploy-virtual-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-us-deploy-virtual-1 - default-slaves: - - intel-us-deploy-virtual-1 - - string: - name: INSTALLER_VERSION - default: latest - description: 'Version of the installer to deploy' + - label: + name: SLAVE_LABEL + default: 'fuel-deploy-virtual' - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on these Jenkins Slaves' - parameter: name: 'intel-us-deploy-virtual-2-defaults' @@ -348,7 +356,7 @@ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on the jumphost' + description: 'Git URL to use on this Jenkins Slave' - string: name: SSH_KEY default: /root/.ssh/id_rsa diff --git a/jjb/opnfvdocs/opnfvdocs.yml b/jjb/opnfvdocs/opnfvdocs.yml new file mode 100644 index 000000000..c4fa73468 --- /dev/null +++ b/jjb/opnfvdocs/opnfvdocs.yml @@ -0,0 +1,156 @@ +######################## +# Job configuration for opnfvdocs +######################## +- project: + + name: opnfvdocs + + project: '{name}' + + jobs: + - 'opnfvdocs-verify-{stream}' + - 'opnfvdocs-merge-{stream}' + - 'opnfvdocs-daily-{stream}' + + stream: + - master: + branch: '{stream}' + gs-pathname: '' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + +######################## +# job templates +######################## + +- job-template: + name: 'opnfvdocs-verify-{stream}' + + parameters: + - project-parameter: + project: $GERRIT_PROJECT + - gerrit-parameter: + 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: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + triggers: + - gerrit: + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'REG_EXP' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'docs/**' + + builders: + - build-opnfv-composite-docs + - upload-under-review-docs-to-opnfv-artifacts + - report-docs-build-result-to-gerrit + +- job-template: + name: 'opnfvdocs-merge-{stream}' + + parameters: + - project-parameter: + project: $GERRIT_PROJECT + - gerrit-parameter: + 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: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + triggers: + - gerrit: + 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}' + file-paths: + - compare-type: ANT + pattern: 'docs/**' + + builders: + - build-opnfv-composite-docs +# - upload-generated-docs-to-opnfv-artifacts + - report-docs-build-result-to-gerrit + - remove-old-docs-from-opnfv-artifacts + +- job-template: + name: 'opnfvdocs-daily-{stream}' + + parameters: + - project-parameter: + project: '{project}' + - 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." + - string: + name: GERRIT_BRANCH + default: '{branch}' + description: 'Specify the branch in this way in order to be able to use build-opnfv-composite-docs builder.' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + triggers: + - timed: '0 H/6 * * *' + + builders: + - build-opnfv-composite-docs +# - upload-generated-docs-to-opnfv-artifacts + +- builder: + name: build-opnfv-composite-docs + builders: + - shell: | + #!/bin/bash -e + export PATH=$PATH:/usr/local/bin/ + GERRIT_COMMENT=gerrit_comment.txt ./build-composite.sh diff --git a/jjb/opnfvdocs/project.cfg b/jjb/opnfvdocs/project.cfg new file mode 100644 index 000000000..ba977f92a --- /dev/null +++ b/jjb/opnfvdocs/project.cfg @@ -0,0 +1,37 @@ +apex +armband +availability +bottlenecks +compass4nfv +copper +conductor +doctor +dpacc +escalator +fastpathmetrics +fuel +functest +genesisreq +ipv6 +joid +kvmfornfv +lsoapi +moon +movie +multisite +octopus +onosfw +ovno +ovsnfv +parser +pharos +policytest +prediction +promise +qtip +sdnvpn +sfc +storperf +vnf_forwarding_graph +vswitchperf +yardstick diff --git a/jjb/ovsnfv/ovsnfv.yml b/jjb/ovsnfv/ovsnfv.yml index 00417eb0b..d0c180c5b 100644 --- a/jjb/ovsnfv/ovsnfv.yml +++ b/jjb/ovsnfv/ovsnfv.yml @@ -8,14 +8,13 @@ - 'ovsnfv-merge-{stream}' - 'ovsnfv-daily-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'ovsnfv-verify-{stream}' @@ -26,6 +25,10 @@ - gerrit-parameter: branch: '{branch}' - 'intel-us-build-2-defaults' + - 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: - gerrit-trigger-scm: @@ -71,6 +74,10 @@ - gerrit-parameter: branch: '{branch}' - 'intel-us-build-2-defaults' + - 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: - gerrit-trigger-scm: @@ -108,6 +115,10 @@ - project-parameter: project: '{project}' - 'intel-us-build-2-defaults' + - 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: diff --git a/jjb/parser/parser.yml b/jjb/parser/parser.yml index 9913c0315..5e603f026 100644 --- a/jjb/parser/parser.yml +++ b/jjb/parser/parser.yml @@ -10,14 +10,13 @@ jobs: - 'parser-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'parser-verify-{stream}' diff --git a/jjb/pharos/pharos.yml b/jjb/pharos/pharos.yml index 30172cdd8..3bef22578 100644 --- a/jjb/pharos/pharos.yml +++ b/jjb/pharos/pharos.yml @@ -10,14 +10,13 @@ jobs: - 'pharos-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'pharos-verify-{stream}' diff --git a/jjb/prediction/prediction.yml b/jjb/prediction/prediction.yml index 7a47bc11e..f8fdceb81 100644 --- a/jjb/prediction/prediction.yml +++ b/jjb/prediction/prediction.yml @@ -10,14 +10,13 @@ jobs: - 'prediction-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'prediction-verify-{stream}' diff --git a/jjb/promise/promise.yml b/jjb/promise/promise.yml index d057f3f2f..7999fb5ce 100644 --- a/jjb/promise/promise.yml +++ b/jjb/promise/promise.yml @@ -10,14 +10,13 @@ jobs: - 'promise-verify-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'promise-verify-{stream}' diff --git a/jjb/releng-defaults.yaml b/jjb/releng-defaults.yaml index fed1056bb..2b927d270 100644 --- a/jjb/releng-defaults.yaml +++ b/jjb/releng-defaults.yaml @@ -5,9 +5,9 @@ logrotate: daysToKeep: 30 - numToKeep: 40 + numToKeep: 100 artifactDaysToKeep: 30 - artifactNumToKeep: 40 + artifactNumToKeep: 100 ssh-credentials: 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e' wrappers: @@ -18,3 +18,4 @@ project-type: freestyle node: master + diff --git a/jjb/releng-macros.yaml b/jjb/releng-macros.yaml index f9cb95209..5a1568e23 100644 --- a/jjb/releng-macros.yaml +++ b/jjb/releng-macros.yaml @@ -7,6 +7,14 @@ name: PROJECT default: '{project}' description: "JJB configured PROJECT parameter to identify an opnfv Gerrit project" + - string: + name: GS_BASE + default: artifacts.opnfv.org/$PROJECT + description: "URL to Google Storage." + - string: + name: GS_BASE_PROXY + default: build.opnfv.org/artifacts/$PROJECT + description: "URL to Google Storage proxy" - parameter: name: gerrit-parameter @@ -165,7 +173,7 @@ export PATH=$PATH:/usr/local/bin/ [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] - [[ -d output ]] + [[ -d docs_output ]] || exit 0 echo echo "###########################" @@ -178,7 +186,7 @@ local_path="upload/$GERRIT_CHANGE_NUMBER" mkdir -p upload - mv output "$local_path" + mv docs_output "$local_path" gsutil -m cp -r "$local_path" "gs://$gs_base" if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then @@ -193,32 +201,27 @@ sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt - builder: - name: upload-merged-docs-to-opnfv-artifacts + name: upload-generated-docs-to-opnfv-artifacts builders: - shell: | #!/bin/bash -e set -o pipefail export PATH=$PATH:/usr/local/bin/ - [[ -d output ]] + [[ -d docs_output ]] || exit 0 echo - echo "#####################" - echo "UPLOADING MERGED DOCS" - echo "#####################" + echo "########################" + echo "UPLOADING GENERATED DOCS" + echo "########################" echo - if [[ "$GERRIT_BRANCH" == "master" ]] ; then - gs_base="artifacts.opnfv.org/$GERRIT_PROJECT" - else - gs_base="artifacts.opnfv.org/$GERRIT_PROJECT/$GERRIT_BRANCH" - fi - gs_path="$gs_base/docs" + gs_path="$GS_URL/docs" local_path="upload/docs" mkdir -p upload - mv output "$local_path" - gsutil -m cp -r "$local_path" "gs://$gs_base" + mv docs_output "$local_path" + gsutil -m cp -r "$local_path" "gs://$GS_URL" if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then gsutil -m setmeta \ @@ -277,6 +280,6 @@ name: upload-merged-docs builders: - build-html-and-pdf-docs-output - - upload-merged-docs-to-opnfv-artifacts + - upload-generated-docs-to-opnfv-artifacts - report-docs-build-result-to-gerrit - remove-old-docs-from-opnfv-artifacts diff --git a/jjb/storperf/storperf.yml b/jjb/storperf/storperf.yml index dd00474e4..fffca10cc 100644 --- a/jjb/storperf/storperf.yml +++ b/jjb/storperf/storperf.yml @@ -1,17 +1,20 @@ - project: name: storperf + + project: '{name}' + jobs: - 'storperf-verify-{stream}' - 'storperf-merge-{stream}' - 'storperf-daily-{stream}' - # stream: branch with - in place of / (eg. stable-arno) - # branch: branch (eg. stable/arno) stream: - master: - branch: 'master' - - project: 'storperf' + branch: '{stream}' + gs-pathname: '' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'storperf-verify-{stream}' @@ -22,7 +25,7 @@ - project-parameter: project: '{project}' - gerrit-parameter: - branch: 'master' + branch: '{branch}' - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT @@ -48,10 +51,10 @@ comment-contains-value: 'reverify' projects: - project-compare-type: 'ANT' - project-pattern: 'storperf' + project-pattern: '{project}' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' builders: - shell: | @@ -90,10 +93,10 @@ comment-contains-value: 'remerge' projects: - project-compare-type: 'ANT' - project-pattern: 'storperf' + project-pattern: '{project}' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' builders: - shell: | diff --git a/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml b/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml index de63c4eeb..0123fcdf9 100644 --- a/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml +++ b/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml @@ -1,71 +1,27 @@ - project: name: vnf_forwarding_graph + + project: '{name}' + jobs: - - 'vnf_forwarding_graph-test' - - 'vnf_forwarding_graph-daily-{stream}' - - 'vnf_forwarding_graph-merge' - - 'vnf_forwarding_graph-verify' + - 'vnf_forwarding_graph-verify-{stream}' - # stream: branch with - in place of / (eg. stable-helium) - # branch: branch (eg. stable/helium) stream: - master: - branch: 'master' - - project: 'vnf_forwarding_graph' - somevar: 'foo' - -- job-template: - name: vnf_forwarding_graph-test - - builders: - - shell: | - echo "Hello world from vnf_forwarding_graph" - -- job-template: - name: 'vnf_forwarding_graph-daily-{stream}' - - # Job template for daily builders - # - # Required Variables: - # stream: branch with - in place of / (eg. stable) - # branch: branch (eg. stable) - - varsetabove: '{somevar}' - - parameters: - - project-parameter: - project: '{project}' - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - triggers: - - timed: 'H H * * *' - - prebuilders: - - test-macro - - builders: - - shell: | - pwd - find . - echo "Hello world from vnf_forwarding_graph {somevar} daily" - - postbuilders: - - test-macro + branch: '{stream}' + gs-pathname: '' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: - name: 'vnf_forwarding_graph-verify' + name: 'vnf_forwarding_graph-verify-{stream}' parameters: - project-parameter: project: '{project}' - gerrit-parameter: - branch: 'master' + branch: '{branch}' scm: - gerrit-trigger-scm: credentials-id: '{ssh-credentials}' @@ -86,52 +42,11 @@ comment-contains-value: 'reverify' projects: - project-compare-type: 'ANT' - project-pattern: 'vnf_forwarding_graph' + project-pattern: '{project}' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' - - builders: - - shell: | - pwd - find . - echo "verify logic goes here" - -- job-template: - name: 'vnf_forwarding_graph-merge' - - # builder-merge job to run JJB update - # - # This job's purpose is to update all the JJB - - parameters: - - project-parameter: - project: '{project}' - - gerrit-parameter: - branch: 'master' - - scm: - - gerrit-trigger-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - choosing-strategy: 'default' - - triggers: - - gerrit: - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: 'vnf_forwarding_graph' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' builders: - shell: | - pwd - find . - echo "merge logic goes here" - + echo "Nothing to verify!" diff --git a/jjb/vswitchperf/vswitchperf.yml b/jjb/vswitchperf/vswitchperf.yml index a06507a14..4b1147d36 100644 --- a/jjb/vswitchperf/vswitchperf.yml +++ b/jjb/vswitchperf/vswitchperf.yml @@ -9,14 +9,13 @@ - 'vswitchperf-merge-{stream}' - 'vswitchperf-daily-{stream}' -# only master branch is enabled at the moment to keep no of jobs sane stream: - master: - branch: 'master' + branch: '{stream}' gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: @@ -34,7 +33,7 @@ branch: '{branch}' triggers: - - timed: 'H H * * *' + - pollscm: '@midnight' builders: - shell: | @@ -44,6 +43,8 @@ make # run basic sanity test make sanity + cd ../ci + scl enable python33 "source ~/vsperfenv/bin/activate ; ./build-vsperf.sh daily" - job-template: name: 'vswitchperf-verify-{stream}' diff --git a/jjb/yardstick/yardstick.yml b/jjb/yardstick/yardstick-ci-jobs.yml index e5c306a56..1cb6d1f08 100644 --- a/jjb/yardstick/yardstick.yml +++ b/jjb/yardstick/yardstick-ci-jobs.yml @@ -1,131 +1,68 @@ +################################### +# job configuration for functest +################################### - project: name: yardstick project: '{name}' +#-------------------------------- +# BRANCH ANCHORS +#-------------------------------- + master: &master + stream: master + branch: '{stream}' + gs-pathname: '' + brahmaputra: &brahmaputra + stream: brahmaputra + branch: 'stable/{stream}' + gs-pathname: '{stream}' +#-------------------------------- +# POD, INSTALLER, AND BRANCH MAPPING +#-------------------------------- +# brahmaputra +#-------------------------------- pod: - opnfv-jump-2: installer: fuel + <<: *brahmaputra + - intel-pod5: + installer: joid + <<: *brahmaputra +#-------------------------------- +# master +#-------------------------------- - ericsson-pod1: installer: fuel + <<: *master + - ericsson-pod2: + installer: fuel + <<: *master + - intel-pod6: + installer: joid + <<: *master - huawei-us-deploy-bare-1: installer: compass - + <<: *master +#-------------------------------- loop: - daily jobs: - 'yardstick-{installer}-{pod}-{loop}-{stream}' - - 'yardstick-merge-{stream}' - - 'yardstick-verify-{stream}' - - stream: - - master: - branch: 'master' - gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' - -- job-template: - name: 'yardstick-verify-{stream}' - - parameters: - - project-parameter: - project: '{project}' - - gerrit-parameter: - branch: '{branch}' - - 'ericsson-ca-build-1-defaults' - - scm: - - gerrit-trigger-scm: - credentials-id: '{ssh-credentials}' - refspec: '$GERRIT_REFSPEC' - choosing-strategy: 'gerrit' - - triggers: - - gerrit: - 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: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - - echo "Running unit tests..." - cd $WORKSPACE - virtualenv $WORKSPACE/yardstick_venv - source $WORKSPACE/yardstick_venv/bin/activate - easy_install -U setuptools - python setup.py develop - ./run_tests.sh - deactivate - -- job-template: - name: 'yardstick-merge-{stream}' - - parameters: - - project-parameter: - project: '{project}' - - gerrit-parameter: - branch: '{branch}' - - 'ericsson-ca-build-1-defaults' - - scm: - - gerrit-trigger-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - choosing-strategy: 'default' - - triggers: - - gerrit: - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - - builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - - echo "Running unit tests..." - cd $WORKSPACE - virtualenv $WORKSPACE/yardstick_venv - source $WORKSPACE/yardstick_venv/bin/activate - easy_install -U setuptools - python setup.py develop - ./run_tests.sh - deactivate +################################ +# job templates +################################ - job-template: name: 'yardstick-{installer}-{pod}-{loop}-{stream}' disabled: false + wrappers: + - build-name: + name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO' + parameters: - project-parameter: project: '{project}' @@ -141,10 +78,7 @@ - git-scm: credentials-id: '{ssh-credentials}' refspec: '' - branch: master - - triggers: - - 'yardstick-trigger-{pod}' + branch: '{branch}' builders: - 'yardstick-cleanup' @@ -177,9 +111,10 @@ -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \ -e "INSTALLER_IP=${INSTALLER_IP}" \ -e "POD_NAME=${NODE_NAME}" \ - -e "EXTERNAL_NETWORK=net04_ext" \ + -e "EXTERNAL_NETWORK=${EXTERNAL_NETWORK}" \ + -e "YARDSTICK_BRANCH=${GERRIT_BRANCH}" \ opnfv/yardstick \ - run_tests.sh \ + run_tests.sh $YARDSTICK_DB_BACKEND \ $YARDSTICK_SUITE_NAME echo "Yardstick: done!" @@ -219,11 +154,35 @@ # parameter macros ######################## - parameter: + name: 'yardstick-params-intel-pod5' + parameters: + - string: + name: YARDSTICK_DB_BACKEND + default: '' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: + name: 'yardstick-params-intel-pod6' + parameters: + - string: + name: YARDSTICK_DB_BACKEND + default: '' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: name: 'yardstick-params-ericsson-pod1' parameters: - string: name: YARDSTICK_DB_BACKEND - default: 'none' + default: '' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: + name: 'yardstick-params-ericsson-pod2' + parameters: + - string: + name: YARDSTICK_DB_BACKEND + default: '' description: 'Arguments to use in order to choose the backend DB' - parameter: @@ -231,7 +190,7 @@ parameters: - string: name: YARDSTICK_DB_BACKEND - default: 'db_args' + default: '-r 213.77.62.197' description: 'Arguments to use in order to choose the backend DB' - parameter: @@ -239,22 +198,5 @@ parameters: - string: name: YARDSTICK_DB_BACKEND - default: 'none' + default: '' description: 'Arguments to use in order to choose the backend DB' -######################## -# trigger macros -######################## -- trigger: - name: 'yardstick-trigger-ericsson-pod1' - triggers: - - timed: '@midnight' - -- trigger: - name: 'yardstick-trigger-opnfv-jump-2' - triggers: - - timed: '#@midnight' - -- trigger: - name: 'yardstick-trigger-huawei-us-deploy-bare-1' - triggers: - - timed: '#@midnight' diff --git a/jjb/yardstick/yardstick-project-jobs.yml b/jjb/yardstick/yardstick-project-jobs.yml new file mode 100644 index 000000000..4f978e189 --- /dev/null +++ b/jjb/yardstick/yardstick-project-jobs.yml @@ -0,0 +1,117 @@ +################################################### +# All the jobs except verify have been removed! +# They will only be enabled on request by projects! +################################################### +- project: + name: yardstick-project-jobs + + project: 'yardstick' + + jobs: + - 'yardstick-verify-{stream}' + - 'yardstick-merge-{stream}' + + stream: + - master: + branch: '{stream}' + gs-pathname: '' + - brahmaputra: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + +################################ +# job templates +################################ + +- job-template: + name: 'yardstick-verify-{stream}' + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - 'ericsson-ca-build-1-defaults' + + scm: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + triggers: + - gerrit: + 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: + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + + echo "Running unit tests..." + cd $WORKSPACE + virtualenv $WORKSPACE/yardstick_venv + source $WORKSPACE/yardstick_venv/bin/activate + easy_install -U setuptools + python setup.py develop + ./run_tests.sh + deactivate + +- job-template: + name: 'yardstick-merge-{stream}' + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - 'ericsson-ca-build-1-defaults' + + scm: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + choosing-strategy: 'default' + + triggers: + - gerrit: + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + + echo "Running unit tests..." + cd $WORKSPACE + virtualenv $WORKSPACE/yardstick_venv + source $WORKSPACE/yardstick_venv/bin/activate + easy_install -U setuptools + python setup.py develop + ./run_tests.sh + deactivate |