[Python-checkins] [3.6] Clean up Travis config (GH-5727)

Zachary Ware webhook-mailer at python.org
Sun Feb 18 16:44:52 EST 2018


https://github.com/python/cpython/commit/ea49c03313af014cbc0b3ec184c7e3731ea21aaf
commit: ea49c03313af014cbc0b3ec184c7e3731ea21aaf
branch: 3.6
author: Zachary Ware <zachary.ware at gmail.com>
committer: GitHub <noreply at github.com>
date: 2018-02-18T15:44:49-06:00
summary:

[3.6] Clean up Travis config (GH-5727)

(cherry picked from commit 7eb3f8226ea7b79dae4e4e8b05730cfe0d9af7c1)

files:
M .travis.yml

diff --git a/.travis.yml b/.travis.yml
index 2bed28103522..7d92c2e2f852 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,13 +5,14 @@ group: beta
 
 # To cache doc-building dependencies and C compiler output.
 cache:
-    - pip
-    - ccache
+  - pip
+  - ccache
 
 branches:
   only:
     - master
     - /^\d\.\d$/
+    - buildbot-custom
 
 matrix:
   fast_finish: true
@@ -41,19 +42,12 @@ matrix:
       compiler: gcc
       env: OPTIONAL=true
       before_script:
-        - |
-            if ! git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qvE '(\.rst$)|(^Doc)|(^Misc)'
-            then
-              echo "Only docs were updated, stopping build process."
-              exit
-            fi
-            # Build in release mode
-            ./configure PYTHON_FOR_REGEN=python3
-            make -s -j4
-            # Need a venv that can parse covered code.
-            ./python -m venv venv
-            ./venv/bin/python -m pip install -U coverage
-            ./venv/bin/python -m test.pythoninfo
+        - ./configure PYTHON_FOR_REGEN=python3
+        - make -s -j4
+        # Need a venv that can parse covered code.
+        - ./python -m venv venv
+        - ./venv/bin/python -m pip install -U coverage
+        - ./venv/bin/python -m test.pythoninfo
       script:
         # Skip tests that re-run the entire test suite.
         - ./venv/bin/python -m coverage run --pylib -m test -uall,-cpu -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_multiprocessing_spawn
@@ -62,41 +56,48 @@ matrix:
         - source ./venv/bin/activate
         - bash <(curl -s https://codecov.io/bash)
 
-# Travis provides only 2 cores, so don't overdo the parallelism and waste memory.
-before_script:
-  - |
-      set -e
-      if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then
-        files_changed=$(git diff --name-only $TRAVIS_COMMIT_RANGE)
-      else
-        # Pull requests are slightly complicated because merging the PR commit without
-        # rebasing causes it to retain its old commit date. Meaning in history if any
-        # commits have been made on master that post-date it, they will be accidentally
-        # included in the diff if we use the TRAVIS_COMMIT_RANGE variable.
-        files_changed=$(git diff --name-only HEAD $(git merge-base HEAD $TRAVIS_BRANCH))
-      fi
-
-      # Prints changed files in this commit to help debug doc-only build issues.
-      echo "Files changed: "
-      echo $files_changed
 
-      if ! echo "$files_changed" | grep -qvE '(\.rst$)|(^Doc)|(^Misc)'
+before_install:
+  - set -e
+  - |
+      # Check short-circuit conditions
+      if [ "${TESTING}" != "docs" ]
       then
-        echo "Only docs were updated, stopping build process."
-        exit
+        if [ "$TRAVIS_PULL_REQUEST" = "false" ]
+        then
+          echo "Not a PR, doing full build."
+        else
+          # Pull requests are slightly complicated because $TRAVIS_COMMIT_RANGE
+          # may include more changes than desired if the history is convoluted.
+          # Instead, explicitly fetch the base branch and compare against the
+          # merge-base commit.
+          git fetch -q origin +refs/heads/$TRAVIS_BRANCH
+          changes=$(git diff --name-only HEAD $(git merge-base HEAD FETCH_HEAD))
+          echo "Files changed:"
+          echo "$changes"
+          if ! echo "$changes" | grep -qvE '(\.rst$)|(^Doc)|(^Misc)'
+          then
+            echo "Only docs were updated, stopping build process."
+            exit
+          fi
+        fi
       fi
-      # Build in debug mode
-      ./configure --with-pydebug PYTHON_FOR_REGEN=python3
-      make -j4 regen-all
-      changes=`git status --porcelain`
+
+# Travis provides only 2 cores, so don't overdo the parallelism and waste memory.
+before_script:
+  - ./configure --with-pydebug PYTHON_FOR_REGEN=python3
+  - make -j4 regen-all
+  - changes=`git status --porcelain`
+  - |
+      # Check for changes in regenerated files
       if ! test -z "$changes"
       then
         echo "Generated files not up to date"
         echo "$changes"
         exit 1
       fi
-      make -j4
-      make pythoninfo
+  - make -j4
+  - make pythoninfo
 
 script:
   # Using the built Python as patchcheck.py is built around the idea of using
@@ -104,6 +105,8 @@ script:
   # should be compared against.
   # Only run on Linux as the check only needs to be run once.
   - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./python Tools/scripts/patchcheck.py --travis $TRAVIS_PULL_REQUEST; fi
+  # Check that all symbols exported by libpython start with "Py" or "_Py"
+  - make smelly
   # `-r -w` implicitly provided through `make buildbottest`.
   - make buildbottest TESTOPTS="-j4 -uall,-cpu"
 



More information about the Python-checkins mailing list