1sudo: true
2language: generic
3dist: trusty
4group: travis_latest
5
6env:
7  global:
8  - DOCKER_BASE_TAG=3.7-ubuntu-18.04
9  - DOCKER_BASE_IMAGE=zerocci/ice-base:${DOCKER_BASE_TAG}
10  - DOCKER_BUILD_IMAGE=zerocci/ice-travis-build:${TRAVIS_BUILD_NUMBER}
11  - DOCKER_BUILD_CPP11_IMAGE=zerocci/ice-travis-build:${TRAVIS_BUILD_NUMBER}-cpp11
12  - MAKEFLAGS="-j3 V=1 OPTIMIZE=no USE_NAMESPACES=no CONFIGS=shared"
13  - DOCKER_RUN="docker run -it --rm ${DOCKER_BUILD_IMAGE} /bin/bash -c"
14  - DOCKER_RUN_CPP11="docker run -it --rm ${DOCKER_BUILD_IMAGE}-cpp11 /bin/bash -c"
15  - ALLTESTS="python allTests.py --protocol=ssl --workers=4"
16
17jobs:
18  include:
19    - stage: Build
20      script:
21      - docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}"
22      - |
23        echo "FROM ${DOCKER_BASE_IMAGE}" >> Dockerfile
24        echo "RUN make ${MAKEFLAGS}" >> Dockerfile
25      - docker build --cache-from ${DOCKER_BASE_IMAGE} -t ${DOCKER_BUILD_IMAGE} .
26      - docker push ${DOCKER_BUILD_IMAGE}
27
28    # - stage: Build C++11
29    #   script:
30    #   - docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}"
31    #   - |
32    #     echo "FROM ${DOCKER_BUILD_IMAGE}" >> Dockerfile
33    #     echo "RUN make -C cpp ${MAKEFLAGS} CONFIGS='cpp11-shared'" >> Dockerfile
34    #   - docker build --cache-from ${DOCKER_BUILD_IMAGE} -t ${DOCKER_BUILD_CPP11_IMAGE} .
35    #   - docker push ${DOCKER_BUILD_CPP11_IMAGE}
36
37    - &test-staging
38      stage: Test
39      script: $DOCKER_RUN "${ALLTESTS} --language=cpp"
40      env: comment=C++
41    # - <<: *test-staging
42    #   script: $DOCKER_RUN_CPP11 "${ALLTESTS} --language=cpp --config=cpp11-shared"
43    #   env: comment=C++11
44    - <<: *test-staging
45      script: $DOCKER_RUN "${ALLTESTS} --language=csharp"
46      env: comment=C#
47    - <<: *test-staging
48      script: $DOCKER_RUN "${ALLTESTS} --language=java"
49      env: comment=Java
50    - <<: *test-staging
51      script: $DOCKER_RUN "${ALLTESTS} --language=java-compat"
52      env: comment=Java Compat
53    - <<: *test-staging
54      script: $DOCKER_RUN "${ALLTESTS} --language=js"
55      env: comment=JavaScript
56    - <<: *test-staging
57      script: $DOCKER_RUN "${ALLTESTS} --language=php"
58      env: comment=PHP
59    - <<: *test-staging
60      script: $DOCKER_RUN "${ALLTESTS} --language=python"
61      env: comment=Python
62    - <<: *test-staging
63      script: $DOCKER_RUN "${ALLTESTS} --language=ruby"
64      env: comment=Ruby
65
66notifications:
67  email: travis-ci@zeroc.com
68  slack:
69    secure: TywLzzH1Hx3Pb5I4s4wxbEZ9nOAPkamZDqHBOkpLSNSRa2iSk6n5GcQi5bnw0Ct59oTEytO/8fNP6mYwf5G2rrXGWpcdgSdyLMcUk6ASeO7ANv7xLKhVWbbOoVuZxFJvIG5mTYpCa3R58EtchQErzdyf3rRMN3rq/ZBmocFMcRY=
70