- 'apex-run.*'
triggers:
- - timed: '0 12 * * *'
+ - timed: '0 1 * * *'
builders:
- description-setter:
- 'apex-run.*'
triggers:
- - timed: '0 12 * * *'
+ - timed: '0 1 * * *'
builders:
- description-setter:
stream: euphrates
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: true
+ disabled: false
# -------------------------------
# POD, INSTALLER, AND BRANCH MAPPING
# -------------------------------
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
# 1.dovetail only master, based on D release
- # 2.here the stream means the SUT stream, dovetail stream is defined in its own job
+ # 2.here the stream means the SUT stream,
+ # dovetail stream is defined in its own job
# 3.only proposed_tests testsuite here(refstack, ha, ipv6, bgpvpn)
# 4.not used for release criteria or compliance,
# only to debug the dovetail tool bugs with arm pods
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: '0 1 * * *'
+ - timed: '0 16 * * 2,4,6'
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger'
triggers:
- trigger:
name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: '0 16 * * *'
+ - timed: '0 16 * * 1,3,5,7'
# ---------------------------------------------------------------------
# Enea Armband CI Baremetal Triggers running against euphrates branch
# ---------------------------------------------------------------------
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-euphrates-trigger'
triggers:
- - timed: ''
+ - timed: '0 1 * * 2,4,6'
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-euphrates-trigger'
triggers:
- trigger:
name: 'fuel-os-odl-nofeature-ha-armband-baremetal-euphrates-trigger'
triggers:
- - timed: ''
+ - timed: '0 1 * * 1,3,5,7'
# --------------------------------------------------------------
# Enea Armband CI Virtual Triggers running against master branch
# --------------------------------------------------------------
- euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: true
+ disabled: false
#####################################
# patch verification phases
#####################################
cd $WORKSPACE
REPORTDIR='.reports'
mkdir -p $REPORTDIR
+# Ensure any user can read the reports directory
+chmod 777 $REPORTDIR
echo "Generating patchset file to list changed files"
git diff HEAD^1 --name-only | sed "s#^#/home/opnfv/anteater/$PROJECT/#" > $WORKSPACE/patchset
echo "Changed files are"
parameters:
- label:
name: SLAVE_LABEL
- default: 'ericsson-build3'
+ default: 'opnfv-build'
description: 'Slave label on Jenkins'
- project-parameter:
project: $GERRIT_PROJECT
euphrates: &euphrates
stream: euphrates
branch: 'stable/{stream}'
- disabled: true
+ disabled: false
gs-pathname: '/{stream}'
danube: &danube
stream: danube
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-euphrates-trigger'
triggers:
- - timed: '' # '0 20 * * *'
+ - timed: '0 20 * * *'
- trigger:
name: 'fuel-os-odl-nofeature-ha-baremetal-daily-euphrates-trigger'
triggers:
- - timed: '' # '0 2 * * *'
+ - timed: '0 2 * * *'
- trigger:
name: 'fuel-os-onos-sfc-ha-baremetal-daily-euphrates-trigger'
triggers:
- trigger:
name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-euphrates-trigger'
triggers:
- - timed: '' # '0 20 * * *'
+ - timed: '0 20 * * *'
- trigger:
name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-euphrates-trigger'
triggers:
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-euphrates-trigger'
triggers:
- - timed: '' # '0 13 * * *'
+ - timed: '0 13 * * *'
- trigger:
name: 'fuel-os-odl-nofeature-noha-virtual-daily-euphrates-trigger'
triggers:
- - timed: '' # '0 18 * * *'
+ - timed: '0 18 * * *'
- trigger:
name: 'fuel-os-onos-sfc-noha-virtual-daily-euphrates-trigger'
triggers:
- trigger:
name: 'fuel-os-nosdn-ovs-noha-virtual-daily-euphrates-trigger'
triggers:
- - timed: '' # '0 9 * * *'
+ - timed: '0 9 * * *'
- trigger:
name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-euphrates-trigger'
triggers:
- euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: true
+ disabled: false
jobs:
- 'fuel-deploy-generic-daily-{stream}'
- euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: true
+ disabled: false
#####################################
# patch verification phases
#####################################
euphrates: &euphrates
stream: euphrates
branch: 'stable/{stream}'
- disabled: true
+ disabled: false
gs-pathname: '/{stream}'
#--------------------------------
# POD, INSTALLER, AND BRANCH MAPPING
fi
cmd_opt='prepare_env start && run_tests -r -t all'
+ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
+echo 0 > ${ret_val_file}
for tier in ${tiers[@]}; do
FUNCTEST_IMAGE=opnfv/functest-${tier}
cmd="docker run --privileged=true ${envs} ${volumes} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'"
echo "Running Functest tier '${tier}'. CMD: ${cmd}"
eval ${cmd}
+ ret_value=$?
+ if [ ${ret_value} != 0 ]; then
+ echo ${ret_value} > ${ret_val_file}
+ fi
done
- 'functest-cleanup'
- 'functest-daily'
- 'functest-store-results'
+ - 'functest-exit'
- builder:
name: functest-arm-daily-builder
branch: '{stream}'
gs-pathname: ''
docker-tag: latest
+ euphrates: &euphrates
+ stream: euphrates
+ branch: 'stable/{stream}'
+ gs-pathname: '{stream}'
+ docker-tag: 'stable'
# -------------------------------
# JOB VARIABLES
installer: apex
pod: zte-pod4
<<: *master
+ - compute:
+ installer: apex
+ pod: zte-pod4
+ <<: *euphrates
+ - storage:
+ installer: apex
+ pod: zte-pod4
+ <<: *euphrates
# -------------------------------
# JOB LIST
project: 'functest'
<<: *euphrates
<<: *functest-receivers
+ - 'functest-core':
+ project: 'functest'
+ dockerdir: 'docker/core'
+ <<: *euphrates
+ <<: *functest-receivers
+ - 'functest-healthcheck':
+ project: 'functest'
+ dockerdir: 'docker/healthcheck'
+ <<: *euphrates
+ <<: *functest-receivers
+ - 'functest-smoke':
+ project: 'functest'
+ dockerdir: 'docker/smoke'
+ <<: *euphrates
+ <<: *functest-receivers
+ - 'functest-features':
+ project: 'functest'
+ dockerdir: 'docker/features'
+ <<: *euphrates
+ <<: *functest-receivers
+ - 'functest-components':
+ project: 'functest'
+ dockerdir: 'docker/components'
+ <<: *euphrates
+ <<: *functest-receivers
+ - 'functest-vnf':
+ project: 'functest'
+ dockerdir: 'docker/vnf'
+ <<: *euphrates
+ <<: *functest-receivers
+ - 'functest-parser':
+ project: 'functest'
+ dockerdir: 'docker/parser'
+ <<: *euphrates
+ <<: *functest-receivers
+ - 'functest-restapi':
+ project: 'functest'
+ dockerdir: 'docker/restapi'
+ <<: *euphrates
+ <<: *functest-receivers
- 'storperf-master':
project: 'storperf'
dockerdir: 'docker/storperf-master'
--- /dev/null
+import argparse
+import os
+
+from jinja2 import Environment
+
+DOCKER_COMPOSE_FILE = './docker-compose.yml'
+DOCKER_COMPOSE_TEMPLATE = """
+version: '2'
+services:
+ mongo:
+ image: mongo:3.2.1
+ container_name: opnfv-mongo
+ testapi:
+ image: opnfv/testapi:latest
+ container_name: opnfv-testapi
+ environment:
+ - mongodb_url=mongodb://mongo:27017/
+ - base_url={{ vars.base_url }}
+ ports:
+ - "{{ vars.testapi_port }}:8000"
+ links:
+ - mongo
+ reporting:
+ image: opnfv/reporting:latest
+ container_name: opnfv-reporting
+ ports:
+ - "{{ vars.reporting_port }}:8000"
+"""
+
+
+def render_docker_compose(testapi_port, reporting_port, testapi_base_url):
+ vars = {
+ "testapi_port": testapi_port,
+ "reporting_port": reporting_port,
+ "base_url": testapi_base_url,
+ }
+ yml = Environment().from_string(DOCKER_COMPOSE_TEMPLATE).render(vars=vars)
+ with open(DOCKER_COMPOSE_FILE, 'w') as f:
+ f.write(yml)
+ f.close()
+
+
+def main(args):
+ render_docker_compose(args.testapi_port,
+ args.reporting_port,
+ args.testapi_base_url)
+ os.system('docker-compose -f {} up -d'.format(DOCKER_COMPOSE_FILE))
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='Backup MongoDBs')
+ parser.add_argument('-tp', '--testapi-port',
+ type=int,
+ required=False,
+ default=8082,
+ help='testapi exposed port')
+ parser.add_argument('-tl', '--testapi-base-url',
+ type=str,
+ required=True,
+ help='testapi exposed base-url')
+ parser.add_argument('-rp', '--reporting-port',
+ type=int,
+ required=False,
+ default=8084,
+ help='reporting exposed port')
+
+ main(parser.parse_args())
### Functions related to checking.
function is_deploying() {
- xml=$(curl -m10 "https://build.opnfv.org/ci/job/${1}-automate-master/lastBuild/api/xml?depth=1")
+ xml=$(curl -m10 "https://build.opnfv.org/ci/job/${1}-automate-docker-deploy-master/lastBuild/api/xml?depth=1")
building=$(grep -oPm1 "(?<=<building>)[^<]+" <<< "$xml")
if [[ $building == "false" ]]
then
failed_modules=()
for module in "${modules[@]}"
do
- if is_deploying $module; then
- continue
- fi
if ! check_connectivity $module "${urls[$module]}"; then
- echo -e "$module failed"
- failed_modules+=($module)
+ if ! is_deploying $module; then
+ echo -e "$module failed"
+ failed_modules+=($module)
+ fi
fi
done
if [ ! -z "$failed_modules" ]; then
function start_container_fix() {
echo -e "Starting a container $module"
- sudo docker stop $module
- sudo docker start $module
+ sudo docker restart $module
sleep 5
if ! check_connectivity $module "${urls[$module]}"; then
echo -e "Starting an old container $module_old"
- sudo docker stop $module
- sudo docker start $module"_old"
+ sudo docker restart $module"_old"
sleep 5
fi
}
+++ /dev/null
-import argparse
-import os
-
-from jinja2 import Environment, FileSystemLoader
-
-env = Environment(loader=FileSystemLoader('./'))
-docker_compose_yml = './docker-compose.yml'
-docker_compose_template = './docker-compose.yml.template'
-
-
-def render_docker_compose(port, base_url):
- vars = {
- "expose_port": port,
- "base_url": base_url,
- }
- template = env.get_template(docker_compose_template)
- yml = template.render(vars=vars)
-
- with open(docker_compose_yml, 'w') as f:
- f.write(yml)
- f.close()
-
-
-def main(args):
- render_docker_compose(args.expose_port, args.base_url)
- os.system('docker-compose -f {} up -d'.format(docker_compose_yml))
-
-
-if __name__ == '__main__':
- parser = argparse.ArgumentParser(description='Backup MongoDBs')
- parser.add_argument('-p', '--expose-port',
- type=int,
- required=False,
- default=8000,
- help='testapi exposed port')
- parser.add_argument('-l', '--base-url',
- type=str,
- required=True,
- help='testapi exposed base-url')
- main(parser.parse_args())
+++ /dev/null
-version: '2'
-services:
- mongo:
- image: mongo:3.2.1
- container_name: opnfv-mongo
- testapi:
- image: opnfv/testapi:latest
- container_name: opnfv-testapi
- environment:
- - mongodb_url=mongodb://mongo:27017/
- - base_url={{ vars.base_url }}
- ports:
- - "{{ vars.expose_port }}:8000"
- links:
- - mongo
--- /dev/null
+import argparse
+import os
+
+from jinja2 import Environment
+
+DOCKER_COMPOSE_FILE = './docker-compose.yml'
+DOCKER_COMPOSE_TEMPLATE = """
+version: '2'
+services:
+ mongo:
+ image: mongo:3.2.1
+ container_name: opnfv-mongo
+ testapi:
+ image: opnfv/testapi:latest
+ container_name: opnfv-testapi
+ environment:
+ - mongodb_url=mongodb://mongo:27017/
+ - base_url={{ vars.testapi_base_url }}
+ ports:
+ - "{{ vars.testapi_port }}:8000"
+ links:
+ - mongo
+"""
+
+
+def render_docker_compose(testapi_port, testapi_base_url):
+ vars = {
+ "testapi_port": testapi_port,
+ "testapi_base_url": testapi_base_url,
+ }
+
+ yml = Environment().from_string(DOCKER_COMPOSE_TEMPLATE).render(vars=vars)
+
+ with open(DOCKER_COMPOSE_FILE, 'w') as f:
+ f.write(yml)
+ f.close()
+
+
+def main(args):
+ render_docker_compose(args.testapi_port, args.testapi_base_url)
+ os.system('docker-compose -f {} up -d'.format(DOCKER_COMPOSE_FILE))
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='Backup MongoDBs')
+ parser.add_argument('-tp', '--testapi-port',
+ type=int,
+ required=False,
+ default=8000,
+ help='testapi exposed port')
+ parser.add_argument('-tl', '--testapi-base-url',
+ type=str,
+ required=True,
+ help='testapi exposed base-url')
+ main(parser.parse_args())