Skip to content

Commit 9ccec54

Browse files
authored
Merge pull request #595 from richbrowne/development
Adding packaging artifacts to the f5-sdk
2 parents abab879 + 4122ebe commit 9ccec54

11 files changed

Lines changed: 197 additions & 26 deletions

File tree

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*.py[cod]
88

99
### added with RM's Makefile
10-
**/deb_dist/**
10+
deb_dist/**
1111
localutils/**
1212
agent/f5/bigip/pycontrol/wsdl/**
1313

.travis.yml

Lines changed: 49 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,61 @@
11
sudo: false
2+
env:
3+
global:
4+
- DIST_REPO="f5-sdk-dist"
5+
services:
6+
- docker
27
language: python
38
python:
4-
- '2.7'
5-
- '2.6'
9+
- '2.7'
10+
- '2.6'
611
before_install:
7-
- git config --global user.email "OpenStack_TravisCI@f5.com"
8-
- git config --global user.name "Travis F5 Openstack"
9-
- git fetch --depth=100
12+
- git config --global user.email "OpenStack_TravisCI@f5.com"
13+
- git config --global user.name "Travis F5 Openstack"
14+
- git fetch --depth=100
1015
install:
11-
- pip install hacking pytest pytest-cov
12-
- pip install -r requirements.test.txt
13-
- pip install -r requirements.docs.txt
16+
- pip install hacking pytest pytest-cov
17+
- pip install -r requirements.test.txt
18+
- pip install -r requirements.docs.txt
1419
script:
15-
- flake8 --exclude=docs .
16-
- py.test --cov --ignore=test/
17-
- python setup.py sdist
18-
- cd docs
19-
- make html
20-
- cd ../
20+
- flake8 --exclude=docs .
21+
- py.test --cov --ignore=test/
22+
- python setup.py sdist
23+
- cd docs
24+
- make html
25+
- cd ../
26+
- ${DIST_REPO}/scripts/package.sh "redhat" "7"
27+
- ${DIST_REPO}/scripts/package.sh "ubuntu" "14.04"
28+
- sudo chown -R travis:travis ${DIST_REPO}/rpms/build
29+
- sudo chown travis:travis ${DIST_REPO}/deb_dist/*.deb
30+
31+
before_deploy: PKG_VERSION=$(python -c "import f5; print(f5.__version__)")
2132
deploy:
22-
provider: pypi
23-
user: $PYPI_USER
24-
password: $PYPI_PASSWORD
25-
server: https://pypi.python.org/pypi
26-
on:
27-
all_branches: true
28-
tags: true
29-
python: 2.7
30-
skip_cleanup: true
33+
- provider: pypi
34+
user: $PYPI_USER
35+
password: $PYPI_PASSWORD
36+
server: https://pypi.python.org/pypi
37+
on:
38+
all_branches: true
39+
tags: true
40+
python: 2.7
41+
skip_cleanup: true
42+
- provider: releases
43+
api_key:
44+
secure: QrvZh1vNhoj0ZsaD72sGg86IZdrrn7BpWvO7Ex6elsK0czBGNIDWCNURU8V5wLXDE7WlqEMIcb/DzRhp6r0lVxXV8Porq/YdJjupBmfDpMP1TPwKy+o0CIfj140rwcQV/u3OSX27JaGVKJDad4bM9gdZewHX8Cr1pcxJdA4eL3aF2i8q8VmIDus9sGEsXivIFuNaEGxPrCD6OU+Ss6agxhgpcGH0YPWPIAZism1WUzi6z13CHCS40Mza89dsqbeFt0+Ydd++q/1l8lo9m2TdUj/ZjLMpqwhAuINFnTqVyJUA0i7b5hDHEKEbmbmoqd5BUfjgzdwwHPOrnu/s59kOcjcfTsqor+eGRf2d8mk0VrTGF5cfr4jqXHvr4ZjpxMpfQov+9VzcXG3YcsgEU1gTTr11WGJVIwao1CApdkyCsATdsvWW0cwo44OowgvCN+t4914CttfQzOIslnfIo3ATX7LQV7CyEksBY88VM/tlmyQsiZSBG5nTZL4hQo3oaUwO+KJMizHmBIvibBeU5AGkZXECiYSvIdN/vvZ9byidALIFdTMnIvB9HiR7UZOwljIjt11kL+rFHJFtH23I9/nKVmZoDumGaA+n2LteefbAyG0dr5ZMZbcuWI++gNS1daTSZkpOrsiQcmcS6mnDgDPC2kuRX3SH3Hy3m7NAN6CW4Ts=
45+
file:
46+
${DIST_REPO}/rpms/build/f5-sdk-${PKG_VERSION}-1.el7.noarch.rpm
47+
${DIST_REPO}/deb_dist/python-f5-sdk_${PKG_VERSION}-1_1404_all.deb
48+
skip_cleanup: true
49+
overwrite: true
50+
on:
51+
repo: F5Networks/f5-common-python
52+
all_branches: true
53+
tags: true
54+
3155
notifications:
3256
slack:
3357
rooms:
34-
- secure: S6uiqdMGkI5qHUrE+ekoRrxXg9gU7LNogdndgI06L8yJBgDPHZ/USTl8cCDbSLVu/mzSZ3ysD/zO3CmEzB+kiX1yQAnbHA3dxwcBgLg9pO8CMISnmOS61N3o5GC6At6qB5wshVET+J7ul5OzPnDZaTI7M+vI7l9gL2ZhSRzabxI4z7f5LesBqiuUhV6sZA38YiLSjTRrImVMNGYsy9C0BE18HbyGQzhnk7M1OVjRswT5YA05e7JZCYSzlqYD1H2EJtaLNg3pPoA2nEN2e/Lo1atpnG0AURvqbs0+O3HqwtFSSipwFX5crEFUB4xS4FFJH/4qjtPb3r1s1JiRdF8wYGGwlc9VhQId6Ik3k+Php88bVl+/3P7XONTixnWNWy6vHZrE3Nn4kfQDkT1YH9aDzCY5xak6I2DSx+K97ZMZkgjSBwkOsbuYeaaiPsixp6Y0k8TU8oeLMQO+8YdGe7PgEwd30u/qPOoSuohUeS2YRBnPQg11+C0irB0K7e+BfbO5Nl1oTwGL2F0NRs4AGutUYTzPP402fIdUnu9UI1EmCamlRsgp2Ax2fgL5UFCj+vildnlgwxBxxG4S6MqVrxuL+f7CedZe4JcSSwnYCgg6sXiUuqz+aCwydVz6xNQjiBe27rDh2n0OwZ+qHLWcoc1AsTMnHRPVeJpltwxAebkyMrw=
35-
- secure: dB/k8UDpidkkcq/nbwHTr+UlWqn1CGtTau5C1Q5D6aNvTPHU4mlChUV7JnoOjekRf2KTDNjpJ9miKBw4uB+TySTsscQHja6xnpqaU8IZYzShT0+2jkCDsw80Ogr+JK3DZFKXQdgUncfKp73cTCPpANxfewoOAFBa0JjIqupE/VsdbX67agM1gqVbArrFt3WmQkgHaXpajPHCFyX7286HIb3Xj1WoIF93RcmUrChFni3KsHbGGB0n2XiAlFo9s2Xv4woiFafoYQuUFmW0aarvRqSAJfhV9l2+rKnXL5XBMNbMAycn/bu4zFaCwInKfufuS0pKOSMhaa0ctGr7Ts+BnVfLjgOJBXnbJSD813siyqbI1rj5634s6C6PC90aK8jc348qVrLXlj95G3CkZz4ofDv9dB3/dWHxVRe6hEFHqUSNWYeEbubHaC9KHY030qDAvba99kB2Z0pDN6B19c4yV1sTP0fIaWEotYw6TE98unRfYHPYxQvZMy55qVTE5oDtHqjoi7PUciL94E3kQwWlCY6ucd691L9NEe/3EkKDkhrLvsZoxzPq8NjUeFO4CgThMicl3nl4zuzycMpoG1x85shUI48JpWTPvWnxKNQYlmRLriVodiMiTAPN0eiWbw+owjwMT5sJqDD7fjSDju5dwomoZcDv8MqyfQpHcT5zg+0=
58+
- secure: S6uiqdMGkI5qHUrE+ekoRrxXg9gU7LNogdndgI06L8yJBgDPHZ/USTl8cCDbSLVu/mzSZ3ysD/zO3CmEzB+kiX1yQAnbHA3dxwcBgLg9pO8CMISnmOS61N3o5GC6At6qB5wshVET+J7ul5OzPnDZaTI7M+vI7l9gL2ZhSRzabxI4z7f5LesBqiuUhV6sZA38YiLSjTRrImVMNGYsy9C0BE18HbyGQzhnk7M1OVjRswT5YA05e7JZCYSzlqYD1H2EJtaLNg3pPoA2nEN2e/Lo1atpnG0AURvqbs0+O3HqwtFSSipwFX5crEFUB4xS4FFJH/4qjtPb3r1s1JiRdF8wYGGwlc9VhQId6Ik3k+Php88bVl+/3P7XONTixnWNWy6vHZrE3Nn4kfQDkT1YH9aDzCY5xak6I2DSx+K97ZMZkgjSBwkOsbuYeaaiPsixp6Y0k8TU8oeLMQO+8YdGe7PgEwd30u/qPOoSuohUeS2YRBnPQg11+C0irB0K7e+BfbO5Nl1oTwGL2F0NRs4AGutUYTzPP402fIdUnu9UI1EmCamlRsgp2Ax2fgL5UFCj+vildnlgwxBxxG4S6MqVrxuL+f7CedZe4JcSSwnYCgg6sXiUuqz+aCwydVz6xNQjiBe27rDh2n0OwZ+qHLWcoc1AsTMnHRPVeJpltwxAebkyMrw=
59+
- secure: dB/k8UDpidkkcq/nbwHTr+UlWqn1CGtTau5C1Q5D6aNvTPHU4mlChUV7JnoOjekRf2KTDNjpJ9miKBw4uB+TySTsscQHja6xnpqaU8IZYzShT0+2jkCDsw80Ogr+JK3DZFKXQdgUncfKp73cTCPpANxfewoOAFBa0JjIqupE/VsdbX67agM1gqVbArrFt3WmQkgHaXpajPHCFyX7286HIb3Xj1WoIF93RcmUrChFni3KsHbGGB0n2XiAlFo9s2Xv4woiFafoYQuUFmW0aarvRqSAJfhV9l2+rKnXL5XBMNbMAycn/bu4zFaCwInKfufuS0pKOSMhaa0ctGr7Ts+BnVfLjgOJBXnbJSD813siyqbI1rj5634s6C6PC90aK8jc348qVrLXlj95G3CkZz4ofDv9dB3/dWHxVRe6hEFHqUSNWYeEbubHaC9KHY030qDAvba99kB2Z0pDN6B19c4yV1sTP0fIaWEotYw6TE98unRfYHPYxQvZMy55qVTE5oDtHqjoi7PUciL94E3kQwWlCY6ucd691L9NEe/3EkKDkhrLvsZoxzPq8NjUeFO4CgThMicl3nl4zuzycMpoG1x85shUI48JpWTPvWnxKNQYlmRLriVodiMiTAPN0eiWbw+owjwMT5sJqDD7fjSDju5dwomoZcDv8MqyfQpHcT5zg+0=
3660
on_success: change
3761
on_failure: always
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
FROM centos:6
2+
3+
RUN yum update -y && yum install rpm-build make tar python-setuptools -y
4+
5+
COPY ./build-rpms.sh /
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/bash -ex
2+
3+
SRC_DIR=$1
4+
PKG_NAME=f5-sdk
5+
DIST_DIR="${PKG_NAME}-dist"
6+
RPMBUILD_DIR="rpmbuild"
7+
OS_VERSION=6
8+
9+
DEST_DIR="${SRC_DIR}/${DIST_DIR}"
10+
11+
echo "Building ${PKG_NAME} RPM packages..."
12+
buildroot=$(mktemp -d /tmp/${PKG_NAME}.XXXXX)
13+
14+
cp -R $SRC_DIR/* ${buildroot}
15+
16+
pushd ${buildroot}
17+
python setup.py build bdist_rpm --rpm-base rpmbuild
18+
19+
echo "%_topdir ${buildroot}/rpmbuild" > ~/.rpmmacros
20+
21+
python setup.py bdist_rpm --spec-only --dist-dir rpmbuild/SPECS
22+
23+
rpmbuild -ba rpmbuild/SPECS/${PKG_NAME}.spec
24+
25+
mkdir -p ${DEST_DIR}/rpms/build
26+
27+
for pkg in $(ls rpmbuild/RPMS/noarch/*.rpm); do
28+
if [[ $pkg =~ ".noarch." ]]; then
29+
mv $pkg ${pkg%%.noarch.rpm}.el${OS_VERSION}.noarch.rpm
30+
fi
31+
done
32+
cp -R rpmbuild/RPMS/noarch/*.rpm ${DEST_DIR}/rpms/build
33+
34+
popd
35+
36+
rm -rf ${buildroot}
37+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
FROM centos:7
2+
3+
RUN yum update -y && yum install rpm-build make python-setuptools -y
4+
5+
COPY ./build-rpms.sh /
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/bash -ex
2+
3+
SRC_DIR=$1
4+
PKG_NAME=f5-sdk
5+
DIST_DIR="${PKG_NAME}-dist"
6+
RPMBUILD_DIR="rpmbuild"
7+
OS_VERSION=7
8+
9+
DEST_DIR="${SRC_DIR}/${DIST_DIR}"
10+
11+
echo "Building ${PKG_NAME} RPM packages..."
12+
buildroot=$(mktemp -d /tmp/${PKG_NAME}.XXXXX)
13+
14+
cp -R $SRC_DIR/* ${buildroot}
15+
16+
pushd ${buildroot}
17+
python setup.py build bdist_rpm --rpm-base rpmbuild
18+
19+
echo "%_topdir ${buildroot}/rpmbuild" > ~/.rpmmacros
20+
21+
python setup.py bdist_rpm --spec-only --dist-dir rpmbuild/SPECS
22+
23+
rpmbuild -ba rpmbuild/SPECS/${PKG_NAME}.spec
24+
25+
mkdir -p ${DEST_DIR}/rpms/build
26+
27+
for pkg in $(ls rpmbuild/RPMS/noarch/*.rpm); do
28+
if [[ $pkg =~ ".noarch." ]]; then
29+
mv $pkg ${pkg%%.noarch.rpm}.el${OS_VERSION}.noarch.rpm
30+
fi
31+
done
32+
cp -R rpmbuild/RPMS/noarch/*.rpm ${DEST_DIR}/rpms/build
33+
34+
popd
35+
36+
#rm -rf ${buildroot}
37+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Dockerfile
2+
FROM ubuntu:trusty
3+
4+
RUN apt-get update && apt-get install -y \
5+
python-stdeb \
6+
fakeroot \
7+
python-all
8+
9+
COPY ./build-debs.sh /
10+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/bash -ex
2+
3+
SRC_DIR=$1
4+
pushd $SRC_DIR
5+
PKG_VERSION=$(python -c "import f5; print(f5.__version__)")
6+
7+
PKG_NAME="f5-sdk"
8+
9+
TMP_DIST="/var/deb_dist"
10+
OS_VERSION="1404"
11+
DIST_DIR="f5-sdk-dist/deb_dist"
12+
13+
echo "Building ${PKG_NAME} debian packages..."
14+
15+
cp -R "${SRC_DIR}/${DIST_DIR}/stdeb.cfg" .
16+
cp -R "${SRC_DIR}/${DIST_DIR}" ${TMP_DIST}
17+
18+
python setup.py --command-packages=stdeb.command sdist_dsc --dist-dir=${TMP_DIST}
19+
pushd "${TMP_DIST}/${PKG_NAME}-${PKG_VERSION}"
20+
dpkg-buildpackage -rfakeroot -uc -us
21+
popd; popd
22+
23+
pkg="python-${PKG_NAME}_${PKG_VERSION}-1_all.deb"
24+
cp "${TMP_DIST}/${pkg}" "${SRC_DIR}/${DIST_DIR}/${pkg%%_all.deb}_${OS_VERSION}_all.deb"

f5-sdk-dist/deb_dist/stdeb.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[DEFAULT]
2+
Depends:
3+
python-f5-icontrol-rest (>=1.0.7)

f5-sdk-dist/scripts/package.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash -ex
2+
3+
OS_TYPE=$1
4+
OS_VERSION=$2
5+
PKG_NAME="f5-sdk"
6+
DIST_DIR="${PKG_NAME}-dist"
7+
8+
BUILD_CONTAINER=${OS_TYPE}${OS_VERSION}-${PKG_NAME}-builder
9+
WORKING_DIR="/var/wdir"
10+
11+
if [[ ${OS_TYPE} == "redhat" ]]; then
12+
PKG_TYPE="rpms"
13+
elif [[ ${OS_TYPE} == "ubuntu" ]]; then
14+
PKG_TYPE="debs"
15+
else
16+
echo "Unsupported target OS (${OS_TYPE})"
17+
exit 1
18+
fi
19+
20+
docker build -t ${BUILD_CONTAINER} ${DIST_DIR}/Docker/${OS_TYPE}/${OS_VERSION}
21+
docker run --privileged --rm -v $(pwd):${WORKING_DIR} ${BUILD_CONTAINER} /bin/bash /build-${PKG_TYPE}.sh "${WORKING_DIR}"
22+
23+
exit 0

0 commit comments

Comments
 (0)