summaryrefslogtreecommitdiffstats
path: root/jjb/apex
diff options
context:
space:
mode:
Diffstat (limited to 'jjb/apex')
-rwxr-xr-xjjb/apex/apex-build.sh6
-rwxr-xr-xjjb/apex/apex-deploy.sh33
-rw-r--r--jjb/apex/apex-project-jobs.yml127
-rwxr-xr-xjjb/apex/apex-unit-test.sh21
-rw-r--r--jjb/apex/apex.yml119
-rw-r--r--jjb/apex/apex.yml.j2119
6 files changed, 170 insertions, 255 deletions
diff --git a/jjb/apex/apex-build.sh b/jjb/apex/apex-build.sh
index 58d9f1a40..ad94ba3d7 100755
--- a/jjb/apex/apex-build.sh
+++ b/jjb/apex/apex-build.sh
@@ -28,8 +28,10 @@ fi
BUILD_DIRECTORY=${WORKSPACE}/build
# start the build
-cd $WORKSPACE/ci
-./build.sh $BUILD_ARGS
+pushd ${BUILD_DIRECTORY}
+make clean
+popd
+python3 apex/build.py $BUILD_ARGS
RPM_VERSION=$(grep Version: $WORKSPACE/build/rpm_specs/opnfv-apex.spec | awk '{ print $2 }')-$(echo $OPNFV_ARTIFACT_VERSION | tr -d '_-')
# list the contents of BUILD_OUTPUT directory
echo "Build Directory is ${BUILD_DIRECTORY}/../.build"
diff --git a/jjb/apex/apex-deploy.sh b/jjb/apex/apex-deploy.sh
index ce9544b28..a47e3a5db 100755
--- a/jjb/apex/apex-deploy.sh
+++ b/jjb/apex/apex-deploy.sh
@@ -37,7 +37,7 @@ if [[ "$ARTIFACT_VERSION" =~ dev ]]; then
# Settings for deploying from git workspace
DEPLOY_SETTINGS_DIR="${WORKSPACE}/config/deploy"
NETWORK_SETTINGS_DIR="${WORKSPACE}/config/network"
- DEPLOY_CMD="${WORKSPACE}/ci/deploy.sh"
+ DEPLOY_CMD="opnfv-deploy --image-dir ${WORKSPACE}/.build"
CLEAN_CMD="${WORKSPACE}/ci/clean.sh"
RESOURCES="${WORKSPACE}/.build/"
CONFIG="${WORKSPACE}/build"
@@ -48,6 +48,11 @@ if [[ "$ARTIFACT_VERSION" =~ dev ]]; then
# Ensure artifacts were downloaded and extracted correctly
# TODO(trozet) add verification here
+ # Install dev build
+ mkdir -p ~/tmp
+ mv -f .build ~/tmp/
+ sudo pip3 install --upgrade --force-reinstall .
+ mv -f ~/tmp/.build .
else
DEPLOY_SETTINGS_DIR="/etc/opnfv-apex/"
NETWORK_SETTINGS_DIR="/etc/opnfv-apex/"
@@ -65,7 +70,10 @@ fi
# Install Dependencies
# Make sure python34 dependencies are installed
-for dep_pkg in epel-release python34 python34-PyYAML python34-setuptools; do
+dependencies="epel-release python34 python34-devel libvirt-devel python34-pip \
+ansible python34-PyYAML python34-jinja2 python34-setuptools python-tox ansible"
+
+for dep_pkg in $dependencies; do
if ! rpm -q ${dep_pkg} > /dev/null; then
if ! sudo yum install -y ${dep_pkg}; then
echo "Failed to install ${dep_pkg}"
@@ -74,31 +82,12 @@ for dep_pkg in epel-release python34 python34-PyYAML python34-setuptools; do
fi
done
-# Make sure jinja2 is installed
-for python_pkg in jinja2; do
- if ! python3.4 -c "import $python_pkg"; then
- echo "$python_pkg package not found for python3.4, attempting to install..."
- if ! sudo easy_install-3.4 $python_pkg; then
- echo -e "Failed to install $python_pkg package for python3.4"
- exit 1
- fi
- fi
-done
-
if [[ "$JOB_NAME" =~ "virtual" ]]; then
# Make sure ipxe-roms-qemu package is updated to latest.
# This package is needed for multi virtio nic PXE boot in virtual environment.
sudo yum update -y ipxe-roms-qemu
- if [ -z ${PYTHONPATH:-} ]; then
- export PYTHONPATH=${WORKSPACE}/lib/python
- else
- export PYTHONPATH=$PYTHONPATH:${WORKSPACE}/lib/python
- fi
fi
-# set env vars to deploy cmd
-DEPLOY_CMD="BASE=${BASE} IMAGES=${IMAGES} LIB=${LIB} ${DEPLOY_CMD}"
-
if [ "$OPNFV_CLEAN" == 'yes' ]; then
if sudo test -e '/root/inventory/pod_settings.yaml'; then
clean_opts='-i /root/inventory/pod_settings.yaml'
@@ -106,7 +95,7 @@ if [ "$OPNFV_CLEAN" == 'yes' ]; then
clean_opts=''
fi
- sudo BASE=${BASE} LIB=${LIB} ${CLEAN_CMD} ${clean_opts}
+ sudo ${CLEAN_CMD} ${clean_opts}
fi
if echo ${DEPLOY_SCENARIO} | grep ipv6; then
diff --git a/jjb/apex/apex-project-jobs.yml b/jjb/apex/apex-project-jobs.yml
new file mode 100644
index 000000000..973ad913a
--- /dev/null
+++ b/jjb/apex/apex-project-jobs.yml
@@ -0,0 +1,127 @@
+---
+- project:
+ name: 'apex-project-jobs'
+ project: 'apex'
+
+ stream:
+ - master: &master
+ branch: 'master'
+ gs-pathname: ''
+ concurrent-builds: 3
+ disabled: false
+
+ - danube: &danube
+ branch: 'stable/danube'
+ gs-pathname: '/danube'
+ concurrent-builds: 1
+ disabled: true
+
+ jobs:
+ - 'apex-build-{stream}'
+ - 'apex-verify-iso-{stream}'
+
+# Build phase
+- job-template:
+ name: 'apex-build-{stream}'
+
+ # Job template for builds
+ #
+ # Required Variables:
+ # stream: branch with - in place of / (eg. stable)
+ # branch: branch (eg. stable)
+ node: 'apex-build-{stream}'
+
+ disabled: false
+
+ concurrent: true
+
+ parameters:
+ - '{project}-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - apex-parameter:
+ gs-pathname: '{gs-pathname}'
+
+ scm:
+ - git-scm-gerrit
+
+ wrappers:
+ - timeout:
+ timeout: 150
+ fail: true
+
+ properties:
+ - logrotate-default
+ - throttle:
+ max-per-node: '{concurrent-builds}'
+ max-total: 10
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ block-level: 'NODE'
+ blocking-jobs:
+ - 'apex-verify-iso-{stream}'
+
+ builders:
+ - 'apex-build'
+ - inject:
+ properties-content: ARTIFACT_TYPE=rpm
+ - 'apex-upload-artifact'
+
+# ISO verify job
+- job-template:
+ name: 'apex-verify-iso-{stream}'
+
+ # Job template for builds
+ #
+ # Required Variables:
+ # stream: branch with - in place of / (eg. stable)
+ # branch: branch (eg. stable)
+ node: 'apex-virtual-{stream}'
+
+ disabled: false
+
+ concurrent: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - apex-parameter:
+ gs-pathname: '{gs-pathname}'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: "Used for overriding the GIT URL coming from parameters macro."
+
+ scm:
+ - git-scm
+
+ properties:
+ - logrotate-default
+ - throttle:
+ max-per-node: 1
+ max-total: 10
+ option: 'project'
+
+ builders:
+ - 'apex-iso-verify'
+ - inject:
+ properties-content: ARTIFACT_TYPE=iso
+ - 'apex-upload-artifact'
+
+########################
+# builder macros
+########################
+- builder:
+ name: 'apex-build'
+ builders:
+ - shell:
+ !include-raw: ./apex-build.sh
+
+- builder:
+ name: 'apex-iso-verify'
+ builders:
+ - shell:
+ !include-raw: ./apex-iso-verify.sh
diff --git a/jjb/apex/apex-unit-test.sh b/jjb/apex/apex-unit-test.sh
index abcddcab4..3112c9d36 100755
--- a/jjb/apex/apex-unit-test.sh
+++ b/jjb/apex/apex-unit-test.sh
@@ -8,9 +8,24 @@ echo "--------------------------------------------------------------------------
echo
-pushd ci/ > /dev/null
-./test.sh
-popd
+pushd build/ > /dev/null
+for pkg in yamllint rpmlint iproute epel-release python34-devel python34-nose python34-PyYAML python-pep8 python34-mock python34-pip; do
+ if ! rpm -q ${pkg} > /dev/null; then
+ if ! sudo yum install -y ${pkg}; then
+ echo "Failed to install ${pkg} package..."
+ exit 1
+ fi
+ fi
+done
+
+# Make sure coverage is installed
+if ! python3 -c "import coverage" &> /dev/null; then sudo pip3 install coverage; fi
+
+make rpmlint
+make python-pep8-check
+make yamllint
+make python-tests
+popd > /dev/null
echo "--------------------------------------------------------"
echo "Unit Tests Done!"
diff --git a/jjb/apex/apex.yml b/jjb/apex/apex.yml
index aeea1c9fb..9ccf8e39d 100644
--- a/jjb/apex/apex.yml
+++ b/jjb/apex/apex.yml
@@ -6,13 +6,11 @@
- 'apex-verify-gate-{stream}'
- 'apex-verify-unit-tests-{stream}'
- 'apex-runner-cperf-{stream}'
- - 'apex-build-{stream}'
- 'apex-deploy-{platform}-{stream}'
- 'apex-daily-master'
- 'apex-daily-danube'
- 'apex-csit-promote-daily-{stream}'
- 'apex-fdio-promote-daily-{stream}'
- - 'apex-verify-iso-{stream}'
- 'apex-{scenario}-baremetal-{scenario_stream}'
- 'apex-testsuite-{scenario}-baremetal-{scenario_stream}'
- 'apex-upload-snapshot'
@@ -27,7 +25,6 @@
virtual-slave: 'apex-virtual-master'
baremetal-slave: 'apex-baremetal-master'
verify-scenario: 'os-odl-nofeature-ha'
- concurrent-builds: 3
scenario_stream: 'master'
- danube: &danube
@@ -37,7 +34,6 @@
virtual-slave: 'apex-virtual-danube'
baremetal-slave: 'apex-baremetal-danube'
verify-scenario: 'os-odl_l3-nofeature-ha'
- concurrent-builds: 1
scenario_stream: 'danube'
disabled: true
@@ -234,17 +230,15 @@
branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
+ disable-strict-forbidden-file-verification: 'true'
file-paths:
- compare-type: ANT
- pattern: 'ci/**'
- - compare-type: ANT
- pattern: 'build/**'
+ pattern: '**'
+ forbidden-file-paths:
- compare-type: ANT
- pattern: 'lib/**'
- - compare-type: ANT
- pattern: 'config/**'
+ pattern: 'apex/tests/**'
- compare-type: ANT
- pattern: 'apex/**'
+ pattern: 'docs/**'
properties:
- logrotate-default
@@ -500,97 +494,6 @@
abort-all-job: false
git-revision: false
-# Build phase
-- job-template:
- name: 'apex-build-{stream}'
-
- # Job template for builds
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
- # branch: branch (eg. stable)
- node: '{build-slave}'
-
- disabled: false
-
- concurrent: true
-
- parameters:
- - '{project}-defaults'
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - apex-parameter:
- gs-pathname: '{gs-pathname}'
-
- scm:
- - git-scm-gerrit
-
- wrappers:
- - timeout:
- timeout: 150
- fail: true
-
- properties:
- - logrotate-default
- - throttle:
- max-per-node: {concurrent-builds}
- max-total: 10
- option: 'project'
- - build-blocker:
- use-build-blocker: true
- block-level: 'NODE'
- blocking-jobs:
- - 'apex-verify-iso-{stream}'
-
- builders:
- - 'apex-build'
- - inject:
- properties-content: ARTIFACT_TYPE=rpm
- - 'apex-upload-artifact'
-
-# ISO verify job
-- job-template:
- name: 'apex-verify-iso-{stream}'
-
- # Job template for builds
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
- # branch: branch (eg. stable)
- node: '{virtual-slave}'
-
- disabled: false
-
- concurrent: true
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - apex-parameter:
- gs-pathname: '{gs-pathname}'
- - string:
- name: GIT_BASE
- default: https://gerrit.opnfv.org/gerrit/$PROJECT
- description: "Used for overriding the GIT URL coming from parameters macro."
-
- scm:
- - git-scm
-
- properties:
- - logrotate-default
- - throttle:
- max-per-node: 1
- max-total: 10
- option: 'project'
-
- builders:
- - 'apex-iso-verify'
- - inject:
- properties-content: ARTIFACT_TYPE=iso
- - 'apex-upload-artifact'
-
# Deploy job
- job-template:
name: 'apex-deploy-{platform}-{stream}'
@@ -1671,23 +1574,11 @@
!include-raw: ./apex-unit-test.sh
- builder:
- name: 'apex-build'
- builders:
- - shell:
- !include-raw: ./apex-build.sh
-
-- builder:
name: 'apex-workspace-cleanup'
builders:
- shell:
!include-raw: ./apex-workspace-cleanup.sh
-- builder:
- name: 'apex-iso-verify'
- builders:
- - shell:
- !include-raw: ./apex-iso-verify.sh
-
- builder:
name: 'apex-upload-artifact'
diff --git a/jjb/apex/apex.yml.j2 b/jjb/apex/apex.yml.j2
index 0d446dcd7..c878fe6af 100644
--- a/jjb/apex/apex.yml.j2
+++ b/jjb/apex/apex.yml.j2
@@ -6,13 +6,11 @@
- 'apex-verify-gate-{stream}'
- 'apex-verify-unit-tests-{stream}'
- 'apex-runner-cperf-{stream}'
- - 'apex-build-{stream}'
- 'apex-deploy-{platform}-{stream}'
- 'apex-daily-master'
- 'apex-daily-danube'
- 'apex-csit-promote-daily-{stream}'
- 'apex-fdio-promote-daily-{stream}'
- - 'apex-verify-iso-{stream}'
- 'apex-{scenario}-baremetal-{scenario_stream}'
- 'apex-testsuite-{scenario}-baremetal-{scenario_stream}'
- 'apex-upload-snapshot'
@@ -27,7 +25,6 @@
virtual-slave: 'apex-virtual-master'
baremetal-slave: 'apex-baremetal-master'
verify-scenario: 'os-odl-nofeature-ha'
- concurrent-builds: 3
scenario_stream: 'master'
- danube: &danube
@@ -37,7 +34,6 @@
virtual-slave: 'apex-virtual-danube'
baremetal-slave: 'apex-baremetal-danube'
verify-scenario: 'os-odl_l3-nofeature-ha'
- concurrent-builds: 1
scenario_stream: 'danube'
disabled: true
@@ -146,17 +142,15 @@
branches:
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
+ disable-strict-forbidden-file-verification: 'true'
file-paths:
- compare-type: ANT
- pattern: 'ci/**'
- - compare-type: ANT
- pattern: 'build/**'
+ pattern: '**'
+ forbidden-file-paths:
- compare-type: ANT
- pattern: 'lib/**'
- - compare-type: ANT
- pattern: 'config/**'
+ pattern: 'apex/tests/**'
- compare-type: ANT
- pattern: 'apex/**'
+ pattern: 'docs/**'
properties:
- logrotate-default
@@ -412,97 +406,6 @@
abort-all-job: false
git-revision: false
-# Build phase
-- job-template:
- name: 'apex-build-{stream}'
-
- # Job template for builds
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
- # branch: branch (eg. stable)
- node: '{build-slave}'
-
- disabled: false
-
- concurrent: true
-
- parameters:
- - '{project}-defaults'
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - apex-parameter:
- gs-pathname: '{gs-pathname}'
-
- scm:
- - git-scm-gerrit
-
- wrappers:
- - timeout:
- timeout: 150
- fail: true
-
- properties:
- - logrotate-default
- - throttle:
- max-per-node: {concurrent-builds}
- max-total: 10
- option: 'project'
- - build-blocker:
- use-build-blocker: true
- block-level: 'NODE'
- blocking-jobs:
- - 'apex-verify-iso-{stream}'
-
- builders:
- - 'apex-build'
- - inject:
- properties-content: ARTIFACT_TYPE=rpm
- - 'apex-upload-artifact'
-
-# ISO verify job
-- job-template:
- name: 'apex-verify-iso-{stream}'
-
- # Job template for builds
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
- # branch: branch (eg. stable)
- node: '{virtual-slave}'
-
- disabled: false
-
- concurrent: true
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - apex-parameter:
- gs-pathname: '{gs-pathname}'
- - string:
- name: GIT_BASE
- default: https://gerrit.opnfv.org/gerrit/$PROJECT
- description: "Used for overriding the GIT URL coming from parameters macro."
-
- scm:
- - git-scm
-
- properties:
- - logrotate-default
- - throttle:
- max-per-node: 1
- max-total: 10
- option: 'project'
-
- builders:
- - 'apex-iso-verify'
- - inject:
- properties-content: ARTIFACT_TYPE=iso
- - 'apex-upload-artifact'
-
# Deploy job
- job-template:
name: 'apex-deploy-{platform}-{stream}'
@@ -1098,23 +1001,11 @@
!include-raw: ./apex-unit-test.sh
- builder:
- name: 'apex-build'
- builders:
- - shell:
- !include-raw: ./apex-build.sh
-
-- builder:
name: 'apex-workspace-cleanup'
builders:
- shell:
!include-raw: ./apex-workspace-cleanup.sh
-- builder:
- name: 'apex-iso-verify'
- builders:
- - shell:
- !include-raw: ./apex-iso-verify.sh
-
- builder:
name: 'apex-upload-artifact'