Publish Functest Virtual Machines
[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 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.8 python3.8-dev python3.8-distutils enchant
16   - sudo pip install tox tox-pip-version
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: >
26         tox -e \
27           docs,pep8,pylint,yamllint,ansiblelint,bashate,bandit,py38,cover
28     - stage: build functest-core images
29       script: sudo -E bash build.sh
30       env:
31         - REPO="${DOCKER_USERNAME}"
32         - amd64_dirs="docker/core"
33         - arm64_dirs=""
34         - arm_dirs=""
35     - script: sudo -E bash build.sh
36       env:
37         - REPO="${DOCKER_USERNAME}"
38         - amd64_dirs=""
39         - arm64_dirs="docker/core"
40         - arm_dirs=""
41     - script: sudo -E bash build.sh
42       env:
43         - REPO="${DOCKER_USERNAME}"
44         - amd64_dirs=""
45         - arm64_dirs=""
46         - arm_dirs="docker/core"
47     - stage: publish functest-core manifests
48       script: >
49         sudo manifest-tool push from-args \
50           --platforms linux/amd64,linux/arm,linux/arm64 \
51           --template ${DOCKER_USERNAME}/functest-core:ARCH-kali \
52           --target ${DOCKER_USERNAME}/functest-core:kali
53     - stage: build all functest images
54       script: sudo -E bash build.sh
55       env:
56         - REPO="${DOCKER_USERNAME}"
57         - amd64_dirs="docker/healthcheck"
58         - arm64_dirs=""
59         - arm_dirs=""
60     - script: sudo -E bash build.sh
61       env:
62         - REPO="${DOCKER_USERNAME}"
63         - amd64_dirs=""
64         - arm64_dirs="docker/healthcheck"
65         - arm_dirs=""
66     - script: sudo -E bash build.sh
67       env:
68         - REPO="${DOCKER_USERNAME}"
69         - amd64_dirs=""
70         - arm64_dirs=""
71         - arm_dirs="docker/healthcheck"
72     - script: sudo -E bash build.sh
73       env:
74         - REPO="${DOCKER_USERNAME}"
75         - amd64_dirs="docker/smoke"
76         - arm64_dirs=""
77         - arm_dirs=""
78     - script: sudo -E bash build.sh
79       env:
80         - REPO="${DOCKER_USERNAME}"
81         - amd64_dirs=""
82         - arm64_dirs="docker/smoke"
83         - arm_dirs=""
84     - script: sudo -E bash build.sh
85       env:
86         - REPO="${DOCKER_USERNAME}"
87         - amd64_dirs=""
88         - arm64_dirs=""
89         - arm_dirs="docker/smoke"
90     - script: sudo -E bash build.sh
91       env:
92         - REPO="${DOCKER_USERNAME}"
93         - amd64_dirs="docker/benchmarking"
94         - arm64_dirs=""
95         - arm_dirs=""
96     - script: sudo -E bash build.sh
97       env:
98         - REPO="${DOCKER_USERNAME}"
99         - amd64_dirs=""
100         - arm64_dirs="docker/benchmarking"
101         - arm_dirs=""
102     - script: sudo -E bash build.sh
103       env:
104         - REPO="${DOCKER_USERNAME}"
105         - amd64_dirs=""
106         - arm64_dirs=""
107         - arm_dirs="docker/benchmarking"
108     - script: sudo -E bash build.sh
109       env:
110         - REPO="${DOCKER_USERNAME}"
111         - amd64_dirs="docker/vnf"
112         - arm64_dirs=""
113         - arm_dirs=""
114     - script: sudo -E bash build.sh
115       env:
116         - REPO="${DOCKER_USERNAME}"
117         - amd64_dirs=""
118         - arm64_dirs="docker/vnf"
119         - arm_dirs=""
120     - script: sudo -E bash build.sh
121       env:
122         - REPO="${DOCKER_USERNAME}"
123         - amd64_dirs=""
124         - arm64_dirs=""
125         - arm_dirs="docker/vnf"
126     - stage: publish all manifests
127       script: >
128         sudo manifest-tool push from-args \
129           --platforms linux/amd64,linux/arm,linux/arm64 \
130           --template ${DOCKER_USERNAME}/functest-healthcheck:ARCH-kali \
131           --target ${DOCKER_USERNAME}/functest-healthcheck:kali
132     - script: >
133         sudo manifest-tool push from-args \
134           --platforms linux/amd64,linux/arm,linux/arm64 \
135           --template ${DOCKER_USERNAME}/functest-smoke:ARCH-kali \
136           --target ${DOCKER_USERNAME}/functest-smoke:kali
137     - script: >
138         sudo manifest-tool push from-args \
139           --platforms linux/amd64,linux/arm,linux/arm64 \
140           --template ${DOCKER_USERNAME}/functest-benchmarking:ARCH-kali \
141           --target ${DOCKER_USERNAME}/functest-benchmarking:kali
142     - script: >
143         sudo manifest-tool push from-args \
144           --platforms linux/amd64,linux/arm,linux/arm64 \
145           --template ${DOCKER_USERNAME}/functest-vnf:ARCH-kali \
146           --target ${DOCKER_USERNAME}/functest-vnf:kali
147     - stage: build all functest cntt images
148       script: sudo -E bash build.sh
149       env:
150         - REPO="${DOCKER_USERNAME}"
151         - amd64_dirs="docker/smoke-cntt"
152         - arm64_dirs=""
153         - arm_dirs=""
154     - script: sudo -E bash build.sh
155       env:
156         - REPO="${DOCKER_USERNAME}"
157         - amd64_dirs=""
158         - arm64_dirs="docker/smoke-cntt"
159         - arm_dirs=""
160     - script: sudo -E bash build.sh
161       env:
162         - REPO="${DOCKER_USERNAME}"
163         - amd64_dirs=""
164         - arm64_dirs=""
165         - arm_dirs="docker/smoke-cntt"
166     - script: sudo -E bash build.sh
167       env:
168         - REPO="${DOCKER_USERNAME}"
169         - amd64_dirs="docker/benchmarking-cntt"
170         - arm64_dirs=""
171         - arm_dirs=""
172     - script: sudo -E bash build.sh
173       env:
174         - REPO="${DOCKER_USERNAME}"
175         - amd64_dirs=""
176         - arm64_dirs="docker/benchmarking-cntt"
177         - arm_dirs=""
178     - script: sudo -E bash build.sh
179       env:
180         - REPO="${DOCKER_USERNAME}"
181         - amd64_dirs=""
182         - arm64_dirs=""
183         - arm_dirs="docker/benchmarking-cntt"
184     - stage: publish all cntt manifests
185       script: >
186         sudo manifest-tool push from-args \
187           --platforms linux/amd64,linux/arm,linux/arm64 \
188           --template ${DOCKER_USERNAME}/functest-smoke-cntt:ARCH-kali \
189           --target ${DOCKER_USERNAME}/functest-smoke-cntt:kali
190     - script: >
191         sudo manifest-tool push from-args \
192           --platforms linux/amd64,linux/arm,linux/arm64 \
193           --template ${DOCKER_USERNAME}/functest-benchmarking-cntt:ARCH-kali \
194           --target ${DOCKER_USERNAME}/functest-benchmarking-cntt:kali