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

.travis.yml

index 6a64ec62ab848105c8a53f247b8675134d72cb95..175432dd45ab40dab5335c84ebd6904d7fa1e976 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
@@ -37,28 +38,53 @@ matrix:
       script:
         - make check suspicious html SPHINXOPTS="-q -W -j4"
 
-# Travis provides only 2 cores, so don't overdo the parallelism and waste memory.
-before_script:
+
+before_install:
+  - set -e
   - |
-      set -e
-      if ! git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qvE '(\.rst$)|(^Doc)'
+      # 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
-      ./configure --with-pydebug
-      make -j4
-      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
+  - 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 pythoninfo
+  - make -j4
+  - make pythoninfo
 
 script:
+  # 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"