]> granicus.if.org Git - python/commitdiff
[3.6] Clean up Travis config (GH-5727)
authorZachary Ware <zachary.ware@gmail.com>
Sun, 18 Feb 2018 21:44:49 +0000 (15:44 -0600)
committerGitHub <noreply@github.com>
Sun, 18 Feb 2018 21:44:49 +0000 (15:44 -0600)
(cherry picked from commit 7eb3f8226ea7b79dae4e4e8b05730cfe0d9af7c1)

.travis.yml

index 2bed281035223e1e7be0dda271130f1c007ffcd6..7d92c2e2f852986cb5006a74f4ecedc45f03cb96 100644 (file)
@@ -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"