from jinja2 import Environment
from jinja2 import FileSystemLoader
-gspathname = dict()
-branch = dict()
-build_slave = dict()
-env = Environment(loader=FileSystemLoader('./'), autoescape=True)
-with open('scenarios.yaml.hidden') as _:
- scenarios = yaml.safe_load(_)
+def render_jjb():
+ """Render JJB output from scenarios.yaml.hidden file and jinja
+ template"""
-template = env.get_template('apex.yml.j2')
+ gspathname = dict()
+ branch = dict()
+ build_slave = dict()
+ env = Environment(loader=FileSystemLoader('./'), autoescape=True)
-print("Scenarios are: ")
-pprint.pprint(scenarios)
+ with open('scenarios.yaml.hidden') as _:
+ scenarios = yaml.safe_load(_)
-for stream in scenarios:
- if stream == 'master':
- gspathname['master'] = ''
- branch[stream] = stream
- else:
- gspathname[stream] = '/' + stream
- branch[stream] = 'stable/' + stream
- build_slave[stream] = 'apex-baremetal-{}'.format(stream)
+ template = env.get_template('apex.yml.j2')
-output = template.render(scenarios=scenarios, gspathname=gspathname,
- branch=branch, build_slave=build_slave)
+ print("Scenarios are: ")
+ pprint.pprint(scenarios)
-with open('./apex.yml', 'w') as fh:
- fh.write(output)
+ for stream in scenarios:
+ if stream == 'master':
+ gspathname['master'] = ''
+ branch[stream] = stream
+ else:
+ gspathname[stream] = '/' + stream
+ branch[stream] = 'stable/' + stream
+ build_slave[stream] = 'apex-baremetal-{}'.format(stream)
+
+ output = template.render(scenarios=scenarios, gspathname=gspathname,
+ branch=branch, build_slave=build_slave)
+
+ with open('./apex.yml', 'w') as fh:
+ fh.write(output)
+
+if __name__ == "__main__":
+ render_jjb()
--- /dev/null
+---
+###################################################
+# All the jobs except verify have been removed!
+# They will only be enabled on request by projects!
+###################################################
+- project:
+ name: clover
+
+ project: '{name}'
+
+ jobs:
+ - 'clover-verify-{stream}'
+ - 'clover-daily-upload-{stream}'
+ - 'clover-daily-deploy-{stream}'
+
+ stream:
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+
+- job-template:
+ name: 'clover-verify-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ # yamllint disable rule:line-length
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
+ # yamllint enable rule:line-length
+ - 'opnfv-build-ubuntu-defaults'
+
+ scm:
+ - git-scm-gerrit
+
+ triggers:
+ - gerrit:
+ server-name: 'gerrit.opnfv.org'
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: 'false'
+ exclude-trivial-rebase: 'false'
+ exclude-no-code-change: 'false'
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: 'recheck'
+ - comment-added-contains-event:
+ comment-contains-value: 'reverify'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ disable-strict-forbidden-file-verification: 'true'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**|.gitignore'
+
+ builders:
+ - shell: |
+ cd $WORKSPACE/ci
+ ./verify.sh
+
+- job-template:
+ name: 'clover-daily-upload-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ concurrent: false
+
+ scm:
+ - git-scm
+
+ wrappers:
+ - fix-workspace-permissions
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
+ - 'clover-defaults':
+ gs-pathname: '{gs-pathname}'
+
+ builders:
+ - shell: |
+ cd $WORKSPACE/ci
+ ./upload.sh
+
+- job-template:
+ name: 'clover-daily-deploy-{stream}'
+
+ project-type: freestyle
+
+ disabled: '{obj:disabled}'
+
+ concurrent: false
+
+ properties:
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'clover-daily-deploy-.*?'
+ - 'container4nfv-daily-deploy-.*?'
+ block-level: 'NODE'
+
+ wrappers:
+ - fix-workspace-permissions
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ # yamllint disable rule:line-length
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
+ # yamllint enable rule:line-length
+ - node:
+ name: SLAVE_NAME
+ description: 'Slave name on Jenkins'
+ allowed-slaves:
+ - huawei-virtual6
+ default-slaves:
+ - huawei-virtual6
+
+ scm:
+ - git-scm
+
+ triggers:
+ - timed: '0 12 * * *'
+
+ builders:
+ - shell: |
+ cd $WORKSPACE/ci
+ ./deploy.sh
+
+###################
+# parameter macros
+###################
+- parameter:
+ name: 'clover-defaults'
+ parameters:
+ - string:
+ name: GS_URL
+ default: artifacts.opnfv.org/$PROJECT{gs-pathname}
+ description: "URL to Google Storage."
properties:
- logrotate-default
+ - throttle:
+ enabled: true
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'clover-daily-deploy-.*?'
+ - 'container4nfv-daily-deploy-.*?'
+ block-level: 'NODE'
wrappers:
- fix-workspace-permissions
- 'daily':
job-timeout: 360
- 'arm-daily':
- job-timeout: 360
+ job-timeout: 480
jobs:
- 'functest-{installer}-{pod}-{testsuite}-{stream}'
armband
availability
bottlenecks
+clover
compass4nfv
copper
conductor
- comment-added-contains-event:
comment-contains-value: 'remerge'
projects:
+ - project-compare-type: 'ANT'
+ project-pattern: 'releng-xci'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ disable-strict-forbidden-file-verification: 'false'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'xci/scripts/vm/**'
+ - compare-type: ANT
+ pattern: 'docs/**'
+ - compare-type: ANT
+ pattern: 'prototypes/**'
+ - compare-type: ANT
+ pattern: 'upstream/**'
- project-compare-type: 'REG_EXP'
project-pattern: 'sfc|sdnvpn'
branches:
- label:
name: SLAVE_LABEL
default: 'xci-virtual'
+ - string:
+ name: CI_LOOP
+ default: 'merge'
+ - string:
+ name: FUNCTEST_MODE
+ default: 'tier'
+ - string:
+ name: FUNCTEST_SUITE_NAME
+ default: 'healthcheck'
- string:
name: DISTRO
default: 'all'
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ CI_LOOP=$CI_LOOP
+ FUNCTEST_MODE=$FUNCTEST_MODE
+ FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
node-parameters: false
kill-phase-on: FAILURE
abort-all-job: true
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ CI_LOOP=$CI_LOOP
+ FUNCTEST_MODE=$FUNCTEST_MODE
+ FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
node-parameters: false
kill-phase-on: FAILURE
abort-all-job: true
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ CI_LOOP=$CI_LOOP
+ FUNCTEST_MODE=$FUNCTEST_MODE
+ FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
node-parameters: false
- kill-phase-on: FAILURE
- abort-all-job: true
+ kill-phase-on: NEVER
+ abort-all-job: false
- inject:
properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties"
- multijob:
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ CI_LOOP=$CI_LOOP
+ FUNCTEST_MODE=$FUNCTEST_MODE
+ FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
node-parameters: true
kill-phase-on: NEVER
abort-all-job: true
- label:
name: SLAVE_LABEL
default: 'xci-virtual'
+ - string:
+ name: CI_LOOP
+ default: 'merge'
+ - string:
+ name: FUNCTEST_MODE
+ default: 'tier'
+ - string:
+ name: FUNCTEST_SUITE_NAME
+ default: 'healthcheck'
- string:
name: DISTRO
default: '{distro}'
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- FUNCTEST_MODE=tier
- FUNCTEST_TIER=healthcheck
+ CI_LOOP=$CI_LOOP
+ FUNCTEST_MODE=$FUNCTEST_MODE
+ FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
node-parameters: true
kill-phase-on: NEVER
abort-all-job: true
- string:
name: DISTRO
default: 'ubuntu'
+ - string:
+ name: CI_LOOP
+ default: 'merge'
- string:
name: FUNCTEST_MODE
default: 'tier'
- string:
name: PROJECT
default: $GERRIT_PROJECT
+ - string:
+ name: CI_LOOP
+ default: 'merge'
+ - string:
+ name: FUNCTEST_MODE
+ default: 'tier'
+ - string:
+ name: FUNCTEST_SUITE_NAME
+ default: 'healthcheck'
- string:
name: DISTRO
default: 'all'
- string:
name: CLEAN_DIB_IMAGES
default: 'true'
+ - string:
+ name: CI_LOOP
+ default: 'verify'
+ - string:
+ name: FUNCTEST_MODE
+ default: 'tier'
+ - string:
+ name: FUNCTEST_SUITE_NAME
+ default: 'healthcheck'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ CI_LOOP=$CI_LOOP
node-parameters: true
kill-phase-on: FAILURE
abort-all-job: true
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- FUNCTEST_MODE=tier
- FUNCTEST_TIER=healthcheck
+ CI_LOOP=$CI_LOOP
+ FUNCTEST_MODE=$FUNCTEST_MODE
+ FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
node-parameters: true
kill-phase-on: NEVER
abort-all-job: true
- string:
name: DISTRO
default: 'ubuntu'
+ - string:
+ name: CI_LOOP
+ default: 'verify'
- string:
name: FUNCTEST_MODE
default: 'tier'