@@ -11,7 +11,34 @@ checkout:
1111
1212jobs :
1313
14- unittests :
14+ py3_compat :
15+ docker :
16+ - image : circleci/python:2.7
17+ steps :
18+ - checkout
19+ - run :
20+ name : install futurize
21+ command : pip install future --user
22+ - run :
23+ name : find python3-incompatible code
24+ command : |
25+ FUTURIZE="futurize ."
26+ while read line; do
27+ [[ "$line" =~ ^#.* ]] && continue
28+ FUTURIZE="${FUTURIZE} ${line}"
29+ done<.circleci/py3fixers
30+ echo "Running: $FUTURIZE"
31+ $FUTURIZE>futurize_diffs
32+ - run :
33+ name : check that there is no python3-incompatible code
34+ command : |
35+ if [[ -s futurize_diffs ]]; then
36+ echo "Python-3-incompatible code found"
37+ cat futurize_diffs
38+ exit 1
39+ fi
40+
41+ unittests_py27 :
1542 docker :
1643 - image : circleci/python:2.7.15-stretch
1744 steps :
@@ -38,54 +65,138 @@ jobs:
3865 name : install tox
3966 command : pip install --user tox
4067 - run : /home/circleci/.local/bin/tox -e flake8
41- - run : /home/circleci/.local/bin/tox -e py27
68+ - run : /home/circleci/.local/bin/tox -e nosetests
4269
43- wagon :
70+ unittests_py36 :
4471 docker :
45- - image : amd64/centos:centos7.5.1804
72+ - image : circleci/python:3.6-stretch
4673 steps :
4774 - checkout
4875 - run :
49- name : Install dependencies
50- command : yum -y install python-devel gcc openssl git libxslt-devel libxml2-devel openldap-devel libffi-devel openssl-devel libvirt-devel libvirt-python
76+ name : update links
77+ command : sudo apt-get update -y
78+ - run :
79+ name : install python/pip/libvirt packages
80+ command : sudo apt-get install -yq python-libvirt libvirt-dev python-dev python-pip
5181 - run :
5282 name : Download pip
5383 command : curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
5484 - run :
5585 name : Install pip
56- command : python get-pip.py
57- - run :
58- name : Upgrade pip
59- command : pip install --upgrade pip==9.0.1
86+ command : sudo python get-pip.py
6087 - run :
6188 name : Install virtualenv
62- command : pip install virtualenv==16.7.9
89+ command : pip install --user virtualenv
6390 - run :
6491 name : Init virtualenv
6592 command : virtualenv env
6693 - run :
67- name : Install wagon
68- command : pip install wagon==0.3.2
94+ name : install tox
95+ command : pip install --user tox
96+ - run : /home/circleci/.local/bin/tox -e flake8
97+ - run : /home/circleci/.local/bin/tox -e nosetests
98+
99+ wagon :
100+ machine :
101+ image : ubuntu-1604:201903-01
102+ steps :
103+ - checkout
104+ - run :
105+ name : Create Workspace Build directory.
106+ command : mkdir -p workspace/build
69107 - run :
70- name : many_linux
71- command : echo "manylinux1_compatible = False" > "env/bin/_manylinux.py"
108+ name : Build py27py36 Wagon
109+ command : |
110+ git clone https://github.com/cloudify-cosmo/cloudify-wagon-build-containers.git
111+ docker build -t cloudify-centos-7-wagon-builder cloudify-wagon-build-containers/centos_7_py2py3
112+ docker run -v ~/project/:/packaging cloudify-centos-7-wagon-builder
72113 - run :
73- name : make workspace
114+ name : copy wagon to workspace
115+ command : cp *.wgn workspace/build/
116+ - persist_to_workspace :
117+ root : workspace
118+ paths :
119+ - build/*
120+
121+ rhel_wagon :
122+ machine :
123+ image : ubuntu-1604:201903-01
124+ steps :
125+ - checkout
126+ - run :
127+ name : Create Workspace Build directory.
74128 command : mkdir -p workspace/build
75129 - run :
76- name : Create wagon
77- command : source env/bin/activate && wagon create -s . -v -o workspace/build -f -a '--no-cache-dir -c constraints.txt'
130+ name : Build RHEL py27py36 Wagon
131+ command : |
132+ git clone https://github.com/cloudify-cosmo/cloudify-wagon-build-containers.git
133+ docker build -t cloudify-redhat-7-wagon-builder cloudify-wagon-build-containers/redhat_7_py2py3 --build-arg USERNAME="$USERNAME" --build-arg PASSWORD="$PASSWORD"
134+ docker run -v ~/project/:/packaging cloudify-redhat-7-wagon-builder
135+ - run :
136+ name : copy wagon to workspace
137+ command : cp *.wgn workspace/build/
78138 - persist_to_workspace :
79139 root : workspace
80140 paths :
81141 - build/*
82142
143+ release :
144+ docker :
145+ - image : circleci/python:2.7
146+ steps :
147+ - checkout
148+ - run :
149+ name : " Pull Submodules"
150+ command : |
151+ git submodule init
152+ git submodule update --remote --recursive
153+ - run :
154+ name : Download pip
155+ command : curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
156+ - run :
157+ name : Install pip
158+ command : sudo python get-pip.py
159+ - run :
160+ name : Install virtualenv
161+ command : pip install --user virtualenv
162+ - run :
163+ name : Init virtualenv
164+ command : virtualenv env
165+ - run :
166+ name : install tox
167+ command : pip install --user pygithub pyyaml==3.10
168+ - run :
169+ name : upgrade setuptools
170+ command : pip install --upgrade setuptools
171+ - run :
172+ name : install local project
173+ command : pip install https://github.com/cloudify-incubator/cloudify-ecosystem-test/archive/latest.zip
174+ - attach_workspace :
175+ at : workspace
176+ - run : python .circleci/package_release.py
177+
178+
83179workflows :
84180 version : 2
85181 tests :
86182 jobs :
87- - unittests
183+ - py3_compat
184+ - unittests_py27
185+ - unittests_py36
88186 - wagon :
89187 filters :
90188 branches :
91189 only : /([0-9\.]*\-build|master|dev)/
190+ - rhel_wagon :
191+ filters :
192+ branches :
193+ only : /([0-9\.]*\-build|master|dev)/
194+ - release :
195+ filters :
196+ branches :
197+ only : /master/
198+ requires :
199+ - unittests_py27
200+ - unittests_py36
201+ - wagon
202+ - rhel_wagon
0 commit comments