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