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
+
+ triggers:
+ - timed: '0 11 * * *'
+
+ 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:
+ - timeout:
+ timeout: 180
+ abort: true
+ - 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:
+ - timeout:
+ timeout: 240
+ abort: true
- fix-workspace-permissions
parameters:
cat $OPENRC
if [[ ! "${SUT_BRANCH}" =~ "danube" && ${INSTALLER_TYPE} == "compass" ]]; then
+ compass_repo=${WORKSPACE}/compass4nfv/
+ git clone https://github.com/opnfv/compass4nfv.git ${compass_repo} >/dev/null
+ pip install shyaml
+ scenario_file=${compass_repo}/deploy/conf/hardware_environment/$NODE_NAME/os-nosdn-nofeature-ha.yml
+ ipmiIp=$(cat ${scenario_file} | shyaml get-value hosts.0.ipmiIp)
+ ipmiPass=$(cat ${scenario_file} | shyaml get-value hosts.0.ipmiPass)
+ ipmiUser=root
+ jumpserver_ip=$(ifconfig | grep -A 5 docker0 | grep "inet addr" | cut -d ':' -f 2 | cut -d ' ' -f 1)
+
cat << EOF >${DOVETAIL_CONFIG}/pod.yaml
nodes:
-- {ip: 10.1.0.52, name: node1, password: root, role: controller, user: root}
+- {ip: ${jumpserver_ip}, name: node0, password: root, role: Jumpserver, user: root}
+- {ip: 10.1.0.50, name: node1, password: root, role: controller, user: root,
+ ipmi_ip: ${ipmiIp}, ipmi_user: ${ipmiUser}, ipmi_password: ${ipmiPass}}
- {ip: 10.1.0.51, name: node2, password: root, role: controller, user: root}
-- {ip: 10.1.0.50, name: node3, password: root, role: controller, user: root}
-- {ip: 10.1.0.54, name: node4, password: root, role: compute, user: root}
-- {ip: 10.1.0.53, name: node5, password: root, role: compute, user: root}
+- {ip: 10.1.0.52, name: node3, password: root, role: controller, user: root}
+- {ip: 10.1.0.53, name: node4, password: root, role: compute, user: root}
+- {ip: 10.1.0.54, name: node5, password: root, role: compute, user: root}
EOF
fi
fi
if [ -f ${DOVETAIL_CONFIG}/pod.yaml ]; then
+ sudo chown jenkins:jenkins ${DOVETAIL_CONFIG}/pod.yaml
echo "Adapt process info for $INSTALLER_TYPE ..."
attack_process='rabbitmq'
cat << EOF >> ${DOVETAIL_CONFIG}/pod.yaml
# PRIMARY_GROUP=$(id -gn $CURRENT_USER)
# sudo chown -R ${CURRENT_USER}:${PRIMARY_GROUP} ${WORKSPACE}/results
-#remove useless workspace from yardstick to save disk space
+#remove useless files to save disk space
sudo rm -rf ./results/workspace
+sudo rm -f ./results/yardstick.img
echo "Dovetail: done!"
armband
availability
bottlenecks
+clover
compass4nfv
copper
conductor
stream:
- master:
branch: '{stream}'
+ disabled: false
# -------------------------------
# distros
# -------------------------------
distro:
- ubuntu:
disabled: false
+ kill-phase-on: FAILURE
+ abort-all-job: true
- centos:
- disabled: false
+ disabled: true
+ kill-phase-on: NEVER
+ abort-all-job: false
- opensuse:
disabled: false
+ kill-phase-on: FAILURE
+ abort-all-job: true
# -------------------------------
# postmerge promotion phases
# -------------------------------
project-type: multijob
- disabled: false
+ disabled: '{obj:disabled}'
concurrent: false
- 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: NEVER
abort-all-job: false
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
project-type: multijob
- disabled: false
+ disabled: '{obj:disabled}'
concurrent: false
- 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_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
+ kill-phase-on: '{kill-phase-on}'
+ abort-all-job: '{abort-all-job}'
- multijob:
name: healthcheck
condition: SUCCESSFUL
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
+ kill-phase-on: '{kill-phase-on}'
+ abort-all-job: '{abort-all-job}'
publishers:
- postbuildscript:
- 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'