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