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