Skip to content

Commit 6f52638

Browse files
committed
Adding packaging logic for RPM deployments
1 parent abab879 commit 6f52638

7 files changed

Lines changed: 144 additions & 24 deletions

File tree

.travis.yml

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,46 @@
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 "redhat" "7"
27+
before_deploy: PKG_VERSION=$(python -c "import f5; print(f5.__version__)")
2128
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
29+
provider: releases
30+
api_key:
31+
secure: 2s3M+0/e4S9EEm0QQ01HNPvK60U7lTNUCbMBDPW+2RZQSiNaMZvPpRtyoQeWgBizVAzhOB3AvxbzRokh1lWjWfsuqwcJWViF6MPoZu7XjEBB6FTiJ22D3tFWqVXGGhyKwW8E4Hk5s+Rp3WaiePLVQtvJ9/aBATdzTzVm+6IbTXqakHsBhC2zXH8OPK6tuLZX+P8cuCggFW2Ip5MZc561aVE/MKUSJIAKllSQecikkJn7KIrf6+ydX7/1ycE6T/JAwBdsqsiMUzvrPwwahBswahpJ1fzhcKWQDWPvEmI6ruIXR3ItK6mlaKE98yKH3a0iyaMqOmjGMz/Xik3oU5KOSmpATMXfLcnr6KBFKfbVOmeRwW91tmJ5sSjwI/3rDfdYWsPnO63z6nRm2JL6b5JF6PAcfPFf5CEhffnCDeOEuEh4m5eexqGyZvSsdKAeJxPORJgO6kOr7fkDs4nLRmgQY9WvcARKjwgPc1eJW2fjeiiIbyf8a8AXI8TOgIIUJ3pLUns8Hv2JQkp5Km7/b2ZRT001yEQWAtQXj0r6D/WMCxDN8IlbSGibN6yyP7WnEvRS4vk6jwqyY/UY+aHvuSeanD3pl1kBHTyiQGdUIG4mw8EDW7ZkM177TJj60xB37Ef42Fjs3iIpVquvDdv+XWgp3c4+LmUAyWoxIOHJSGCPm7g=
32+
file: "${DIST_REPO}/rpms/build/f5-sdk-${PKG_VERSION}-1.el7.noarch.rpm"
3033
skip_cleanup: true
34+
overwrite: true
35+
on:
36+
repo: richbrowne/f5-common-python
37+
branch: development
38+
tags: true
39+
3140
notifications:
3241
slack:
3342
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=
43+
- secure: S6uiqdMGkI5qHUrE+ekoRrxXg9gU7LNogdndgI06L8yJBgDPHZ/USTl8cCDbSLVu/mzSZ3ysD/zO3CmEzB+kiX1yQAnbHA3dxwcBgLg9pO8CMISnmOS61N3o5GC6At6qB5wshVET+J7ul5OzPnDZaTI7M+vI7l9gL2ZhSRzabxI4z7f5LesBqiuUhV6sZA38YiLSjTRrImVMNGYsy9C0BE18HbyGQzhnk7M1OVjRswT5YA05e7JZCYSzlqYD1H2EJtaLNg3pPoA2nEN2e/Lo1atpnG0AURvqbs0+O3HqwtFSSipwFX5crEFUB4xS4FFJH/4qjtPb3r1s1JiRdF8wYGGwlc9VhQId6Ik3k+Php88bVl+/3P7XONTixnWNWy6vHZrE3Nn4kfQDkT1YH9aDzCY5xak6I2DSx+K97ZMZkgjSBwkOsbuYeaaiPsixp6Y0k8TU8oeLMQO+8YdGe7PgEwd30u/qPOoSuohUeS2YRBnPQg11+C0irB0K7e+BfbO5Nl1oTwGL2F0NRs4AGutUYTzPP402fIdUnu9UI1EmCamlRsgp2Ax2fgL5UFCj+vildnlgwxBxxG4S6MqVrxuL+f7CedZe4JcSSwnYCgg6sXiUuqz+aCwydVz6xNQjiBe27rDh2n0OwZ+qHLWcoc1AsTMnHRPVeJpltwxAebkyMrw=
44+
- secure: dB/k8UDpidkkcq/nbwHTr+UlWqn1CGtTau5C1Q5D6aNvTPHU4mlChUV7JnoOjekRf2KTDNjpJ9miKBw4uB+TySTsscQHja6xnpqaU8IZYzShT0+2jkCDsw80Ogr+JK3DZFKXQdgUncfKp73cTCPpANxfewoOAFBa0JjIqupE/VsdbX67agM1gqVbArrFt3WmQkgHaXpajPHCFyX7286HIb3Xj1WoIF93RcmUrChFni3KsHbGGB0n2XiAlFo9s2Xv4woiFafoYQuUFmW0aarvRqSAJfhV9l2+rKnXL5XBMNbMAycn/bu4zFaCwInKfufuS0pKOSMhaa0ctGr7Ts+BnVfLjgOJBXnbJSD813siyqbI1rj5634s6C6PC90aK8jc348qVrLXlj95G3CkZz4ofDv9dB3/dWHxVRe6hEFHqUSNWYeEbubHaC9KHY030qDAvba99kB2Z0pDN6B19c4yV1sTP0fIaWEotYw6TE98unRfYHPYxQvZMy55qVTE5oDtHqjoi7PUciL94E3kQwWlCY6ucd691L9NEe/3EkKDkhrLvsZoxzPq8NjUeFO4CgThMicl3nl4zuzycMpoG1x85shUI48JpWTPvWnxKNQYlmRLriVodiMiTAPN0eiWbw+owjwMT5sJqDD7fjSDju5dwomoZcDv8MqyfQpHcT5zg+0=
3645
on_success: change
3746
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+

f5-sdk-dist/scripts/package.sh

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
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+
sudo chown -R travis:travis ${DIST_DIR}
23+
24+
exit 0

setup.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[bdist_rpm]
2+
release = 1
3+
requires = f5-icontrol-rest >= 1.0.7

0 commit comments

Comments
 (0)