summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jjb/apex/opnfv-apex.yml4
-rw-r--r--jjb/compass4nfv/compass4nfv.yml14
-rw-r--r--jjb/compass4nfv/opnfv-compass4nfv.yml4
-rw-r--r--jjb/fuel/opnfv-fuel.yml4
-rw-r--r--jjb/functest/functest.yml18
-rw-r--r--jjb/joid/joid-deploy.sh24
-rw-r--r--jjb/joid/joid.yml122
-rw-r--r--jjb/opnfv/installer-params.yml48
-rw-r--r--jjb/opnfv/pod-params.yml15
-rw-r--r--jjb/vswitchperf/vswitchperf.yml67
-rwxr-xr-xutils/docs-build.sh35
11 files changed, 243 insertions, 112 deletions
diff --git a/jjb/apex/opnfv-apex.yml b/jjb/apex/opnfv-apex.yml
index de2947cec..5240bbabb 100644
--- a/jjb/apex/opnfv-apex.yml
+++ b/jjb/apex/opnfv-apex.yml
@@ -80,5 +80,5 @@
builders:
- shell: |
#!/bin/bash
- echo "Hello World from OPNFV $INSTALLER_NAME"
- echo "Running $INSTALLER_NAME with controller $CONTROLLER"
+ echo "Hello World from OPNFV $INSTALLER_TYPE"
+ echo "Running $INSTALLER_TYPE with controller $CONTROLLER"
diff --git a/jjb/compass4nfv/compass4nfv.yml b/jjb/compass4nfv/compass4nfv.yml
index 952a01b37..3645bbba3 100644
--- a/jjb/compass4nfv/compass4nfv.yml
+++ b/jjb/compass4nfv/compass4nfv.yml
@@ -316,12 +316,12 @@
name: PPA_CACHE
default: "$WORKSPACE/work/repo/"
- choice:
- name: COMPASS-OPENSTACK-VERSION
+ name: COMPASS_OPENSTACK_VERSION
choices:
- 'liberty'
- 'juno'
- choice:
- name: COMPASS-OS-VERSION
+ name: COMPASS_OS_VERSION
choices:
- 'ubuntu-trusty'
- 'rhel7'
@@ -415,6 +415,8 @@
export EXTERNAL_NIC=vnic_ci
cd $WORKSPACE
+ export OS_VERSION=${COMPASS_OS_VERSION}
+ export OPENSTACK_VERSION=${COMPASS_OPENSTACK_VERSION}
./deploy.sh $FLAVOR_CONF
if [ $? -ne 0 ]; then
echo "depolyment failed!"
@@ -426,7 +428,7 @@
echo "Done!"
ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
- sshpass -p root scp 2>/dev/null $ssh_options root@${installer_ip}:/var/ansible/run/openstack_${COMPASS-OPENSTACK-VERSION}-opnfv2/ansible.log ./ &> /dev/null
+ sshpass -p root scp 2>/dev/null $ssh_options root@${installer_ip}:/var/ansible/run/openstack_${COMPASS_OPENSTACK_VERSION}-opnfv2/ansible.log ./ &> /dev/null
exit $deploy_ret
@@ -449,8 +451,8 @@
cd $WORKSPACE
- export OS_VERSION=${COMPASS-OS-VERSION}
- export OPENSTACK_VERSION=${COMPASS-OPENSTACK-VERSION}
+ export OS_VERSION=${COMPASS_OS_VERSION}
+ export OPENSTACK_VERSION=${COMPASS_OPENSTACK_VERSION}
./deploy.sh --dha $CONFDIR/dha.yml --network $CONFDIR/network.yml
if [ $? -ne 0 ]; then
echo "depolyment failed!"
@@ -462,7 +464,7 @@
echo "Done!"
ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
- sshpass -p root scp 2>/dev/null $ssh_options root@${installer_ip}:/var/ansible/run/openstack_${COMPASS-OPENSTACK-VERSION}-opnfv2/ansible.log ./ &> /dev/null
+ sshpass -p root scp 2>/dev/null $ssh_options root@${installer_ip}:/var/ansible/run/openstack_${COMPASS_OPENSTACK_VERSION}-opnfv2/ansible.log ./ &> /dev/null
exit $deploy_ret
diff --git a/jjb/compass4nfv/opnfv-compass4nfv.yml b/jjb/compass4nfv/opnfv-compass4nfv.yml
index c647abcf8..288c7abe6 100644
--- a/jjb/compass4nfv/opnfv-compass4nfv.yml
+++ b/jjb/compass4nfv/opnfv-compass4nfv.yml
@@ -80,5 +80,5 @@
builders:
- shell: |
#!/bin/bash
- echo "Hello World from OPNFV $INSTALLER_NAME"
- echo "Running $INSTALLER_NAME with controller $CONTROLLER"
+ echo "Hello World from OPNFV $INSTALLER_TYPE"
+ echo "Running $INSTALLER_TYPE with controller $CONTROLLER"
diff --git a/jjb/fuel/opnfv-fuel.yml b/jjb/fuel/opnfv-fuel.yml
index a0fbce26b..393f919d0 100644
--- a/jjb/fuel/opnfv-fuel.yml
+++ b/jjb/fuel/opnfv-fuel.yml
@@ -120,5 +120,5 @@
builders:
- shell: |
#!/bin/bash
- echo "Hello World from OPNFV $INSTALLER_NAME"
- echo "Running $INSTALLER_NAME with controller $CONTROLLER"
+ echo "Hello World from OPNFV $INSTALLER_TYPE"
+ echo "Running $INSTALLER_TYPE with controller $CONTROLLER"
diff --git a/jjb/functest/functest.yml b/jjb/functest/functest.yml
index 1a9ba6239..155bbcfdf 100644
--- a/jjb/functest/functest.yml
+++ b/jjb/functest/functest.yml
@@ -190,26 +190,30 @@
- shell: |
#!/bin/bash
set +e
+ # labconfig is used only for joid
+ labconfig=""
if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
INSTALLER_IP=$(grep instack /var/lib/libvirt/dnsmasq/default.leases \
|awk '{print $3}' | head -n 1)
sshkey="-v /root/.ssh/id_rsa:/root/.ssh/id_rsa"
sudo iptables -D FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
sudo iptables -D FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
+ elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then
+ # If production lab then creds may be retrieved dynamically
+ # creds are on the jumphost, always in the same folder
+ labconfig="-v ${HOME}/joid_config/admin-openrc:/home/opnfv/functest/conf/openstack.creds"
+ # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
+ # replace the default one by the customized one provided by jenkins config
+ if [ -n "${LAB_CONFIG}" ]; then
+ labconfig="-v ${LAB_CONFIG}:/home/opnfv/functest/conf/openstack.creds"
+ fi
fi
echo "Functest: Start Docker and prepare environment"
envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}"
- labconfig=""
- # If production lab then creds may be retrieved dynamically
- # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
- if [ -n "${LAB_CONFIG}" ]; then
- labconfig="-v ${LAB_CONFIG}:/home/opnfv/functest/conf/openstack.creds"
- fi
dir_result="${HOME}/opnfv/functest/reports"
mkdir -f ${dir_result}
rm -rf ${dir_result}/*
-
$res_volume="-v ${dir_result}:/home/opnfv/functest/results"
docker pull opnfv/functest:latest_stable
diff --git a/jjb/joid/joid-deploy.sh b/jjb/joid/joid-deploy.sh
index d9ce86eb4..b7bc32df2 100644
--- a/jjb/joid/joid-deploy.sh
+++ b/jjb/joid/joid-deploy.sh
@@ -2,10 +2,12 @@
set +e
set -o nounset
+JOID_LOCAL_CONFIG_FOLDER=$HOME/joid_config
+JOID_ADMIN_OPENRC=$JOID_LOCAL_CONFIG_FOLDER/admin-openrc
+
####### Temporary - to be done with jenkins params #####
JOID_MODE=ha
JOID_RELEASE=liberty
-JOID_LOCAL_CONFIG_FOLDER=~/joid_config
JOID_SDN_CONTROLLER=odl
#################
@@ -33,7 +35,6 @@ else
export OS_ADMIN_PASSWORD=openstack
export CEPH_DISKS=/srv
export CEPH_REFORMAT=no
- export JOID_ADMIN_OPENRC=$WORKSPACE/admin_openrc.sh
fi
##
@@ -47,8 +48,8 @@ if [ -e "$JOID_LOCAL_CONFIG_FOLDER/environments.yaml" ] && [ "$MAAS_REINSTALL" =
else
MAASCONFIG=$WORKSPACE/ci/maas/$POD_DC/$POD_NUM/deployment.yaml
echo "------ Set MAAS password ------"
- sed -i -- 's/user: ubuntu/user: $MAAS_USER/' $MAASCONFIG
- sed -i -- 's/password: ubuntu/password: $MAAS_PASSWORD/' $MAASCONFIG
+ sed -i -- "s/user: ubuntu/user: $MAAS_USER/" $MAASCONFIG
+ sed -i -- "s/password: ubuntu/password: $MAAS_PASSWORD/" $MAASCONFIG
echo "------ Redeploy MAAS ------"
./02-maasdeploy.sh $POD_NAME
fi
@@ -86,9 +87,16 @@ echo "Execute: ./deploy.sh -t $JOID_MODE -o $JOID_RELEASE -s $JOID_SDN_CONTROLLE
## Set Admin RC
##
-echo "------ Create OpenRC file ------"
-KEYSTONE=$(cat bundle.yaml |shyaml get-value openstack-phase2.services.keystone.options.vip)
+echo "------ Create OpenRC file [$JOID_ADMIN_OPENRC] ------"
+KEYSTONE=$(cat bundles.yaml |shyaml get-value openstack-phase2.services.keystone.options.vip)
+
+# create the folder if needed
+JOID_ADMIN_OPENRC_FOLDER=$(echo $JOID_ADMIN_OPENRC | perl -pe "s|^(.*/).*?$|\1|")
+if [ ! -d "$JOID_ADMIN_OPENRC_FOLDER" ]; then
+ mkdir -p $JOID_ADMIN_OPENRC_FOLDER
+fi
+# export the openrc file
cat << EOF > $JOID_ADMIN_OPENRC
export OS_USERNAME=admin
export OS_PASSWORD=$OS_ADMIN_PASSWORD
@@ -97,6 +105,10 @@ export OS_AUTH_URL=http://$KEYSTONE:5000/v2.0
export OS_REGION_NAME=Canonical
EOF
+##
+## Backup local juju env
+##
+
if [ -d "$JOID_LOCAL_CONFIG_FOLDER" ]; then
echo "------ Backup Juju environment ------"
cp environments.yaml $JOID_LOCAL_CONFIG_FOLDER/
diff --git a/jjb/joid/joid.yml b/jjb/joid/joid.yml
index fdeddc680..90b3df682 100644
--- a/jjb/joid/joid.yml
+++ b/jjb/joid/joid.yml
@@ -5,39 +5,60 @@
name: 'joid'
+ project: '{name}'
+
installer: 'joid'
- controller: 'odl'
+ 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: 'master'
+ branch: '{stream}'
gs-pathname: ''
+# - brahmaputra:
+# branch: 'stable/{stream}'
+# gs-pathname: '{stream}'
jobs:
- - 'joid-{controller}-{pod}-daily-{stream}'
+ - 'joid-{sdn-controller}-{pod}-daily-{stream}'
- 'joid-deploy-{pod}-daily-{stream}'
########################
# job templates
########################
- job-template:
- name: 'joid-{controller}-{pod}-daily-{stream}'
+ name: 'joid-{sdn-controller}-{pod}-daily-{stream}'
- disabled: false
+ project-type: multijob
+
+ disabled: '{obj:disabled}'
concurrent: false
parameters:
- project-parameter:
- project: '{installer}'
- - 'intel-us-build-1-defaults'
- - '{installer}-defaults':
- controller: '{controller}'
+ project: '{project}'
+ - '{pod}-defaults'
+ - '{installer}-defaults'
+ - string:
+ name: SDN_CONTROLLER
+ default: '{sdn-controller}'
+ - string:
+ name: OPNFV_FEATURE
+ default: 'none'
scm:
- git-scm:
@@ -46,12 +67,9 @@
branch: '{branch}'
builders:
- - trigger-builds:
- - project: 'joid-deploy-{pod}-daily-{stream}'
- git-revision: true
- block: true
- predefined-parameters:
- CONTROLLER={controller}
+ - '{installer}-multijob-{pod}-builder':
+ pod: '{pod}'
+ stream: '{stream}'
- job-template:
name: 'joid-deploy-{pod}-daily-{stream}'
@@ -62,14 +80,13 @@
wrappers:
- build-name:
- name: '$BUILD_NUMBER: {installer} $CONTROLLER'
+ name: '$BUILD_NUMBER: $INSTALLER_TYPE $SDN_CONTROLLER'
parameters:
- project-parameter:
- project: '{installer}'
+ project: '{project}'
- '{pod}-defaults'
- - '{installer}-defaults':
- controller: '{controller}'
+ - '{installer}-defaults'
scm:
- git-scm:
@@ -81,6 +98,58 @@
- '{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:
@@ -88,26 +157,25 @@
builders:
- shell: |
#!/bin/bash
- echo "Running $INSTALLER_NAME with controller $CONTROLLER"
+ 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
- - shell: |
- cd $WORKSPACE/ci
+ echo
echo "Executing 02-maasdeploy.sh intelpod5"
./02-maasdeploy.sh intelpod5
- - shell: |
- cd $WORKSPACE/ci
- echo "Executing deploy.sh -o liberty -s $CONTROLLER -t ha -l intelpod5"
- ./deploy.sh -o liberty -s $CONTROLLER -t ha -l 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_NAME with controller $CONTROLLER"
+ echo "Running $INSTALLER_TYPE with controller $SDN_CONTROLLER"
echo "Please note that this is WIP generic builder"
echo
echo "Executing clean.sh"
diff --git a/jjb/opnfv/installer-params.yml b/jjb/opnfv/installer-params.yml
index 8e1cf9e7a..72c1c71a3 100644
--- a/jjb/opnfv/installer-params.yml
+++ b/jjb/opnfv/installer-params.yml
@@ -6,13 +6,17 @@
default: '192.168.X.X'
description: 'IP of the installer'
- string:
- name: INSTALLER_NAME
+ name: INSTALLER_TYPE
default: apex
description: 'Installer used for deploying OPNFV on this POD'
- string:
- name: INSTALLER_TYPE
- default: $INSTALLER_NAME
- description: 'Installer used for deploying OPNFV on this POD'
+ name: SDN_CONTROLLER
+ default: 'nosdn'
+ description: 'SDN Controller to use'
+ - string:
+ name: OPNFV_FEATURE
+ default: 'none'
+ description: 'OPNFV Feature to activate'
- parameter:
name: 'compass-defaults'
@@ -22,13 +26,17 @@
default: '192.168.200.2'
description: 'IP of the installer'
- string:
- name: INSTALLER_NAME
- default: compass4nfv
- description: 'Installer used for deploying OPNFV on this POD'
- - string:
name: INSTALLER_TYPE
- default: $INSTALLER_NAME
+ default: compass
description: 'Installer used for deploying OPNFV on this POD'
+ - string:
+ name: SDN_CONTROLLER
+ default: 'nosdn'
+ description: 'SDN Controller to use'
+ - string:
+ name: OPNFV_FEATURE
+ default: 'none'
+ description: 'OPNFV Feature to activate'
- parameter:
name: 'fuel-defaults'
@@ -38,9 +46,17 @@
default: '10.20.0.2'
description: 'IP of the installer'
- string:
- name: INSTALLER_NAME
+ name: INSTALLER_TYPE
default: fuel
description: 'Installer used for deploying OPNFV on this POD'
+ - string:
+ name: SDN_CONTROLLER
+ default: 'nosdn'
+ description: 'SDN Controller to use'
+ - string:
+ name: OPNFV_FEATURE
+ default: 'none'
+ description: 'OPNFV Feature to activate'
- parameter:
name: 'joid-defaults'
@@ -50,10 +66,14 @@
default: '192.168.Y.Y'
description: 'IP of the installer'
- string:
- name: INSTALLER_NAME
+ name: INSTALLER_TYPE
default: joid
description: 'Installer used for deploying OPNFV on this POD'
- string:
- name: INSTALLER_TYPE
- default: $INSTALLER_NAME
- description: 'Installer used for deploying OPNFV on this POD'
+ name: SDN_CONTROLLER
+ default: 'nosdn'
+ description: 'SDN Controller to use'
+ - string:
+ name: OPNFV_FEATURE
+ default: 'none'
+ description: 'OPNFV Feature to activate'
diff --git a/jjb/opnfv/pod-params.yml b/jjb/opnfv/pod-params.yml
index bb5e529b7..e36a0b684 100644
--- a/jjb/opnfv/pod-params.yml
+++ b/jjb/opnfv/pod-params.yml
@@ -102,6 +102,21 @@
description: 'SSH key to use for Apex'
- parameter:
+ name: 'intel-pod3-defaults'
+ parameters:
+ - node:
+ name: SLAVE_NAME
+ description: 'Slave name on Jenkins'
+ allowed-slaves:
+ - intel-pod3
+ default-slaves:
+ - intel-pod3
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on the jumphost'
+
+- parameter:
name: 'intel-pod5-defaults'
parameters:
- node:
diff --git a/jjb/vswitchperf/vswitchperf.yml b/jjb/vswitchperf/vswitchperf.yml
index b4bc70f84..a06507a14 100644
--- a/jjb/vswitchperf/vswitchperf.yml
+++ b/jjb/vswitchperf/vswitchperf.yml
@@ -1,37 +1,31 @@
- project:
+
name: vswitchperf
+
+ project: '{name}'
+
jobs:
- - 'vswitchperf-daily-{stream}'
- - 'vswitchperf-merge-{stream}'
- 'vswitchperf-verify-{stream}'
+ - 'vswitchperf-merge-{stream}'
+ - 'vswitchperf-daily-{stream}'
- # stream: branch with - in place of / (eg. stable-helium)
- # branch: branch (eg. stable/helium)
+# only master branch is enabled at the moment to keep no of jobs sane
stream:
- master:
branch: 'master'
-
- project: 'vswitchperf'
- somevar: 'foo'
+ gs-pathname: ''
+# - brahmaputra:
+# branch: 'stable/brahmaputra'
+# gs-pathname: '/brahmaputra'
- job-template:
- name: 'vswitchperf-daily-{stream}'
- # Job template for daily builders
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
- # branch: branch (eg. stable)
-
- varsetabove: '{somevar}'
- node: opnfv-build
+ name: 'vswitchperf-daily-{stream}'
parameters:
- project-parameter:
project: '{project}'
- - string:
- name: GIT_BASE
- default: https://gerrit.opnfv.org/gerrit/vswitchperf
+ - 'intel-pod3-defaults'
scm:
- git-scm:
@@ -42,9 +36,6 @@
triggers:
- timed: 'H H * * *'
- prebuilders:
- - test-macro
-
builders:
- shell: |
pwd
@@ -54,16 +45,11 @@
# run basic sanity test
make sanity
- postbuilders:
- - test-macro
-
- job-template:
name: 'vswitchperf-verify-{stream}'
project-type: freestyle
- node: opnfv-build
-
concurrent: true
properties:
@@ -76,10 +62,9 @@
- project-parameter:
project: '{project}'
- gerrit-parameter:
- branch: 'master'
- - string:
- name: GIT_BASE
- default: https://gerrit.opnfv.org/gerrit/vswitchperf
+ branch: '{branch}'
+ - 'opnfv-build-defaults'
+
scm:
- gerrit-trigger-scm:
credentials-id: '{ssh-credentials}'
@@ -100,10 +85,10 @@
comment-contains-value: 'reverify'
projects:
- project-compare-type: 'ANT'
- project-pattern: 'vswitchperf'
+ project-pattern: '{project}'
branches:
- branch-compare-type: 'ANT'
- branch-pattern: '**/master'
+ branch-pattern: '**/{branch}'
forbidden-file-paths:
- compare-type: ANT
pattern: 'docs/**'
@@ -120,14 +105,8 @@
- job-template:
name: 'vswitchperf-merge-{stream}'
- # builder-merge job to run JJB update
- #
- # This job's purpose is to update all the JJB
-
project-type: freestyle
- node: opnfv-build
-
concurrent: true
properties:
@@ -140,10 +119,8 @@
- project-parameter:
project: '{project}'
- gerrit-parameter:
- branch: 'master'
- - string:
- name: GIT_BASE
- default: https://gerrit.opnfv.org/gerrit/vswitchperf
+ branch: '{branch}'
+ - 'opnfv-build-defaults'
scm:
- gerrit-trigger-scm:
@@ -159,10 +136,10 @@
comment-contains-value: 'remerge'
projects:
- project-compare-type: 'ANT'
- project-pattern: 'vswitchperf'
+ project-pattern: '{project}'
branches:
- branch-compare-type: 'ANT'
- branch-pattern: '**/master'
+ branch-pattern: '**/{branch}'
forbidden-file-paths:
- compare-type: ANT
pattern: 'docs/**'
diff --git a/utils/docs-build.sh b/utils/docs-build.sh
index 5ac8b2be6..fc607fa15 100755
--- a/utils/docs-build.sh
+++ b/utils/docs-build.sh
@@ -84,6 +84,34 @@ function add_config() {
fi
}
+function is_top_dir() {
+ [[ "$1" == "$SRC_DIR" ]]
+}
+
+function generate_name_for_top_dir() {
+ for suffix in '' '.top' '.all' '.master' '_' '__' '___'
+ do
+ _name="$(basename $SRC_DIR)$suffix"
+ [[ -e "$SRC_DIR/$_name" ]] && continue
+ echo "$_name"
+ return
+ done
+
+ echo "Error: cannot find name for top directory [$SRC_DIR]"
+ exit 1
+}
+
+function generate_name() {
+ _dir=$1
+
+ if is_top_dir "$_dir" ; then
+ _name=$(generate_name_for_top_dir $SRC_DIR)
+ else
+ _name="${_dir#$SRC_DIR/}"
+ fi
+ # Replace '/' by '_'
+ echo "${_name////_}"
+}
check_rst_doc $SRC_DIR
@@ -94,7 +122,7 @@ fi
find $SRC_DIR -name $INDEX_RST -printf '%h\n' | while read dir
do
- name="${dir##*/}"
+ name=$(generate_name $dir)
src="$BUILD_DIR/src/$name"
build="$BUILD_DIR/$name"
output="$OUTPUT_DIR/$name"
@@ -143,4 +171,9 @@ do
[[ -n "$GERRIT_COMMENT" ]] && echo "$msg" >> "$GERRIT_COMMENT"
}
+ if is_top_dir "$dir" ; then
+ mv "$output"/* "$OUTPUT_DIR"/
+ rm -rf "$output"
+ fi
+
done