name: genesis-foreman
+ project: 'genesis'
+
installer:
- foreman
+
jobs:
- - 'genesis-foreman-verify'
- - 'genesis-foreman-merge'
- - 'genesis-foreman-daily-{stream}'
- - 'genesis-foreman-deploy'
+ - 'genesis-{installer}-verify'
+ - 'genesis-{installer}-merge'
+ - 'genesis-{installer}-daily-{stream}'
+ - 'genesis-{installer}-build'
+ - 'genesis-{installer}-deploy'
# stream: branch with - in place of / (eg. stable-helium)
# branch: branch (eg. stable/helium)
- master:
branch: 'master'
- project: 'genesis'
########################
# job templates
########################
- job-template:
- name: 'genesis-foreman-verify'
+ name: 'genesis-{installer}-verify'
project-type: freestyle
artifactNumToKeep: -1
parameters:
+ - string:
+ name: INSTALLER
+ default: '{installer}'
+ description: "Installer to use."
- string:
name: BUILD_DIRECTORY
default: $WORKSPACE/build_output
+ - string:
+ name: CACHE_DIRECTORY
+ default: '$HOME/opnfv/cache/genesis-{installer}'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/genesis
- compare-type: ANT
pattern: 'common/**'
- compare-type: ANT
- pattern: 'foreman/**'
+ pattern: '{installer}/**'
builders:
- - 'foreman-verify'
+ - 'verify'
- job-template:
- name: 'genesis-foreman-merge'
+ name: 'genesis-{installer}-merge'
# builder-merge job to run JJB update
#
artifactNumToKeep: 5
parameters:
+ - string:
+ name: INSTALLER
+ default: '{installer}'
+ description: "Installer to use."
- string:
name: BUILD_DIRECTORY
default: $WORKSPACE/build_output
+ - string:
+ name: CACHE_DIRECTORY
+ default: '$HOME/opnfv/cache/genesis-{installer}'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/genesis
- compare-type: ANT
pattern: 'common/**'
- compare-type: ANT
- pattern: 'foreman/**'
+ pattern: '{installer}/**'
builders:
- - 'foreman-merge'
+ - 'merge'
- job-template:
- name: 'genesis-foreman-daily-{stream}'
+ name: 'genesis-{installer}-daily-{stream}'
project-type: freestyle
node: ericsson-build
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/genesis-{installer}'
- string:
name: GS_URL
- default: 'artifacts.opnfv.org/genesis/foreman'
+ default: 'artifacts.opnfv.org/genesis/{installer}'
description: "URL to Google Storage."
- - string:
- name: INSTALLER
- default: 'foreman'
- description: "Installer to use."
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/genesis
artifactNumToKeep: -1
builders:
- - 'foreman-daily-master'
+ - 'daily-master'
+
+
+- job-template:
+ name: 'genesis-{installer}-build'
+
+ project-type: freestyle
+
+ node: ericsson-build
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+ parameters:
+ - genesis-parameters
+ - string:
+ name: EXTRA_PARAM
+ default: 'extra_value'
+ description: "Installer to use."
+ - string:
+ name: INSTALLER
+ default: 'overriden_value'
+ description: "Installer to use."
+
+ scm:
+ - git:
+ skip-tag: true
+ url: $GIT_BASE
+ branches:
+ - $GERRIT_BRANCH
+ refspec: $GERRIT_REFSPEC
+
+ builders:
+ - 'build'
- job-template:
- name: 'genesis-foreman-deploy'
+ name: 'genesis-{installer}-deploy'
project-type: freestyle
parameters:
- string:
- name: BUILD_DIRECTORY
- default: $WORKSPACE/build_output
+ name: INSTALLER
+ default: '{installer}'
+ description: "Installer to use."
- string:
name: GIT_BASE
- default: https://github.com/trozet/bgs_vagrant.git
- description: "This is a temporary location to clone the needed scripts. Will be replaced with OPNFV Git URL."
+ default: https://gerrit.opnfv.org/gerrit/genesis
+ 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: GERRIT_BRANCH
default: origin/master
name: GERRIT_REFSPEC
default: refs/heads/master
description: "Refspec to retrieve."
+ - string:
+ name: GS_URL
+ default: 'artifacts.opnfv.org/genesis/{installer}'
+ description: "URL to Google Storage."
+ - string:
+ name: BUILD_DIRECTORY
+ default: $WORKSPACE/build_output
+ description: "Directory where the build artifact will be located upon the completion of the build."
scm:
- git:
- $GERRIT_BRANCH
refspec: $GERRIT_REFSPEC
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
-
builders:
- - 'foreman-deploy'
+ - 'deploy'
+
+########################
+# parameter macros
+########################
+- parameter:
+ name: genesis-parameters
+ 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/genesis-{installer}'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/genesis
+ 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: GERRIT_BRANCH
+ default: origin/master
+ description: "Branch to build, deploy and test."
+ - string:
+ name: GERRIT_REFSPEC
+ default: refs/heads/master
+ description: "Refspec to retrieve."
+ - string:
+ name: GS_URL
+ default: 'artifacts.opnfv.org/genesis/{installer}'
+ description: "URL to Google Storage."
########################
# builder macros
########################
- builder:
- name: foreman-verify
+ name: 'verify'
builders:
- shell: |
#!/bin/bash
set -x
# get the dependencies - temporary fix for RC0
- [[ -d $WORKSPACE/foreman/build ]] || mkdir -p $WORKSPACE/foreman/build
- cp /home/jenkins/Downloads/opnfv_iso/* $WORKSPACE/foreman/build/
+ [[ -d $WORKSPACE/$INSTALLER/build ]] || mkdir -p $WORKSPACE/$INSTALLER/build
+ cp /home/jenkins/Downloads/opnfv_iso/* $WORKSPACE/$INSTALLER/build/
# below lines perhaps need to be enabled in order to fetch images from internet
# as we are having disk space issues on ericsson-build slave
#wget http://repos.duss-janser.ch/vagrant/vagrant_1.7.2_x86_64.rpm
# do the build
- cd $WORKSPACE/foreman/ci
+ cd $WORKSPACE/$INSTALLER/ci
./build.sh $BUILD_DIRECTORY
# list the build artifacts
/bin/rm -rf $BUILD_DIRECTORY
- builder:
- name: foreman-merge
+ name: 'merge'
builders:
- shell: |
#!/bin/bash
set -x
# get the dependencies - temporary fix for RC0
- [[ -d $WORKSPACE/foreman/build ]] || mkdir -p $WORKSPACE/foreman/build
- cp /home/jenkins/Downloads/opnfv_iso/* $WORKSPACE/foreman/build/
+ [[ -d $WORKSPACE/$INSTALLER/build ]] || mkdir -p $WORKSPACE/$INSTALLER/build
+ cp /home/jenkins/Downloads/opnfv_iso/* $WORKSPACE/$INSTALLER/build/
# below lines perhaps need to be enabled in order to fetch images from internet
# as we are having disk space issues on ericsson-build slave
#wget http://repos.duss-janser.ch/vagrant/vagrant_1.7.2_x86_64.rpm
# do the build
- cd $WORKSPACE/foreman/ci
+ cd $WORKSPACE/$INSTALLER/ci
./build.sh $BUILD_DIRECTORY
# list the build artifacts
/bin/rm -rf $BUILD_DIRECTORY
- builder:
- name: foreman-daily-master
+ name: 'daily-master'
builders:
- shell: |
#!/bin/bash
set -x
# get the dependencies - temporary fix for RC0
- [[ -d $WORKSPACE/foreman/build ]] || mkdir -p $WORKSPACE/foreman/build
- cp /home/jenkins/Downloads/opnfv_iso/* $WORKSPACE/foreman/build/
+ [[ -d $WORKSPACE/$INSTALLER/build ]] || mkdir -p $WORKSPACE/$INSTALLER/build
+ cp /home/jenkins/Downloads/opnfv_iso/* $WORKSPACE/$INSTALLER/build/
# below lines perhaps need to be enabled in order to fetch images from internet
# as we are having disk space issues on ericsson-build slave
#wget http://repos.duss-janser.ch/vagrant/vagrant_1.7.2_x86_64.rpm
# do the build
- cd $WORKSPACE/foreman/ci
+ cd $WORKSPACE/$INSTALLER/ci
./build.sh -v $BUILD_ID $BUILD_DIRECTORY
- shell: |
/bin/rm -rf $WORKSPACE/opnfv.iso
- builder:
- name: foreman-deploy
+ name: 'build'
builders:
- shell: |
#!/bin/bash
set -o pipefail
set -x
- cd $WORKSPACE
+ echo "Hello World"
+ env
- # fix PATH
- export PATH=/usr/sbin:$PATH
- echo $PATH
-
- # messy workaround
- git clone https://gist.github.com/4f2eb87d8c9937ee19f0.git lf_settings
- ls -al $WORKSPACE/lf_settings
+- builder:
+ name: 'deploy'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+ set -x
# cleanup first
- ssh -t -t jenkins-ci@localhost "sudo $WORKSPACE/clean.sh -base_config $WORKSPACE/lf_settings/lf_pod2_ksgen_settings.yml"
+ sudo $WORKSPACE/$INSTALLER/ci/clean.sh -base_config $WORKSPACE/$INSTALLER/ci/inventory/lf_pod2_ksgen_settings.yml
# and then initiate deployment
- ssh -t -t jenkins-ci@localhost "sudo $WORKSPACE/deploy.sh -base_config $WORKSPACE/lf_settings/lf_pod2_ksgen_settings.yml"
+ sudo $WORKSPACE/$INSTALLER/ci/deploy.sh -base_config $WORKSPACE/$INSTALLER/ci/inventory/lf_pod2_ksgen_settings.yml