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.6 python3.6-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,py27,py36,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-hunter \
50           --target ${DOCKER_USERNAME}/functest-kubernetes-core:hunter
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="docker/cnf"
62         - arm_dirs=""
63         - arm64_dirs=""
64     - script: bash build.sh
65       env:
66         - REPO="${DOCKER_USERNAME}"
67         - amd64_dirs=""
68         - arm_dirs="docker/cnf"
69         - arm64_dirs=""
70     - script: bash build.sh
71       env:
72         - REPO="${DOCKER_USERNAME}"
73         - amd64_dirs=""
74         - arm_dirs=""
75         - arm64_dirs="docker/cnf"
76     - script: bash build.sh
77       env:
78         - REPO="${DOCKER_USERNAME}"
79         - amd64_dirs="docker/security"
80         - arm_dirs=""
81         - arm64_dirs=""
82     - script: bash build.sh
83       env:
84         - REPO="${DOCKER_USERNAME}"
85         - amd64_dirs=""
86         - arm_dirs="docker/security"
87         - arm64_dirs=""
88     - script: bash build.sh
89       env:
90         - REPO="${DOCKER_USERNAME}"
91         - amd64_dirs=""
92         - arm_dirs=""
93         - arm64_dirs="docker/security"
94     - stage: publish functest-kubernetes-[healthcheck,cnf,security] manifests
95       script: >
96         manifest-tool push from-args \
97           --platforms linux/amd64 \
98           --template \
99           ${DOCKER_USERNAME}/functest-kubernetes-healthcheck:ARCH-hunter \
100           --target ${DOCKER_USERNAME}/functest-kubernetes-healthcheck:hunter
101     - script: >
102         manifest-tool push from-args \
103           --platforms linux/amd64,linux/arm,linux/arm64 \
104           --template ${DOCKER_USERNAME}/functest-kubernetes-cnf:ARCH-hunter \
105           --target ${DOCKER_USERNAME}/functest-kubernetes-cnf:hunter
106     - script: >
107         manifest-tool push from-args \
108           --platforms linux/amd64,linux/arm,linux/arm64 \
109           --template \
110             ${DOCKER_USERNAME}/functest-kubernetes-security:ARCH-hunter \
111           --target ${DOCKER_USERNAME}/functest-kubernetes-security:hunter
112     - stage: build functest-kubernetes-smoke image
113       script: bash build.sh
114       env:
115         - REPO="${DOCKER_USERNAME}"
116         - amd64_dirs="docker/smoke"
117         - arm_dirs=""
118         - arm64_dirs=""
119     - stage: publish functest-kubernetes-smoke manifests
120       script: >
121         manifest-tool push from-args \
122           --platforms linux/amd64 \
123           --template ${DOCKER_USERNAME}/functest-kubernetes-smoke:ARCH-hunter \
124           --target ${DOCKER_USERNAME}/functest-kubernetes-smoke:hunter
125     - stage: build functest-kubernetes-benchmarking image
126       script: bash build.sh
127       env:
128         - REPO="${DOCKER_USERNAME}"
129         - amd64_dirs="docker/benchmarking"
130         - arm_dirs=""
131         - arm64_dirs=""
132     - stage: publish functest-kubernetes-benchmarking manifests
133       script: >
134         manifest-tool push from-args \
135           --platforms linux/amd64 \
136           --template \
137         ${DOCKER_USERNAME}/functest-kubernetes-benchmarking:ARCH-hunter \
138           --target ${DOCKER_USERNAME}/functest-kubernetes-benchmarking:hunter