From f9ba25e6e9e761123dcd5af1ae1746ed79cba69a Mon Sep 17 00:00:00 2001 From: Fatih Degirmenci Date: Fri, 18 Dec 2015 15:34:33 +0100 Subject: Refactor joid JJB to prepare for Milestone E Replace default stream definitions with stream anchors in order to be able to specify which job on which POD runs against which branch. Move project specific verify job to its own file to ease the stream handling. Enable automatic runs on Intel POD5. Change-Id: Ic7c1137cb2d25604fbef6d31b5db5215e9d92304 Signed-off-by: Fatih Degirmenci --- jjb/joid/joid-ci-jobs.yml | 233 +++++++++++++++++++++++++++++++++++++++++ jjb/joid/joid-project-jobs.yml | 62 +++++++++++ jjb/joid/joid.yml | 185 -------------------------------- 3 files changed, 295 insertions(+), 185 deletions(-) create mode 100644 jjb/joid/joid-ci-jobs.yml create mode 100644 jjb/joid/joid-project-jobs.yml delete mode 100644 jjb/joid/joid.yml (limited to 'jjb') diff --git a/jjb/joid/joid-ci-jobs.yml b/jjb/joid/joid-ci-jobs.yml new file mode 100644 index 000000000..af81aacb2 --- /dev/null +++ b/jjb/joid/joid-ci-jobs.yml @@ -0,0 +1,233 @@ +######################## +# 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 +#-------------------------------- +# Current Mapping +#-------------------------------- +# everything runs against master branch +#-------------------------------- + pod: + - intel-pod5: + <<: *master + - orange-pod2: + <<: *master +#-------------------------------- +# Milestone E Mapping +# !!!DO NOT ENABLE!!! +#-------------------------------- +# brahmaputra +#-------------------------------- +# - intel-pod5: +# <<: *brahmaputra +#-------------------------------- +# master +#-------------------------------- +# - intel-pod6: +# <<: *master +# - orange-pod2: +# <<: *master +#-------------------------------- + +# please check the triggers before enabling any of the controllers!!! + sdn-controller: + - 'nosdn': + disabled: true + - 'odl': + disabled: false + - '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 Feature: $OPNFV_FEATURE' + + triggers: + - 'joid-{pod}-trigger' + + parameters: + - project-parameter: + project: '{project}' + - '{pod}-defaults' + - '{installer}-defaults' + - string: + name: SDN_CONTROLLER + default: '{sdn-controller}' + - string: + name: OPNFV_FEATURE + 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 Feature: $OPNFV_FEATURE' + + 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 +# 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 "Please note that this is a quick try to see how joid deployment works" + 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: 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-trigger' + triggers: + - timed: '0 3 * * *' +# timer trigger is commented out since we do not know if the automatic runs should +# be enabled on orange-pod2 +- trigger: + name: 'joid-orange-pod2-trigger' + triggers: + - timed: '#0 3 * * *' diff --git a/jjb/joid/joid-project-jobs.yml b/jjb/joid/joid-project-jobs.yml new file mode 100644 index 000000000..987b3f9e1 --- /dev/null +++ b/jjb/joid/joid-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: joid-project-jobs + + project: 'joid' + + jobs: + - 'joid-verify-{stream}' + +# only master branch is enabled at the moment to keep no of jobs sane + 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 90b3df682..000000000 --- a/jjb/joid/joid.yml +++ /dev/null @@ -1,185 +0,0 @@ -######################## -# Job configuration for joid -######################## -- project: - - name: 'joid' - - project: '{name}' - - installer: 'joid' - - sdn-controller: - - 'nosdn': - disabled: true - - 'odl': - disabled: false - - 'onos': - disabled: true - - 'opencontrail': - disabled: true - - pod: - - 'intel-pod5' - - 'orange-pod2' - -# only master branch is enabled at the moment to keep no of jobs sane - stream: - - master: - branch: '{stream}' - gs-pathname: '' -# - brahmaputra: -# branch: 'stable/{stream}' -# gs-pathname: '{stream}' - - 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 - - parameters: - - project-parameter: - project: '{project}' - - '{pod}-defaults' - - '{installer}-defaults' - - string: - name: SDN_CONTROLLER - default: '{sdn-controller}' - - string: - name: OPNFV_FEATURE - 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: $INSTALLER_TYPE $SDN_CONTROLLER' - - 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 -# 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 "Please note that this is a quick try to see how joid deployment works" - 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: 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 -- cgit