utilize tox to build
Signed-off-by: Mike Marchetti <mmarchetti@sandvine.com>
Change-Id: I945367246c18b73fff0788b9b285a2fc9a897cc9
diff --git a/.gitignore b/.gitignore
index a5abf37..0584915 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@
.eggs
*venv/
*venv3/
+.tox/
diff --git a/Dockerfile b/Dockerfile
index 28b7be9..b7a8a91 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,5 @@
FROM ubuntu:16.04
RUN apt-get update && apt-get -y install git make python python3 \
- virtualenv libcurl4-gnutls-dev libgnutls-dev python-pip python3-pip \
- debhelper python-stdeb apt-utils python-nose python3-nose python-flake8 \
- python-mock python3-mock
+ libcurl4-gnutls-dev libgnutls-dev tox python-dev python3-dev \
+ debhelper python-setuptools python-all apt-utils
diff --git a/Jenkinsfile b/Jenkinsfile
index 729fd56..0264be0 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,21 +1,27 @@
pipeline {
agent {
- dockerfile true
+ dockerfile {
+ label 'osm3'
+ }
}
stages {
stage("Checkout") {
steps {
checkout scm
+ sh '''
+ groupadd -o -g $(id -g) -r jenkins
+ useradd -o -u $(id -u) --create-home -r -g jenkins jenkins
+ '''
}
}
stage("Test") {
steps {
- sh 'make test'
+ sh 'tox'
}
}
stage("Build") {
steps {
- sh 'make package'
+ sh 'tox -e build'
stash name: "deb-files", includes: "deb_dist/*.deb"
}
}
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 7806fcb..0000000
--- a/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 2017 Sandvine
-#
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-all: build_tools
- $(MAKE) test
- $(MAKE) package
-
-BUILD_TOOLS=python python3 virtualenv \
- libcurl4-gnutls-dev python-pip \
- python3-pip libgnutls-dev debhelper
-
-build_tools:
- sudo apt-get -y install $(BUILD_TOOLS)
-
-package:
- python setup.py --command-packages=stdeb.command bdist_deb
-
-test_flake8:
- pip install -Ur test_requirements.txt
- python setup.py flake8
-
-test_nose: test_requirements.txt
- pip install -Ur test_requirements.txt
- python setup.py test
-
-test_nose3: test_requirements.txt
- pip3 install -Ur test_requirements.txt
- python3 setup.py test
-
-test: test_flake8 test_nose test_nose3
-
-.PHONY: package build_tools test test_flake8 test_nose test_nose3
-
-clean:
- rm -rf deb_dist dist osmclient.egg-info
diff --git a/README.md b/README.md
index 1df94df..b742339 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
# python-osmclient
A python client for osm orchestration
+
# Installation
## Install dependencies
diff --git a/docker_command.sh b/docker_command.sh
new file mode 100755
index 0000000..52e7824
--- /dev/null
+++ b/docker_command.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+#helper routine that creates user/group in docker container
+#necessary when using volumes and inputing -user into docker run
+groupadd -o -g $(id -g) -r $2
+useradd -o -u $(id -u) --create-home -r -g $2 $1
+shift 2
+exec $@
diff --git a/setup.py b/setup.py
index ad92135..8109b9f 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@
setup(
name='osmclient',
- version='0.1',
+ version_command=('git describe --tags --long --dirty', 'pep440-git'),
author='Mike Marchetti',
author_email='mmarchetti@sandvine.com',
packages=find_packages(),
@@ -10,6 +10,7 @@
install_requires=[
'Click', 'prettytable', 'pyyaml', 'pycurl'
],
+ setup_requires=['setuptools-version-command'],
test_suite='nose.collector',
entry_points='''
[console_scripts]
diff --git a/test_requirements.txt b/test_requirements.txt
deleted file mode 100644
index a38d080..0000000
--- a/test_requirements.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-flake8
-mock
-stdeb
-nose
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..280145a
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,19 @@
+[tox]
+envlist = py27,py3,flake8
+
+[testenv]
+deps=nose
+ mock
+commands=nosetests
+
+[testenv:flake8]
+basepython = python
+deps = flake8
+commands =
+ flake8 setup.py
+
+[testenv:build]
+basepython = python
+deps = stdeb
+ setuptools-version-command
+commands = python setup.py --command-packages=stdeb.command bdist_deb