Verify py36 via travis-ci
[functest.git] / .travis.yml
1 ---
2 sudo: required
3 services: docker
4 language: generic
5 dist: xenial
6 addons:
7   apt:
8     packages:
9       - libssl1.0.0
10
11 before_script:
12   - sudo apt-get -y install qemu-user-static
13   - sudo add-apt-repository -y ppa:jonathonf/python-3.6
14   - sudo apt-get update
15   - sudo apt-get install python3.6 python3.6-dev
16   - sudo pip install tox
17   - sudo -E docker login -u="${DOCKER_USERNAME}" -p="${DOCKER_PASSWORD}"
18   - (cd .. && git clone https://github.com/estesp/manifest-tool)
19   - (cd ../manifest-tool && git checkout v0.9.0)
20   - (cd ../manifest-tool && sudo -E make && sudo -E make install)
21
22 jobs:
23   include:
24     - stage: run unit tests
25       script: tox -e docs,pep8,pylint,yamllint,bashate,py27,py36,cover
26     - stage: build functest-core images
27       script: sudo -E bash build.sh
28       env:
29         - REPO="${DOCKER_USERNAME}"
30         - amd64_dirs="docker/core"
31         - arm64_dirs=""
32         - arm_dirs=""
33     - script: sudo -E bash build.sh
34       env:
35         - REPO="${DOCKER_USERNAME}"
36         - amd64_dirs=""
37         - arm64_dirs="docker/core"
38         - arm_dirs=""
39     - script: sudo -E bash build.sh
40       env:
41         - REPO="${DOCKER_USERNAME}"
42         - amd64_dirs=""
43         - arm64_dirs=""
44         - arm_dirs="docker/core"
45     - stage: publish functest-core manifests
46       script: >
47         sudo manifest-tool push from-args \
48           --platforms linux/amd64,linux/arm,linux/arm64 \
49           --template ${DOCKER_USERNAME}/functest-core:ARCH-latest \
50           --target ${DOCKER_USERNAME}/functest-core:latest
51     - stage: build functest-tempest images
52       script: sudo -E bash build.sh
53       env:
54         - REPO="${DOCKER_USERNAME}"
55         - amd64_dirs="docker/tempest"
56         - arm64_dirs=""
57         - arm_dirs=""
58     - script: sudo -E bash build.sh
59       env:
60         - REPO="${DOCKER_USERNAME}"
61         - amd64_dirs=""
62         - arm64_dirs="docker/tempest"
63         - arm_dirs=""
64     - script: sudo -E bash build.sh
65       env:
66         - REPO="${DOCKER_USERNAME}"
67         - amd64_dirs=""
68         - arm64_dirs=""
69         - arm_dirs="docker/tempest"
70     - stage: publish functest-tempest manifests
71       script: >
72         sudo manifest-tool push from-args \
73           --platforms linux/amd64,linux/arm,linux/arm64 \
74           --template ${DOCKER_USERNAME}/functest-tempest:ARCH-latest \
75           --target ${DOCKER_USERNAME}/functest-tempest:latest
76     - stage: build all functest images
77       script: sudo -E bash build.sh
78       env:
79         - REPO="${DOCKER_USERNAME}"
80         - amd64_dirs="docker/healthcheck"
81         - arm64_dirs=""
82         - arm_dirs=""
83     - script: sudo -E bash build.sh
84       env:
85         - REPO="${DOCKER_USERNAME}"
86         - amd64_dirs=""
87         - arm64_dirs="docker/healthcheck"
88         - arm_dirs=""
89     - script: sudo -E bash build.sh
90       env:
91         - REPO="${DOCKER_USERNAME}"
92         - amd64_dirs=""
93         - arm64_dirs=""
94         - arm_dirs="docker/healthcheck"
95     - script: sudo -E bash build.sh
96       env:
97         - REPO="${DOCKER_USERNAME}"
98         - amd64_dirs="docker/smoke"
99         - arm64_dirs=""
100         - arm_dirs=""
101     - script: sudo -E bash build.sh
102       env:
103         - REPO="${DOCKER_USERNAME}"
104         - amd64_dirs=""
105         - arm64_dirs="docker/smoke"
106         - arm_dirs=""
107     - script: sudo -E bash build.sh
108       env:
109         - REPO="${DOCKER_USERNAME}"
110         - amd64_dirs=""
111         - arm64_dirs=""
112         - arm_dirs="docker/smoke"
113     - script: sudo -E bash build.sh
114       env:
115         - REPO="${DOCKER_USERNAME}"
116         - amd64_dirs="docker/benchmarking"
117         - arm64_dirs=""
118         - arm_dirs=""
119     - script: sudo -E bash build.sh
120       env:
121         - REPO="${DOCKER_USERNAME}"
122         - amd64_dirs=""
123         - arm64_dirs=""
124         - arm_dirs="docker/benchmarking"
125     - script: sudo -E bash build.sh
126       env:
127         - REPO="${DOCKER_USERNAME}"
128         - amd64_dirs="docker/features"
129         - arm64_dirs=""
130         - arm_dirs=""
131     - script: sudo -E bash build.sh
132       env:
133         - REPO="${DOCKER_USERNAME}"
134         - amd64_dirs=""
135         - arm64_dirs="docker/features"
136         - arm_dirs=""
137     - script: sudo -E bash build.sh
138       env:
139         - REPO="${DOCKER_USERNAME}"
140         - amd64_dirs=""
141         - arm64_dirs=""
142         - arm_dirs="docker/features"
143     - script: sudo -E bash build.sh
144       env:
145         - REPO="${DOCKER_USERNAME}"
146         - amd64_dirs="docker/vnf"
147         - arm64_dirs=""
148         - arm_dirs=""
149     - stage: publish all manifests
150       script: >
151         sudo manifest-tool push from-args \
152           --platforms linux/amd64,linux/arm,linux/arm64 \
153           --template ${DOCKER_USERNAME}/functest-healthcheck:ARCH-latest \
154           --target ${DOCKER_USERNAME}/functest-healthcheck:latest
155     - script: >
156         sudo manifest-tool push from-args \
157           --platforms linux/amd64,linux/arm,linux/arm64 \
158           --template ${DOCKER_USERNAME}/functest-smoke:ARCH-latest \
159           --target ${DOCKER_USERNAME}/functest-smoke:latest
160     - script: >
161         sudo manifest-tool push from-args \
162           --platforms linux/amd64,linux/arm \
163           --template ${DOCKER_USERNAME}/functest-benchmarking:ARCH-latest \
164           --target ${DOCKER_USERNAME}/functest-benchmarking:latest
165     - script: >
166         sudo manifest-tool push from-args \
167           --platforms linux/amd64,linux/arm,linux/arm64 \
168           --template ${DOCKER_USERNAME}/functest-features:ARCH-latest \
169           --target ${DOCKER_USERNAME}/functest-features:latest
170     - script: >
171         sudo manifest-tool push from-args \
172           --platforms linux/amd64 \
173           --template ${DOCKER_USERNAME}/functest-vnf:ARCH-latest \
174           --target ${DOCKER_USERNAME}/functest-vnf:latest