-# this is the job configuration for bgs
- project:
name: compass
installer: 'compass'
jobs:
- - 'compass-verify'
- - 'compass-verify-on-ericsson-node'
- - 'compass-merge'
+ - 'compass-verify-{stream}'
- 'compass-daily-{stream}'
- - 'compass-build'
+ - 'compass-build-iso-{stream}'
+ - 'compass-build-ppa-{stream}'
- 'compass-deploy-virtual-{flavor}'
+ - 'compass-deploy-bare-huawei-us'
- # stream: branch with - in place of / (eg. stable-helium)
- # branch: branch (eg. stable/helium)
+# 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'
flavor:
- - five:
- conf: 'virtual_five'
- node: 'huawei-build'
+ - 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-build'
-
-
+ node: 'huawei-deploy-vm'
project: 'compass4nfv'
# job templates
########################
- job-template:
- name: 'compass-verify-on-ericsson-node'
+ name: 'compass-verify-{stream}'
- project-type: freestyle
+ disabled: false
- disabled: true
+ node: 'huawei-deploy-vm'
- node: ericsson-build
+ concurrent: true
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 3
+ max-per-node: 1
parameters:
- project-parameter:
project: '{project}'
- gerrit-parameter:
- branch: 'master'
+ branch: '{branch}'
- compass-parameter:
installer: '{installer}'
-
+ - string:
+ name: FLAVOR_CONF
+ default: 'virtual_cluster'
+ description: ""
scm:
- gerrit-trigger-scm:
credentials-id: '{ssh-credentials}'
refspec: '$GERRIT_REFSPEC'
choosing-strategy: 'gerrit'
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
-
triggers:
- gerrit:
trigger-on:
project-pattern: '{project}'
branches:
- branch-compare-type: 'ANT'
- branch-pattern: '**/master'
+ branch-pattern: '**/{branch}'
forbidden-file-paths:
- compare-type: ANT
- pattern: 'docs/**'
+ pattern: 'docs/**|.gitignore'
builders:
- - 'compass-build'
- - 'compass-workspace-cleanup'
+ - 'builder-compass-build-iso'
+ - 'builder-compass-deploy-virtual-flavor'
+ publishers:
+ - archive:
+ artifacts: 'ansible.log'
+ allow-empty: 'true'
+ fingerprint: true
- job-template:
- name: 'compass-verify'
-
- project-type: freestyle
-
- disabled: false
+ name: 'compass-daily-{stream}'
node: huawei-build
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
+ concurrent: true
+
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
- branch: 'master'
- compass-parameter:
installer: '{installer}'
- - string:
- name: FLAVOR_CONF
- default: 'virtual_cluster'
- description: ""
+
scm:
- - gerrit-trigger-scm:
+ - git-scm:
credentials-id: '{ssh-credentials}'
- refspec: '$GERRIT_REFSPEC'
- choosing-strategy: 'gerrit'
-
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
+ refspec: ''
+ branch: '{branch}'
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: '**/master'
- forbidden-file-paths:
- - compare-type: ANT
- pattern: 'docs/**'
+ - timed: '@midnight'
builders:
- - 'compass-build'
- - 'compass-deploy-virtual-flavor'
+ - trigger-builds:
+ - project: 'compass-build-iso'
+ git-revision: true
+ block: true
+ - trigger-builds:
+ - project: 'compass-deploy-virtual-cluster'
+ git-revision: true
+ block: true
+# - trigger-builds:
+# - project: 'compass-deploy-virtual-cluster-odl'
+# git-revision: true
+# block: true
+ - trigger-builds:
+ - project: 'compass-deploy-virtual-cluster-onos'
+ git-revision: true
+ block: true
- job-template:
- name: 'compass-merge'
+ name: 'compass-build-iso-{stream}'
- # builder-merge job to run JJB update
- #
- # This job's purpose is to update all the JJB
-
- project-type: freestyle
+ node: ericsson-build
- node: huawei-build
+ concurrent: true
- logrotate:
- daysToKeep: 30
- numToKeep: 40
- artifactDaysToKeep: -1
- artifactNumToKeep: 5
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
parameters:
- project-parameter:
project: '{project}'
- - gerrit-parameter:
- branch: 'master'
- compass-parameter:
installer: '{installer}'
scm:
- - gerrit-trigger-scm:
+ - git-scm:
credentials-id: '{ssh-credentials}'
refspec: ''
- choosing-strategy: 'default'
-
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
+ branch: '{branch}'
- 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: '**/master'
builders:
- - 'compass-merge'
+ - 'builder-compass-build-iso'
+ - 'builder-compass-upload-artifact'
+ - 'builder-compass-workspace-cleanup'
- job-template:
- name: 'compass-daily-{stream}'
+ name: 'compass-build-ppa-{stream}'
- project-type: freestyle
+ description: "build ppa(using docker) in huawei lab"
node: huawei-build
+ concurrent: true
+
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+
parameters:
- project-parameter:
project: '{project}'
branch: '{branch}'
triggers:
- - pollscm: '@midnight'
-
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
+ - timed: 'H 16 * * *'
builders:
- #- 'compass-build'
- #- 'compass-upload-artifact'
- #- 'compass-workspace-cleanup'
- - shell: |
- echo "Hello world!"
- echo "compass-deploy-virtual job will be triggered!"
-
- publishers:
- - trigger:
- project: 'compass-build'
- threshold: SUCCESS
- - trigger:
- project: 'compass-deploy-virtual-cluster'
- threshold: SUCCESS
+ - 'builder-compass-make-ppa'
- job-template:
- name: 'compass-build'
+ name: 'compass-deploy-virtual-{flavor}'
- project-type: freestyle
+ disabled: false
- node: ericsson-build
+ node: '{node}'
+
+ concurrent: true
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
parameters:
- project-parameter:
project: '{project}'
- compass-parameter:
installer: '{installer}'
-
- scm:
- - git-scm:
- credentials-id: '{ssh-credentials}'
- refspec: ''
- branch: 'master'
+ - string:
+ name: FLAVOR_CONF
+ default: '{conf}'
+ description: ""
builders:
- - 'compass-build'
- - 'compass-upload-artifact'
- - 'compass-workspace-cleanup'
+ - 'builder-compass-ci-preclean-workspace'
+ - 'builder-compass-download-artifact'
+ - 'builder-compass-deploy-virtual-flavor'
+ publishers:
+ - archive:
+ artifacts: 'ansible.log'
+ allow-empty: 'true'
+ fingerprint: true
- job-template:
- name: 'compass-deploy-virtual-{flavor}'
-
- project-type: freestyle
+ name: 'compass-deploy-bare-huawei-us'
disabled: false
- node: '{node}'
+ node: 'huawei-us-deploy-bare-1'
+
+ concurrent: true
+
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
parameters:
- project-parameter:
project: '{project}'
- compass-parameter:
installer: '{installer}'
- - string:
- name: FLAVOR_CONF
- default: '{conf}'
- description: ""
-
- triggers:
- - pollscm: "H/2 * * * *"
-
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
builders:
- - 'compass-ci-preclean-workspace'
- - 'compass-download-artifact'
- - 'compass-deploy-virtual-flavor'
+ - 'builder-compass-ci-preclean-workspace'
+ - 'builder-compass-download-artifact'
+ - 'builder-compass-deploy-bare'
+
+ publishers:
+ - archive:
+ artifacts: 'ansible.log'
+ allow-empty: 'true'
+ fingerprint: true
########################
# parameter macros
default: build.opnfv.org/artifacts/$PROJECT/
description: "URL to Google Storage proxy"
- string:
- name: INTERNAL_REPO_XA
- default: "root@192.168.127.11:~/xh/work/build/work"
- description: "Artifact Repository"
-
+ name: installer_ip
+ default: "192.168.200.2"
+ - string:
+ name: PPA_REPO
+ default: "http://205.177.226.235:9999"
+ - string:
+ name: PPA_CACHE
+ default: "$WORKSPACE/work/repo/"
+ - choice:
+ name: COMPASS-OPENSTACK-VERSION
+ choices:
+ - 'liberty'
+ - 'juno'
+ - choice:
+ name: COMPASS-OS-VERSION
+ choices:
+ - 'ubuntu-trusty'
+ - 'rhel7'
########################
# builder macros
########################
- builder:
- name: compass-merge
+ name: 'builder-compass-make-ppa'
builders:
- shell: |
#!/bin/bash
- echo "Hello World!"
-
-
+ set -x
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+ # make ppa
+ cd $WORKSPACE/
+ ./build/make_repo.sh
+ # calc MD5 of ppa
+ cd $PPA_CACHE
+ for i in $(find *.gz *.iso *.img -type f)
+ do
+ md5=$(md5sum $i | cut -d ' ' -f1)
+ echo $md5 > $i.md5
+ curl -T $i $PPA_REPO
+ curl -T $i.md5 $PPA_REPO
+ done
- builder:
- name: 'compass-build'
+ name: 'builder-compass-build-iso'
builders:
- shell: |
#!/bin/bash
export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
# start the build
+ if [ -d $PPA_CACHE ]
+ then
+ cp $PPA_CACHE/*.tar.gz $PPA_CACHE/*.iso $PPA_CACHE/*.img $CACHE_DIRECTORY/ -f
+ fi
+
cd $WORKSPACE/
./build.sh --iso-dir $BUILD_DIRECTORY/ --iso-name compass.iso -c $CACHE_DIRECTORY
echo "Done!"
- builder:
- name: 'compass-deploy-virtual-flavor'
+ name: 'builder-compass-deploy-virtual-flavor'
builders:
- shell: |
#!/bin/bash
- set -o errexit
- set -o nounset
- set -o pipefail
set -x
# log info to console
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
+
./deploy.sh $FLAVOR_CONF
+ if [ $? -ne 0 ]; then
+ echo "depolyment failed!"
+ deploy_ret=1
+ fi
+
+ echo
+ echo "--------------------------------------------------------"
+ echo "Done!"
+
+ ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
+ sshpass -p root scp 2>/dev/null $ssh_options root@${installer_ip}:/var/ansible/run/openstack_${COMPASS-OPENSTACK-VERSION}-opnfv2/ansible.log ./ &> /dev/null
+
+ exit $deploy_ret
+
+- builder:
+ name: 'builder-compass-deploy-bare'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -x
+
+ # log info to console
+ echo "Starting the deployment on baremetal environment using $INSTALLER. This could take some time..."
+ echo "--------------------------------------------------------"
+ echo
+
+ export CONFDIR=$WORKSPACE/deploy/conf/hardware_environment/huawei_us_lab/pod1
+ export ISO_URL=file://$BUILD_DIRECTORY/compass.iso
+ export EXTERNAL_NIC=eth0
+ export INSTALL_NIC=eth1
+
+ cd $WORKSPACE
+
+ export OS_VERSION=${COMPASS-OS-VERSION}
+ export OPENSTACK_VERSION=${COMPASS-OPENSTACK-VERSION}
+ ./deploy.sh --dha $CONFDIR/dha.yml --network $CONFDIR/network.yml
+ if [ $? -ne 0 ]; then
+ echo "depolyment failed!"
+ deploy_ret=1
+ fi
echo
echo "--------------------------------------------------------"
echo "Done!"
+ ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
+ sshpass -p root scp 2>/dev/null $ssh_options root@${installer_ip}:/var/ansible/run/openstack_${COMPASS-OPENSTACK-VERSION}-opnfv2/ansible.log ./ &> /dev/null
+
+ exit $deploy_ret
+
- builder:
- name: 'compass-upload-artifact'
+ name: 'builder-compass-upload-artifact'
builders:
- shell: |
#!/bin/bash
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: 'compass-download-artifact'
+ name: 'builder-compass-download-artifact'
builders:
- shell: |
#!/bin/bash
echo
# get the latest.properties file in order to get info regarding latest artifact
- curl -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties
+ [[ -d $BUILD_DIRECTORY ]] || mkdir -p $BUILD_DIRECTORY
+ curl -s -o $BUILD_DIRECTORY/latest.properties http://$GS_URL/latest.properties
# check if we got the file
- [[ -f latest.properties ]] || exit 1
+ [[ -f $BUILD_DIRECTORY/latest.properties ]] || exit 1
# source the file so we get OPNFV vars
- source latest.properties
+ source $BUILD_DIRECTORY/latest.properties
# download the file
- curl -s -o $WORKSPACE/opnfv.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
+ curl -s -o $BUILD_DIRECTORY/compass.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
# list the file
- ls -al $WORKSPACE/opnfv.iso
+ ls -al $BUILD_DIRECTORY/compass.iso
echo
echo "--------------------------------------------------------"
echo "Done!"
- builder:
- name: 'compass-workspace-cleanup'
+ name: 'builder-compass-workspace-cleanup'
builders:
- shell: |
#!/bin/bash
/bin/rm -rf $WORKSPACE
- builder:
- name: 'compass-ci-preclean-workspace'
+ name: 'builder-compass-ci-preclean-workspace'
builders:
- shell: |
#!/bin/bash