diff --git a/.travis.yml b/.travis.yml index 76c2830b0..0bc0d3329 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,141 +18,163 @@ branches: - /^\d+\.\d+\.x$/ - /^test-.*$/ -stages: - # Normal stage always executed (including PR) except pushes on master - - name: test - if: NOT (type = push AND branch = master) - # Restricted stage executed only for pushes on master - - name: test-master - if: type = push AND branch = master - # Extended stage executed on cron jobs an push on non-master branches - - name: test-extended - if: type = cron OR (type = push AND branch != master) +# Normal job always executed (including PR) except pushes on master +not-on-master: ¬-on-master + if: NOT (type = push AND branch = master) + +# Extended job executed on cron jobs and pushes on non-master branches +extended-pipeline: &extended-pipeline + if: type = cron OR (type = push AND branch != master) matrix: include: - # Jobs attached to the test stage - - stage: test - python: "2.7" + # Main pipeline + - python: "2.7" env: BOULDER_INTEGRATION=v1 INTEGRATION_TEST=all TOXENV=py27_install sudo: required services: docker + <<: *not-on-master - python: "2.7" env: BOULDER_INTEGRATION=v2 INTEGRATION_TEST=all TOXENV=py27_install sudo: required services: docker + <<: *not-on-master + + # This job is always executed, including on master - python: "2.7" env: TOXENV=py27-cover FYI="py27 tests + code coverage" + - sudo: required env: TOXENV=nginx_compat services: docker before_install: addons: + <<: *not-on-master - python: "2.7" env: TOXENV=lint + <<: *not-on-master - python: "3.4" env: TOXENV=mypy + <<: *not-on-master - python: "3.5" env: TOXENV=mypy + <<: *not-on-master - python: "2.7" env: TOXENV='py27-{acme,apache,certbot,dns,nginx,postfix}-oldest' sudo: required services: docker + <<: *not-on-master - python: "3.4" env: TOXENV=py34 sudo: required services: docker + <<: *not-on-master - python: "3.7" dist: xenial env: TOXENV=py37 sudo: required services: docker + <<: *not-on-master - sudo: required env: TOXENV=apache_compat services: docker before_install: addons: + <<: *not-on-master - sudo: required env: TOXENV=le_auto_trusty services: docker before_install: addons: + <<: *not-on-master - python: "2.7" env: TOXENV=apacheconftest-with-pebble sudo: required services: docker + <<: *not-on-master - python: "2.7" env: TOXENV=nginxroundtrip + <<: *not-on-master - # Jobs attached to the test-master stage - - stage: test-master - python: "2.7" - env: TOXENV=py27-cover FYI="py27 tests + code coverage" - - # Jobs attached to the test-extended stage - - stage: test-extended - python: "3.7" + # Extended pipeline on cron jobs and push to test-* branches + - python: "3.7" dist: xenial env: TOXENV=py37 CERTBOT_NO_PIN=1 + <<: *extended-pipeline - python: "2.7" env: BOULDER_INTEGRATION=v1 INTEGRATION_TEST=certbot TOXENV=py27-certbot-oldest sudo: required services: docker + <<: *extended-pipeline - python: "2.7" env: BOULDER_INTEGRATION=v2 INTEGRATION_TEST=certbot TOXENV=py27-certbot-oldest sudo: required services: docker + <<: *extended-pipeline - python: "2.7" env: BOULDER_INTEGRATION=v1 INTEGRATION_TEST=nginx TOXENV=py27-nginx-oldest sudo: required services: docker + <<: *extended-pipeline - python: "2.7" env: BOULDER_INTEGRATION=v2 INTEGRATION_TEST=nginx TOXENV=py27-nginx-oldest sudo: required services: docker + <<: *extended-pipeline - python: "3.4" env: TOXENV=py34 BOULDER_INTEGRATION=v1 sudo: required services: docker + <<: *extended-pipeline - python: "3.4" env: TOXENV=py34 BOULDER_INTEGRATION=v2 sudo: required services: docker + <<: *extended-pipeline - python: "3.5" env: TOXENV=py35 BOULDER_INTEGRATION=v1 sudo: required services: docker + <<: *extended-pipeline - python: "3.5" env: TOXENV=py35 BOULDER_INTEGRATION=v2 sudo: required services: docker + <<: *extended-pipeline - python: "3.6" env: TOXENV=py36 BOULDER_INTEGRATION=v1 sudo: required services: docker + <<: *extended-pipeline - python: "3.6" env: TOXENV=py36 BOULDER_INTEGRATION=v2 sudo: required services: docker + <<: *extended-pipeline - python: "3.7" dist: xenial env: TOXENV=py37 BOULDER_INTEGRATION=v1 sudo: required services: docker + <<: *extended-pipeline - python: "3.7" dist: xenial env: TOXENV=py37 BOULDER_INTEGRATION=v2 sudo: required services: docker + <<: *extended-pipeline - sudo: required env: TOXENV=le_auto_xenial services: docker + <<: *extended-pipeline - sudo: required env: TOXENV=le_auto_jessie services: docker + <<: *extended-pipeline - sudo: required env: TOXENV=le_auto_centos6 services: docker + <<: *extended-pipeline - sudo: required env: TOXENV=docker_dev services: docker @@ -160,6 +182,7 @@ matrix: apt: packages: # don't install nginx and apache - libaugeas0 + <<: *extended-pipeline - language: generic env: TOXENV=py27 os: osx @@ -168,6 +191,7 @@ matrix: packages: - augeas - python2 + <<: *extended-pipeline - language: generic env: TOXENV=py3 os: osx @@ -176,6 +200,7 @@ matrix: packages: - augeas - python3 + <<: *extended-pipeline # container-based infrastructure sudo: false