44sudo : required
55
66
7+ # ##
8+ # ## Language
9+ # ##
10+ language : python
11+
12+
713# ##
814# ## Add services
915# ##
@@ -12,28 +18,83 @@ services:
1218
1319
1420# ##
15- # ## Global variables
21+ # ## Build Matrix definition
1622# ##
1723env :
18- - S1=0
19- - S1=1
24+ global :
25+ - IMAGE=devilbox/nginx-mainline
26+ # travis encrypt DOCKER_USERNAME=user
27+ # travis encrypt DOCKER_PASSWORD=pass
28+ # Must be regenerated when repository name/owner changes
29+ - secure : " IvbPE2IK4P1pzGtYBKzTeYL1bhy5Zftvb7eJRSOOFjn5eo9r2tH6pMlEJr+aIc4UDGDRBvHAwM8+QzbNa7kaWPwSn9/tMr4xChzfvdNnSre1cHcmkS3uAlqxB1Hs50hQjD/USOzBhzatw4Q3sgb6wZRPfXI6j5Yz4tT6EsjWEQIiCWomE4xmh4N9chqmknVHLXcHElJVUyCndMFmZwRLAWWX799LMkqBXVXZI7Pp8GXoQ/2kN5HPgFDUPeRRT4ykF2iI2zJOdXM63UVgLQr8QBkzpO41llMz0AUl9jLC+N0lPbS1QqPoHsHE0U0Q5jJ6DMYk19W8PzLChFsrHs3kYZloZpMK5IcMV5bY7JNSavMrdbXIm8SOx3EWFMBDwFaxgA0xNYvya5HJ0LugZXLPwg/HrL4oYvMXyUnn6DGLooblanJZ3+3lF/PLewvCvpU2U6OmUevSP9wJ6hnKh4LjaM8pcw68S8DmzLu5sA/RqDATy42LToZdK836g3MBmd9SWdriLgaFeDhdcT1j12aPb060kd9ELh1qawHbxLsT1fV+bUBrc+0oVNrbld5epUP9IDYHjj2UOTiI9cKFSPqUy7iJm1zBXVwzVJ4RXDSd8Y1cB7nA1Mqs2gznxIgk0pT5p7Vaf0ngti5ANaodUoAEN5Bysss+4E/AwiaWFRqBa5I="
30+ - secure : " ZcRQGUC1+ykXVAGA7YdFF10EmQrSjwZCabrwZEJxp0HYitdK80UwE/jR4+vCCJarvj8LsvBaVNA0/DZpJPISZfAdrBB+tyqN1Vv0Q9CrEvdpp9lz729eYBwXV6KRHvn9b4XN7OaWPJesBFP+Z/YK+cJ7iUqjv0Jv+tSexMVBiswlztse1bqLNbBo2UnQbz4R3MeLP+KX8uVhXeuUyCpJ26NvTEFuwxnQjsuFY0L5PQkdSOCw6kaSziQMv05w04yfNEOKy6wzqjDb+5oCcHxtRfL9otSCzZmhudaIMEq2stRhMSPT1AD9j7BPfXPRQDZ28peJsMvdGb9TKpj9ww3QIqbvOXaD+vZ338HRn9rc/aqi6Ucd+myjq0UOENxQOxwHJzrXdjYDqxo7LgkUczQb/MPEnkSjPyk9l1CNunsblNGvOFJTU2XatgrP8I07khBFjOI+zBXFFf3HXMwKBZUvXJjBjVZYqBgT/MYKADzrcCUJf9Ynsdfe8N+h9YWAoF+UgHiya/IaG1RTCvRBV5dtYJHAlE/v4/Fv96YpHiESs6HyPZKzQ47ktf9uoB6EUlhpI6OBPYcMjaKGXmQj84hY/q97M6rzJhwm2V+kb+bo+chhlQsjck4cZzkoUpgwiG+yRpjMgxO7Ty0JoZ2+Q2aQBW//hbNm87cH/gBKDFrYEJw="
31+ matrix :
32+ - TEST=0
33+ - TEST=1
2034
2135
2236# ##
23- # ## Disable auto-started daemons
37+ # ## Stage definitions
2438# ##
25- before_script :
26-
27- # Disable services enabled by default
28- # http://docs.travis-ci.com/user/database-setup/#MySQL
29- - sudo /etc/init.d/mysql stop || true
30- - sudo /etc/init.d/postgresql stop || true
31- - sudo service mysql stop || true
32- - sudo service postgresql stop || true
39+ stages :
40+ - test
41+ - deploy
3342
3443
3544# ##
36- # ## Test
45+ # ## Global for all stages
3746# ##
47+ install :
48+ # Get newer docker version
49+ - max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get update; then break; else i=$((i+1)); fi done
50+ - max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce; then break; else i=$((i+1)); fi done
51+ - docker version
3852script :
39- - .ci/start-ci.sh "${S1}"
53+ - .ci/start-ci.sh "${TEST}" "${IMAGE}"
54+
55+
56+ # ##
57+ # ## Job definitions
58+ # ##
59+ jobs :
60+ include :
61+ # Final deploy stage
62+ - stage : deploy
63+ env : TEST=
64+ before_script :
65+ - if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
66+ if [ -n "${TRAVIS_TAG}" ]; then
67+ docker build --no-cache=true -t "${IMAGE}:${TRAVIS_TAG}" . &&
68+ docker images;
69+ elif [ "${TRAVIS_BRANCH}" == "master" ]; then
70+ docker build --no-cache=true -t "${IMAGE}:latest" . &&
71+ docker images;
72+ elif [[ ${TRAVIS_BRANCH} =~ ^(release[/-][.0-9]+)$ ]]; then
73+ docker build --no-cache=true -t "${IMAGE}:${TRAVIS_BRANCH}" . &&
74+ docker images;
75+ else
76+ echo "Skipping branch ${TRAVIS_BRANCH}";
77+ fi
78+ fi
79+ script :
80+ # Push to docker hub on success
81+ - if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
82+ if [ -n "${TRAVIS_TAG}" ]; then
83+ docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" &&
84+ echo "Pushing ${IMAGE}:${TRAVIS_TAG}" &&
85+ docker push "${IMAGE}:${TRAVIS_TAG}" &&
86+ docker tag "${IMAGE}:${TRAVIS_TAG}" "${IMAGE}:latest" &&
87+ echo "Pushing ${IMAGE}:latest" &&
88+ docker push "${IMAGE}:latest";
89+ elif [ "${TRAVIS_BRANCH}" == "master" ]; then
90+ docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" &&
91+ echo "Pushing ${IMAGE}:latest" &&
92+ docker push "${IMAGE}:latest";
93+ elif [[ ${TRAVIS_BRANCH} =~ ^(release[/-][.0-9]+)$ ]]; then
94+ docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD" &&
95+ echo "Pushing ${IMAGE}:${TRAVIS_BRANCH}" &&
96+ docker push "${IMAGE}:${TRAVIS_BRANCH}";
97+ else
98+ echo "Skipping branch ${TRAVIS_BRANCH}";
99+ fi
100+ fi
0 commit comments